generated: '2026-08-06' method: derived source: openapi/airtm-enterprise-v2-openapi.json notes: Entity graph derived from the V2 OpenAPI components.schemas ($ref edges and *Id reference fields). Airtm publishes no object-reference page with id prefixes, so no id_prefix values are recorded — the specs use bare UUIDs for every resource id. id_format: UUID v4 (no typed prefixes) core_resources: - resource: Payout operations: - CreatePayout - ListPayouts - GetPayout - GetPayoutByCode - GetPayoutEvents - CommitPayout - CancelPayout lifecycle: - CREATED - COMMITTED - PENDING - COMPLETED - CANCELED - FAILED natural_key: code (caller-supplied, unique per enterprise) - resource: BulkPayout operations: - CreateBulkPayout - ListBulkPayouts - GetBulkPayout lifecycle: - PENDING - IN_PROGRESS - COMPLETED - REJECTED has_many: Payout - resource: Payin operations: - CreatePayin - ListPayins - GetPayinById - GetPayinByCode - CancelPayin lifecycle: - CREATED - PROCESSING - CONFIRMED - CANCELED - FAILED natural_key: code - resource: Deposit operations: - ListDeposits - GetDeposit - resource: Withdrawal operations: - CreateWithdrawal - ListWithdrawals - GetWithdrawalById - resource: Report operations: - GenerateReport - ListReports - GetReport - GetReportFile lifecycle: - pending - completed note: download URLs expire after 1 hour - resource: User operations: - GetUserByEmail lifecycle: - ACTIVE - INACTIVE natural_key: email - resource: Enterprise operations: - GetMe - GeBalance - resource: ApiKey operations: - CreateApiKey - ListApiKeys - RevokeApiKey - ToggleAllowedIp - resource: ExternalBankAccount operations: - CreateExternalBankAccount - ListExternalBankAccounts - resource: ExternalCryptoAccount operations: - CreateExternalCryptoAccount - ListExternalCryptoAccounts - resource: Sender operations: - CreateSender - GetSenderByExternalId - GetSenderById - UpdateSenderById namespace: embedded natural_key: externalId - resource: Receiver operations: - CreateReceiver - GetReceiverByExternalId - GetReceiverById - UpdateReceiver - AddPaymentRailInstance - RemovePaymentRailInstance namespace: embedded natural_key: externalId has_many: PaymentRailInstance - resource: Quote operations: - CreateQuote namespace: embedded - resource: Transaction operations: - CreateTransaction - ListTransactions - GetTransactionById namespace: embedded requires_idempotency_key: true belongs_to: - Sender - Receiver - Quote - resource: PaymentRailCatalog operations: - ListCatalog namespace: embedded schema_count: 121 entities: - name: ApiKey has_id: true fields: 6 required: - createdAt - secret - enterpriseId - id - name: BankExternalAccountResponse has_id: true fields: 12 required: - id - accountType - currency - bankName - accountOwnerName - businessName - createdAt - updatedAt - name: BridgeDeposit has_id: true fields: 12 required: - updatedAt - createdAt - name - enterpriseUserId - type - currency - availableBalance - amount - bridgeTransactionId - id - name: BulkPayout has_id: true fields: 10 required: - updatedAt - createdAt - paidAmount - totalAmount - total - status - enterpriseUserId - id - name: CryptoExternalAccountResponse has_id: true fields: 8 required: - id - type - currency - alias - address - createdAt - updatedAt - name: Me has_id: true fields: 3 required: - id - name: OperationEvent has_id: true fields: 13 required: - updatedAt - createdAt - metadata - newStatus - previousStatus - eventType - operationType - operationId - userId - id - name: PayinResponse has_id: true fields: 16 required: - id - code - status - amount - netAmount - airtmFee - description - items - createdAt - updatedAt - confirmationUri - cancelUri - name: PaymentRailInstanceApiResponse has_id: true fields: 6 required: - id - paymentRailId - destination - senderId - createdAt - updatedAt - name: PayoutResponse has_id: true fields: 20 required: - id - airtmUserId - airtmUserEmail - status - grossAmount - amount - netAmount - createdAt - updatedAt - name: QuoteApiResponse has_id: true fields: 9 required: - id - senderId - receiverId - fundingRailId - paymentRailId - request - result - expiresAt - createdAt - name: ReceiverApiResponse has_id: true fields: 11 required: - id - externalReceiverId - partyType - country - individual - contact - address - payoutDestinations - createdAt - updatedAt - name: Report has_id: true fields: 8 required: - updatedAt - createdAt - periodTo - periodFrom - status - enterpriseUserId - type - id - name: SenderApiResponse has_id: true fields: 11 required: - id - externalSenderId - partyType - countryOfResidence - individual - contact - address - compliance - fundingRailInstances - createdAt - updatedAt - name: TransactionApiResponse has_id: true fields: 8 required: - id - status - quote - depositInstructions - createdAt - name: User has_id: true fields: 7 required: - id - status - primaryEmail - isVerified - name: WithdrawalResponse has_id: true fields: 8 required: - id - status - amount - paymentRail - accountDetail - createdAt - updatedAt relationships: - from: WithdrawalResponse to: EnterpriseDirectWithdrawStatus kind: has_one via: status - from: WithdrawalResponse to: PaymentRail kind: has_one via: paymentRail - from: WithdrawalResponse to: Record_string.unknown_ kind: has_one via: accountDetail - from: CreateWithdrawalRequest to_hint: externalAccount kind: belongs_to via: externalAccountId - from: CreateWithdrawalRequest to: BankPaymentRail kind: has_one via: paymentRail - from: Paginated_WithdrawalResponse_ to: WithdrawalResponse kind: has_many via: items - from: ListPaginatedEnterpriseDirectWithdrawsParams to: EnterpriseDirectWithdrawStatus kind: has_one via: status - from: User to: Uuid kind: has_one via: id - from: User to: UserStatus kind: has_one via: status - from: Report to: ReportStatus kind: has_one via: status - from: Report to_hint: enterpriseUser kind: belongs_to via: enterpriseUserId - from: Report to: ReportType kind: has_one via: type - from: CreateReportRequest to: ReportType kind: has_one via: type - from: Paginated_Report_ to: Report kind: has_many via: items - from: ListReportsParams to: ReportType kind: has_one via: type - from: ListReportsParams to: ReportStatus kind: has_one via: status - from: PayoutResponse to: Uuid kind: has_one via: id - from: PayoutResponse to: Uuid kind: has_one via: bulkPayoutId - from: PayoutResponse to_hint: bulkPayout kind: belongs_to via: bulkPayoutId - from: PayoutResponse to: Uuid kind: has_one via: airtmUserId - from: PayoutResponse to_hint: airtmUser kind: belongs_to via: airtmUserId - from: PayoutResponse to: Email kind: has_one via: airtmUserEmail - from: PayoutResponse to: PayoutStatus kind: has_one via: status - from: PayoutResponse to: KycInformation kind: has_one via: kycInformation - from: CreatePayoutRequest to: Email kind: has_one via: airtmUserEmail - from: Paginated_PayoutResponse_ to: PayoutResponse kind: has_many via: items - from: ListPaginatedPayoutsParams to: PayoutStatus kind: has_one via: status - from: ListPaginatedPayoutsParams to_hint: bulkPayout kind: belongs_to via: bulkPayoutId - from: OperationEvent to_hint: operation kind: belongs_to via: operationId - from: OperationEvent to_hint: user kind: belongs_to via: userId - from: PayinItem to_hint: payin kind: belongs_to via: payinId - from: PayinResponse to: Uuid kind: has_one via: id - from: PayinResponse to: PayinStatus kind: has_one via: status - from: PayinResponse to: PayinItem kind: has_many via: items - from: PayinResponse to: Uuid kind: has_one via: airtmUserId - from: PayinResponse to_hint: airtmUser kind: belongs_to via: airtmUserId - from: PayinResponse to: Email kind: has_one via: airtmUserEmail - from: CreatePayinRequest to: CreatePayinItem kind: has_many via: items - from: Paginated_PayinResponse_ to: PayinResponse kind: has_many via: items - from: ListPaginatedPayinsParams to: PayinStatus kind: has_one via: status - from: ListPaginatedPayinsParams to_hint: enterprise kind: belongs_to via: enterpriseId - from: Me to: Uuid kind: has_one via: id - from: CryptoExternalAccountResponse to: CryptoWalletType kind: has_one via: type - from: CryptoExternalAccountResponse to: CryptoCurrency kind: has_one via: currency - from: CreateCryptoExternalAccountRequest to: CryptoWalletType kind: has_one via: type - from: CreateCryptoExternalAccountRequest to: CryptoCurrency kind: has_one via: currency - from: Paginated_CryptoExternalAccountResponse_ to: CryptoExternalAccountResponse kind: has_many via: items - from: ListPaginatedCryptoExternalAccountsParams to: CryptoWalletType kind: has_one via: type - from: BankExternalAccountResponse to: AccountType kind: has_one via: accountType - from: BankExternalAccountResponse to: Currency kind: has_one via: currency - from: CreateBankExternalAccountRequest to: AccountType kind: has_one via: accountType - from: CreateBankExternalAccountRequest to: Currency kind: has_one via: currency - from: Paginated_BankExternalAccountResponse_ to: BankExternalAccountResponse kind: has_many via: items - from: ListPaginatedBridgeExternalAccountsParams to: AccountType kind: has_one via: accountType - from: TransactionApiResponse to: TransactionStatusEnum kind: has_one via: status - from: TransactionApiResponse to_hint: stellarTransaction kind: belongs_to via: stellarTransactionId - from: TransactionApiResponse to_hint: refundStellarTransaction kind: belongs_to via: refundStellarTransactionId - from: TransactionApiResponse to: DepositInstructions kind: has_one via: depositInstructions - from: TransactionApiResponse to: RefundInstructions kind: has_one via: refundInstructions - from: Paginated_TransactionApiResponse_ to: TransactionApiResponse kind: has_many via: items - from: ListPaginatedEmbeddedTransactionsParams to_hint: sender kind: belongs_to via: senderId - from: ListPaginatedEmbeddedTransactionsParams to: SortOrder kind: has_one via: order - from: CreateTransactionRequest to: Uuid kind: has_one via: quoteId - from: CreateTransactionRequest to_hint: quote kind: belongs_to via: quoteId - from: CreateTransactionRequest to: ExecutionChannel kind: has_one via: executionChannel - from: SenderApiResponse to_hint: externalSender kind: belongs_to via: externalSenderId - from: CreateSenderKycReliance to_hint: kycReference kind: belongs_to via: kycReferenceId - from: CreateSenderKycReliance to: KycStatus kind: has_one via: status - from: CreateSenderKycReliance to: KycLevel kind: has_one via: level - from: CreateSenderKycReliance to: DocumentType kind: has_one via: documentType - from: Screening to: RiskRating kind: has_one via: riskRating - from: SessionContext to_hint: device kind: belongs_to via: deviceId - from: CreateSenderCompliance to: CreateSenderKycReliance kind: has_one via: kycReliance - from: CreateSenderCompliance to: Screening kind: has_one via: screening - from: CreateSenderCompliance to: SessionContext kind: has_one via: sessionContext - from: CreateSenderRequest to_hint: externalSender kind: belongs_to via: externalSenderId - from: CreateSenderRequest to: FundingRailId kind: has_many via: enabledFundingRailIds - from: CreateSenderRequest to: CreateSenderIndividual kind: has_one via: individual - from: CreateSenderRequest to: CreateSenderContact kind: has_one via: contact - from: CreateSenderRequest to: CreateSenderAddress kind: has_one via: address - from: CreateSenderRequest to: CreateSenderCompliance kind: has_one via: compliance - from: GetSenderByExternalIdQuery to_hint: externalSender kind: belongs_to via: externalSenderId - from: Partial_CreateSenderCompliance_ to: CreateSenderKycReliance kind: has_one via: kycReliance - from: Partial_CreateSenderCompliance_ to: Screening kind: has_one via: screening - from: Partial_CreateSenderCompliance_ to: SessionContext kind: has_one via: sessionContext - from: UpdateSenderRequest to: Partial_CreateSenderIndividual_ kind: has_one via: individual - from: UpdateSenderRequest to: Partial_UpdateSenderContact_ kind: has_one via: contact - from: UpdateSenderRequest to: Partial_CreateSenderAddress_ kind: has_one via: address - from: UpdateSenderRequest to: Partial_CreateSenderCompliance_ kind: has_one via: compliance - from: ReceiverApiResponse to_hint: externalReceiver kind: belongs_to via: externalReceiverId - from: CreateReceiverPayoutDestination to_hint: paymentRail kind: belongs_to via: paymentRailId - from: CreateReceiverPayoutDestination to: Record_string.unknown_ kind: has_one via: destination - from: CreateReceiverPayoutDestination to: Uuid kind: has_one via: senderId - from: CreateReceiverPayoutDestination to_hint: sender kind: belongs_to via: senderId - from: CreateReceiverKycReliance to_hint: kycReference kind: belongs_to via: kycReferenceId - from: CreateReceiverKycReliance to: KycStatus kind: has_one via: status - from: CreateReceiverKycReliance to: KycLevel kind: has_one via: level - from: CreateReceiverKycReliance to: DocumentType kind: has_one via: documentType - from: CreateReceiverCompliance to: CreateReceiverKycReliance kind: has_one via: kycReliance - from: CreateReceiverRequest to_hint: externalReceiver kind: belongs_to via: externalReceiverId - from: CreateReceiverRequest to: CreateReceiverPayoutDestination kind: has_many via: payoutDestinations - from: CreateReceiverRequest to: CreateReceiverIndividual kind: has_one via: individual - from: CreateReceiverRequest to: CreateReceiverContact kind: has_one via: contact - from: CreateReceiverRequest to: CreateReceiverAddress kind: has_one via: address - from: CreateReceiverRequest to: CreateReceiverCompliance kind: has_one via: compliance - from: GetReceiverByExternalIdQuery to_hint: externalReceiver kind: belongs_to via: externalReceiverId - from: Partial_CreateReceiverCompliance_ to: CreateReceiverKycReliance kind: has_one via: kycReliance - from: UpdateReceiverRequest to: Partial_CreateReceiverIndividual_ kind: has_one via: individual - from: UpdateReceiverRequest to: Partial_CreateReceiverContact_ kind: has_one via: contact - from: UpdateReceiverRequest to: Partial_CreateReceiverAddress_ kind: has_one via: address - from: UpdateReceiverRequest to: Partial_CreateReceiverCompliance_ kind: has_one via: compliance - from: PaymentRailInstanceApiResponse to_hint: paymentRail kind: belongs_to via: paymentRailId - from: PaymentRailInstanceApiResponse to: Record_string.unknown_ kind: has_one via: destination - from: PaymentRailInstanceApiResponse to_hint: sender kind: belongs_to via: senderId - from: AddPaymentRailInstanceRequest to_hint: paymentRail kind: belongs_to via: paymentRailId - from: AddPaymentRailInstanceRequest to: Record_string.unknown_ kind: has_one via: destination - from: AddPaymentRailInstanceRequest to: Uuid kind: has_one via: senderId - from: AddPaymentRailInstanceRequest to_hint: sender kind: belongs_to via: senderId - from: QuoteApiResponse to_hint: sender kind: belongs_to via: senderId - from: QuoteApiResponse to_hint: receiver kind: belongs_to via: receiverId - from: QuoteApiResponse to_hint: fundingRail kind: belongs_to via: fundingRailId - from: QuoteApiResponse to_hint: paymentRail kind: belongs_to via: paymentRailId - from: CreateQuoteRequest to: Uuid kind: has_one via: senderId - from: CreateQuoteRequest to_hint: sender kind: belongs_to via: senderId - from: CreateQuoteRequest to: Uuid kind: has_one via: receiverId - from: CreateQuoteRequest to_hint: receiver kind: belongs_to via: receiverId - from: CreateQuoteRequest to: FundingRailId kind: has_one via: fundingRailId - from: CreateQuoteRequest to_hint: fundingRail kind: belongs_to via: fundingRailId - from: CreateQuoteRequest to_hint: paymentRail kind: belongs_to via: paymentRailId - from: EmbeddedCatalogRailItem to: Record_string.DestinationFieldDescriptor_ kind: has_one via: destinationFields - from: Paginated_EmbeddedCatalogRailItem_ to: EmbeddedCatalogRailItem kind: has_many via: items - from: BridgeDeposit to_hint: refundedPayout kind: belongs_to via: refundedPayoutId - from: BridgeDeposit to: Record_string.string_ kind: has_one via: metadata - from: BridgeDeposit to_hint: enterpriseUser kind: belongs_to via: enterpriseUserId - from: BridgeDeposit to_hint: bridgeTransaction kind: belongs_to via: bridgeTransactionId - from: Paginated_BridgeDeposit_ to: BridgeDeposit kind: has_many via: items - from: BulkPayout to: BulkPayoutStatus kind: has_one via: status - from: BulkPayout to_hint: enterpriseUser kind: belongs_to via: enterpriseUserId - from: CreateBulkPayoutRequest to: Omit_CreatePayoutRequest.commit_ kind: has_many via: payouts - from: Paginated_BulkPayout_ to: BulkPayout kind: has_many via: items - from: ListPaginatedBulkPayoutsParams to: BulkPayoutStatus kind: has_one via: status - from: ApiKey to_hint: enterprise kind: belongs_to via: enterpriseId - from: Paginated_ApiKey_ to: ApiKey kind: has_many via: items render: null