components: schemas: Asset: type: object additionalProperties: false properties: chain: $ref: ../../external/chain_network.yaml#/components/schemas/ChainNetwork token_symbol: type: string contract_address: type: string LedgerEndpoint: type: object additionalProperties: false required: - ledger_account_ref properties: ledger_account_ref: type: string contra_ledger_account_ref: type: string ManagedWalletEndpoint: type: object additionalProperties: false required: - managed_wallet_ref properties: managed_wallet_ref: type: string asset: $ref: ./payment.yaml#/components/schemas/Asset ExternalChainEndpoint: type: object additionalProperties: false required: - asset - address properties: asset: $ref: ./payment.yaml#/components/schemas/Asset address: type: string memo: type: string CardEndpoint: type: object additionalProperties: false required: - pan properties: pan: type: string firstName: type: string lastName: type: string exp_month: type: integer format: int32 minimum: 0 exp_year: type: integer format: int32 minimum: 0 country: type: string CardTokenEndpoint: type: object additionalProperties: false required: - token properties: token: type: string masked_pan: type: string WalletEndpoint: type: object additionalProperties: false required: - walletId properties: walletId: type: string Endpoint: type: object additionalProperties: false required: - type - data properties: type: $ref: ../../external/endpoint_type.yaml#/components/schemas/EndpointType data: oneOf: - $ref: ./payment.yaml#/components/schemas/LedgerEndpoint - $ref: ./payment.yaml#/components/schemas/ManagedWalletEndpoint - $ref: ./payment.yaml#/components/schemas/ExternalChainEndpoint - $ref: ./payment.yaml#/components/schemas/CardEndpoint - $ref: ./payment.yaml#/components/schemas/CardTokenEndpoint - $ref: ./payment.yaml#/components/schemas/WalletEndpoint metadata: type: object additionalProperties: type: string Customer: type: object additionalProperties: false properties: id: type: string first_name: type: string middle_name: type: string last_name: type: string ip: type: string zip: type: string country: type: string state: type: string city: type: string address: type: string CurrencyPair: type: object additionalProperties: false required: - base - quote properties: base: type: string quote: type: string FxIntent: type: object additionalProperties: false required: - pair - side properties: pair: $ref: ./payment.yaml#/components/schemas/CurrencyPair side: $ref: ../../external/fx_side.yaml#/components/schemas/FxSide firm: type: boolean ttl_ms: type: integer format: int64 preferred_provider: type: string max_age_ms: type: integer format: int32 PaymentIntent: type: object additionalProperties: false required: - kind - source - destination - amount properties: kind: $ref: ../../external/payment_kind.yaml#/components/schemas/PaymentKind source: $ref: ./payment.yaml#/components/schemas/Endpoint destination: $ref: ./payment.yaml#/components/schemas/Endpoint amount: $ref: ../common/money.yaml#/components/schemas/Money fx: $ref: ./payment.yaml#/components/schemas/FxIntent settlement_mode: $ref: ../../external/settlement_mode.yaml#/components/schemas/SettlementMode fee_treatment: type: string enum: - unspecified - add_to_source - deduct_from_destination attributes: type: object additionalProperties: type: string customer: $ref: ./payment.yaml#/components/schemas/Customer FeeLine: type: object additionalProperties: false properties: ledgerAccountRef: type: string amount: $ref: ../common/money.yaml#/components/schemas/Money lineType: type: string side: type: string meta: type: object additionalProperties: type: string QuoteFees: type: object additionalProperties: false properties: lines: type: array items: $ref: ./payment.yaml#/components/schemas/FeeLine QuoteAmounts: type: object additionalProperties: false properties: sourcePrincipal: $ref: ../common/money.yaml#/components/schemas/Money sourceDebitTotal: $ref: ../common/money.yaml#/components/schemas/Money destinationSettlement: $ref: ../common/money.yaml#/components/schemas/Money FxQuote: type: object additionalProperties: false properties: quoteRef: type: string baseCurrency: type: string quoteCurrency: type: string side: type: string price: type: string baseAmount: $ref: ../common/money.yaml#/components/schemas/Money quoteAmount: $ref: ../common/money.yaml#/components/schemas/Money expiresAtUnixMs: type: integer format: int64 pricedAtUnixMs: type: integer format: int64 provider: type: string rateRef: type: string firm: type: boolean PaymentQuote: type: object additionalProperties: false properties: quoteRef: type: string intentRef: type: string amounts: $ref: ./payment.yaml#/components/schemas/QuoteAmounts fees: $ref: ./payment.yaml#/components/schemas/QuoteFees fxQuote: $ref: ./payment.yaml#/components/schemas/FxQuote PaymentOperation: type: object additionalProperties: false properties: stepRef: type: string code: type: string state: type: string label: type: string failureCode: type: string failureReason: type: string startedAt: type: string format: date-time completedAt: type: string format: date-time Payment: type: object additionalProperties: false properties: paymentRef: type: string idempotencyKey: type: string state: $ref: ../../external/payment_state.yaml#/components/schemas/PaymentState failureCode: type: string failureReason: type: string operations: type: array items: $ref: ./payment.yaml#/components/schemas/PaymentOperation lastQuote: $ref: ./payment.yaml#/components/schemas/PaymentQuote createdAt: type: string format: date-time meta: type: object additionalProperties: type: string