Files
sendico/interface/models/payment/payment.yaml
Stephan D 7d6d7c3f56 docs fix
2026-02-27 01:29:57 +01:00

341 lines
8.1 KiB
YAML

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