diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 764518dd..e9d3e168 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -906,8 +906,6 @@ paths: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: '12345678901' routingNumber: '123456789' accountCategory: CHECKING @@ -1036,8 +1034,6 @@ paths: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: '12345678901' routingNumber: '123456789' accountCategory: CHECKING @@ -5758,11 +5754,10 @@ components: properties: accountType: $ref: '#/components/schemas/PaymentAccountType' - UsdAccountInfo: + UsdAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - routingNumber properties: @@ -5770,15 +5765,6 @@ components: type: string enum: - USD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - ACH - - WIRE - - RTP - - FEDNOW accountNumber: type: string description: The account number of the bank @@ -5791,6 +5777,22 @@ components: minLength: 9 maxLength: 9 pattern: ^[0-9]{9}$ + UsdAccountInfo: + allOf: + - $ref: '#/components/schemas/UsdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW PaymentUsdAccountInfo: title: USD Bank Account allOf: @@ -5820,23 +5822,16 @@ components: type: string description: A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app. minLength: 1 - MxnAccountInfo: + MxnAccountInfoBase: type: object required: - accountType - - paymentRails - clabeNumber properties: accountType: type: string enum: - MXN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SPEI clabeNumber: type: string description: The CLABE number of the bank @@ -5844,6 +5839,19 @@ components: minLength: 18 maxLength: 18 pattern: ^[0-9]{18}$ + MxnAccountInfo: + allOf: + - $ref: '#/components/schemas/MxnAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SPEI PaymentMxnAccountInfo: title: MXN Account allOf: @@ -5857,24 +5865,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - DkkAccountInfo: + DkkAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - DKK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT iban: type: string description: The IBAN of the bank account @@ -5889,6 +5889,20 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + DkkAccountInfo: + allOf: + - $ref: '#/components/schemas/DkkAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT PaymentDkkAccountInfo: title: DKK Account allOf: @@ -5902,24 +5916,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - EurAccountInfo: + EurAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - EUR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT iban: type: string description: The IBAN of the bank account @@ -5934,6 +5940,20 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + EurAccountInfo: + allOf: + - $ref: '#/components/schemas/EurAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT PaymentEurAccountInfo: title: EUR Account allOf: @@ -5947,23 +5967,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - InrAccountInfo: + InrAccountInfoBase: type: object required: - accountType - - paymentRails - vpa properties: accountType: type: string enum: - INR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - UPI vpa: type: string description: The UPI Virtual Payment Address @@ -5971,16 +5984,28 @@ components: minLength: 3 maxLength: 255 pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$ + InrAccountInfo: + allOf: + - $ref: '#/components/schemas/InrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - UPI PaymentInrAccountInfo: title: INR Account allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - $ref: '#/components/schemas/InrAccountInfo' - NgnAccountInfo: + NgnAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - bankName properties: @@ -5988,12 +6013,6 @@ components: type: string enum: - NGN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER accountNumber: type: string description: Nigerian bank account number @@ -6006,6 +6025,19 @@ components: description: The name of the bank minLength: 1 maxLength: 255 + NgnAccountInfo: + allOf: + - $ref: '#/components/schemas/NgnAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentNgnAccountInfo: title: NGN Account allOf: @@ -6019,11 +6051,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - CadAccountInfo: + CadAccountInfoBase: type: object required: - accountType - - paymentRails - bankCode - branchCode - accountNumber @@ -6032,12 +6063,6 @@ components: type: string enum: - CAD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankCode: type: string description: Canadian financial institution number (3 digits) @@ -6059,6 +6084,19 @@ components: minLength: 7 maxLength: 12 pattern: ^[0-9]{7,12}$ + CadAccountInfo: + allOf: + - $ref: '#/components/schemas/CadAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentCadAccountInfo: title: CAD Account allOf: @@ -6072,11 +6110,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - GbpAccountInfo: + GbpAccountInfoBase: type: object required: - accountType - - paymentRails - sortCode - accountNumber properties: @@ -6084,12 +6121,6 @@ components: type: string enum: - GBP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - FASTER_PAYMENTS sortCode: type: string description: The UK sort code @@ -6104,6 +6135,19 @@ components: maxLength: 8 example: '12345678' pattern: ^[0-9]{8}$ + GbpAccountInfo: + allOf: + - $ref: '#/components/schemas/GbpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS PaymentGbpAccountInfo: title: GBP Account allOf: @@ -6117,11 +6161,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - HkdAccountInfo: + HkdAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6130,12 +6173,6 @@ components: type: string enum: - HKD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6154,6 +6191,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + HkdAccountInfo: + allOf: + - $ref: '#/components/schemas/HkdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentHkdAccountInfo: title: HKD Account allOf: @@ -6167,11 +6217,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - IdrAccountInfo: + IdrAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6181,12 +6230,6 @@ components: type: string enum: - IDR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6213,6 +6256,19 @@ components: minLength: 7 maxLength: 15 pattern: ^\+62[0-9]{9,12}$ + IdrAccountInfo: + allOf: + - $ref: '#/components/schemas/IdrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentIdrAccountInfo: title: IDR Account allOf: @@ -6226,11 +6282,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - MyrAccountInfo: + MyrAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6239,12 +6294,6 @@ components: type: string enum: - MYR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6263,6 +6312,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + MyrAccountInfo: + allOf: + - $ref: '#/components/schemas/MyrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentMyrAccountInfo: title: MYR Account allOf: @@ -6276,11 +6338,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - PhpAccountInfo: + PhpAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber properties: @@ -6288,12 +6349,6 @@ components: type: string enum: - PHP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank @@ -6306,6 +6361,19 @@ components: minLength: 1 maxLength: 34 example: '001234567890' + PhpAccountInfo: + allOf: + - $ref: '#/components/schemas/PhpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentPhpAccountInfo: title: PHP Account allOf: @@ -6319,11 +6387,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - SgdAccountInfo: + SgdAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6332,14 +6399,6 @@ components: type: string enum: - SGD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PAYNOW - - FAST - - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank @@ -6359,6 +6418,21 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + SgdAccountInfo: + allOf: + - $ref: '#/components/schemas/SgdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER PaymentSgdAccountInfo: title: SGD Account allOf: @@ -6372,11 +6446,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ThbAccountInfo: + ThbAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6385,12 +6458,6 @@ components: type: string enum: - THB_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6409,6 +6476,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + ThbAccountInfo: + allOf: + - $ref: '#/components/schemas/ThbAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentThbAccountInfo: title: THB Account allOf: @@ -6422,11 +6502,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - VndAccountInfo: + VndAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6435,12 +6514,6 @@ components: type: string enum: - VND_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6459,6 +6532,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + VndAccountInfo: + allOf: + - $ref: '#/components/schemas/VndAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentVndAccountInfo: title: VND Account allOf: @@ -6652,23 +6738,16 @@ components: description: Type of asset enum: - USDC - AedAccountInfo: + AedAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - AED_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER iban: type: string description: UAE IBAN (23 characters, starting with AE) @@ -6683,6 +6762,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + AedAccountInfo: + allOf: + - $ref: '#/components/schemas/AedAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentAedAccountInfo: title: AED Account allOf: @@ -6696,11 +6788,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - KesAccountInfo: + KesAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6708,12 +6799,6 @@ components: type: string enum: - KES_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Kenyan mobile money phone number @@ -6726,6 +6811,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + KesAccountInfo: + allOf: + - $ref: '#/components/schemas/KesAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentKesAccountInfo: title: KES Account allOf: @@ -6739,11 +6837,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - MwkAccountInfo: + MwkAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6751,12 +6848,6 @@ components: type: string enum: - MWK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6769,6 +6860,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + MwkAccountInfo: + allOf: + - $ref: '#/components/schemas/MwkAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentMwkAccountInfo: title: MWK Account allOf: @@ -6782,11 +6886,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - RwfAccountInfo: + RwfAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6794,12 +6897,6 @@ components: type: string enum: - RWF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Rwandan mobile money phone number @@ -6812,6 +6909,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + RwfAccountInfo: + allOf: + - $ref: '#/components/schemas/RwfAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentRwfAccountInfo: title: RWF Account allOf: @@ -6825,11 +6935,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - TzsAccountInfo: + TzsAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6837,12 +6946,6 @@ components: type: string enum: - TZS_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Tanzanian mobile money phone number @@ -6855,6 +6958,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + TzsAccountInfo: + allOf: + - $ref: '#/components/schemas/TzsAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentTzsAccountInfo: title: TZS Account allOf: @@ -6868,11 +6984,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - UgxAccountInfo: + UgxAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6880,12 +6995,6 @@ components: type: string enum: - UGX_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6898,6 +7007,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + UgxAccountInfo: + allOf: + - $ref: '#/components/schemas/UgxAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentUgxAccountInfo: title: UGX Account allOf: @@ -6911,11 +7033,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - XofAccountInfo: + XofAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider - region @@ -6924,12 +7045,6 @@ components: type: string enum: - XOF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6953,6 +7068,19 @@ components: - CI - SN - TG + XofAccountInfo: + allOf: + - $ref: '#/components/schemas/XofAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentXofAccountInfo: title: XOF Account allOf: @@ -6966,11 +7094,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ZarAccountInfo: + ZarAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - bankName properties: @@ -6978,12 +7105,6 @@ components: type: string enum: - ZAR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER accountNumber: type: string description: South African bank account number @@ -6996,6 +7117,19 @@ components: description: The name of the bank minLength: 1 maxLength: 255 + ZarAccountInfo: + allOf: + - $ref: '#/components/schemas/ZarAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentZarAccountInfo: title: ZAR Account allOf: @@ -7009,11 +7143,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ZmwAccountInfo: + ZmwAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -7021,12 +7154,6 @@ components: type: string enum: - ZMW_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Zambian mobile money phone number @@ -7039,6 +7166,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + ZmwAccountInfo: + allOf: + - $ref: '#/components/schemas/ZmwAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentZmwAccountInfo: title: ZMW Account allOf: @@ -7052,11 +7192,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - BwpAccountInfo: + BwpAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -7064,12 +7203,6 @@ components: type: string enum: - BWP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -7082,6 +7215,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + BwpAccountInfo: + allOf: + - $ref: '#/components/schemas/BwpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentBwpAccountInfo: title: BWP Account allOf: @@ -7095,11 +7241,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - XafAccountInfo: + XafAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider - region @@ -7108,12 +7253,6 @@ components: type: string enum: - XAF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -7135,6 +7274,19 @@ components: enum: - CM - CG + XafAccountInfo: + allOf: + - $ref: '#/components/schemas/XafAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentXafAccountInfo: title: XAF Account allOf: @@ -7349,11 +7501,10 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' - BrlAccountInfo: + BrlAccountInfoBase: type: object required: - accountType - - paymentRails - pixKey - pixKeyType - taxId @@ -7362,12 +7513,6 @@ components: type: string enum: - BRL_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PIX pixKey: type: string description: The PIX key (email, phone, CPF, CNPJ, or random) @@ -7388,6 +7533,19 @@ components: minLength: 11 maxLength: 14 pattern: ^[0-9]{11,14}$ + BrlAccountInfo: + allOf: + - $ref: '#/components/schemas/BrlAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PIX BrlBeneficiary: title: Individual Beneficiary type: object @@ -9055,35 +9213,648 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' - ExternalAccountCreateRequest: + AedExternalAccountCreateInfo: + title: AED Account allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/AedAccountInfoBase' - type: object required: - - currency - - accountInfo + - beneficiary properties: - customerId: - type: string - description: The ID of the customer for whom to create the external account. If not provided, the external account will be created on behalf of the platform. - example: Customer:019542f5-b3e7-1d02-0000-000000000001 - currency: - type: string - description: The ISO 4217 currency code - example: USD - platformAccountId: - type: string - description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. - example: ext_acc_123456 - defaultUmaDepositAccount: - type: boolean - description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. - default: false - cryptoNetwork: - type: string - description: 'The blockchain network for this external account. Required when the account is a cryptocurrency wallet (e.g. SolanaWallet, PolygonWallet, TronWallet). Specifies which network the wallet is on. Example values: SOLANA_MAINNET, SOLANA_DEVNET, ETHEREUM_MAINNET, POLYGON_MAINNET, TRON_MAINNET.' - example: SOLANA_MAINNET - accountInfo: - $ref: '#/components/schemas/ExternalAccountInfoOneOf' + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/AedBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/AedBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + BrlExternalAccountCreateInfo: + title: BRL Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/BrlBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/BrlBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + BwpExternalAccountCreateInfo: + title: BWP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BwpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/BwpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/BwpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + CadExternalAccountCreateInfo: + title: CAD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/CadAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/CadBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/CadBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + DkkExternalAccountCreateInfo: + title: DKK Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/DkkBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/DkkBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + EurExternalAccountCreateInfo: + title: EUR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/EurAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/EurBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/EurBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + GbpExternalAccountCreateInfo: + title: GBP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/GbpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/GbpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + HkdExternalAccountCreateInfo: + title: HKD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/HkdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/HkdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + IdrExternalAccountCreateInfo: + title: IDR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/IdrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IdrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + InrExternalAccountCreateInfo: + title: INR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/InrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/InrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + KesExternalAccountCreateInfo: + title: KES Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/KesAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/KesBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/KesBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MwkExternalAccountCreateInfo: + title: MWK Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MwkAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MwkBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MwkBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MxnExternalAccountCreateInfo: + title: MXN Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MxnBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MxnBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MyrExternalAccountCreateInfo: + title: MYR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MyrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MyrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + NgnExternalAccountCreateInfo: + title: NGN Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/NgnBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/NgnBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + PhpExternalAccountCreateInfo: + title: PHP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/PhpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/PhpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/PhpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + RwfExternalAccountCreateInfo: + title: RWF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/RwfAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/RwfBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/RwfBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + SgdExternalAccountCreateInfo: + title: SGD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/SgdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/SgdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/SgdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ThbExternalAccountCreateInfo: + title: THB Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ThbBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ThbBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + TzsExternalAccountCreateInfo: + title: TZS Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/TzsAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/TzsBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/TzsBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + UgxExternalAccountCreateInfo: + title: UGX Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UgxAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/UgxBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/UgxBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + UsdExternalAccountCreateInfo: + title: USD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/UsdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/UsdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + VndExternalAccountCreateInfo: + title: VND Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/VndBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/VndBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + XafExternalAccountCreateInfo: + title: XAF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/XafAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/XafBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/XafBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + XofExternalAccountCreateInfo: + title: XOF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/XofAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/XofBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/XofBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ZarExternalAccountCreateInfo: + title: ZAR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ZarAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ZarBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ZarBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ZmwExternalAccountCreateInfo: + title: ZMW Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ZmwAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ZmwBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ZmwBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ExternalAccountCreateInfoOneOf: + oneOf: + - $ref: '#/components/schemas/AedExternalAccountCreateInfo' + - $ref: '#/components/schemas/BrlExternalAccountCreateInfo' + - $ref: '#/components/schemas/BwpExternalAccountCreateInfo' + - $ref: '#/components/schemas/CadExternalAccountCreateInfo' + - $ref: '#/components/schemas/DkkExternalAccountCreateInfo' + - $ref: '#/components/schemas/EurExternalAccountCreateInfo' + - $ref: '#/components/schemas/GbpExternalAccountCreateInfo' + - $ref: '#/components/schemas/HkdExternalAccountCreateInfo' + - $ref: '#/components/schemas/IdrExternalAccountCreateInfo' + - $ref: '#/components/schemas/InrExternalAccountCreateInfo' + - $ref: '#/components/schemas/KesExternalAccountCreateInfo' + - $ref: '#/components/schemas/MwkExternalAccountCreateInfo' + - $ref: '#/components/schemas/MxnExternalAccountCreateInfo' + - $ref: '#/components/schemas/MyrExternalAccountCreateInfo' + - $ref: '#/components/schemas/NgnExternalAccountCreateInfo' + - $ref: '#/components/schemas/PhpExternalAccountCreateInfo' + - $ref: '#/components/schemas/RwfExternalAccountCreateInfo' + - $ref: '#/components/schemas/SgdExternalAccountCreateInfo' + - $ref: '#/components/schemas/ThbExternalAccountCreateInfo' + - $ref: '#/components/schemas/TzsExternalAccountCreateInfo' + - $ref: '#/components/schemas/UgxExternalAccountCreateInfo' + - $ref: '#/components/schemas/UsdExternalAccountCreateInfo' + - $ref: '#/components/schemas/VndExternalAccountCreateInfo' + - $ref: '#/components/schemas/XafExternalAccountCreateInfo' + - $ref: '#/components/schemas/XofExternalAccountCreateInfo' + - $ref: '#/components/schemas/ZarExternalAccountCreateInfo' + - $ref: '#/components/schemas/ZmwExternalAccountCreateInfo' + - $ref: '#/components/schemas/SparkWalletExternalAccountInfo' + - $ref: '#/components/schemas/LightningExternalAccountInfo' + - $ref: '#/components/schemas/SolanaWalletExternalAccountInfo' + - $ref: '#/components/schemas/TronWalletExternalAccountInfo' + - $ref: '#/components/schemas/PolygonWalletExternalAccountInfo' + - $ref: '#/components/schemas/BaseWalletExternalAccountInfo' + - $ref: '#/components/schemas/EthereumWalletExternalAccountInfo' + discriminator: + propertyName: accountType + mapping: + AED_ACCOUNT: '#/components/schemas/AedExternalAccountCreateInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountCreateInfo' + BWP_ACCOUNT: '#/components/schemas/BwpExternalAccountCreateInfo' + CAD_ACCOUNT: '#/components/schemas/CadExternalAccountCreateInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountCreateInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountCreateInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountCreateInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountCreateInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountCreateInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountCreateInfo' + KES_ACCOUNT: '#/components/schemas/KesExternalAccountCreateInfo' + MWK_ACCOUNT: '#/components/schemas/MwkExternalAccountCreateInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountCreateInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountCreateInfo' + NGN_ACCOUNT: '#/components/schemas/NgnExternalAccountCreateInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountCreateInfo' + RWF_ACCOUNT: '#/components/schemas/RwfExternalAccountCreateInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountCreateInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountCreateInfo' + TZS_ACCOUNT: '#/components/schemas/TzsExternalAccountCreateInfo' + UGX_ACCOUNT: '#/components/schemas/UgxExternalAccountCreateInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountCreateInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountCreateInfo' + XAF_ACCOUNT: '#/components/schemas/XafExternalAccountCreateInfo' + XOF_ACCOUNT: '#/components/schemas/XofExternalAccountCreateInfo' + ZAR_ACCOUNT: '#/components/schemas/ZarExternalAccountCreateInfo' + ZMW_ACCOUNT: '#/components/schemas/ZmwExternalAccountCreateInfo' + SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' + LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' + SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' + TRON_WALLET: '#/components/schemas/TronWalletExternalAccountInfo' + POLYGON_WALLET: '#/components/schemas/PolygonWalletExternalAccountInfo' + BASE_WALLET: '#/components/schemas/BaseWalletExternalAccountInfo' + ETHEREUM_WALLET: '#/components/schemas/EthereumWalletExternalAccountInfo' + ExternalAccountCreateRequest: + allOf: + - type: object + required: + - currency + - accountInfo + properties: + customerId: + type: string + description: The ID of the customer for whom to create the external account. If not provided, the external account will be created on behalf of the platform. + example: Customer:019542f5-b3e7-1d02-0000-000000000001 + currency: + type: string + description: The ISO 4217 currency code + example: USD + platformAccountId: + type: string + description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. + example: ext_acc_123456 + defaultUmaDepositAccount: + type: boolean + description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. + default: false + cryptoNetwork: + type: string + description: 'The blockchain network for this external account. Required when the account is a cryptocurrency wallet (e.g. SolanaWallet, PolygonWallet, TronWallet). Specifies which network the wallet is on. Example values: SOLANA_MAINNET, SOLANA_DEVNET, ETHEREUM_MAINNET, POLYGON_MAINNET, TRON_MAINNET.' + example: SOLANA_MAINNET + accountInfo: + $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' PlatformExternalAccountCreateRequest: type: object required: @@ -9099,7 +9870,7 @@ components: description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 accountInfo: - $ref: '#/components/schemas/ExternalAccountInfoOneOf' + $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' BeneficialOwnerCreateRequest: type: object required: diff --git a/openapi.yaml b/openapi.yaml index 764518dd..e9d3e168 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -906,8 +906,6 @@ paths: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: '12345678901' routingNumber: '123456789' accountCategory: CHECKING @@ -1036,8 +1034,6 @@ paths: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: '12345678901' routingNumber: '123456789' accountCategory: CHECKING @@ -5758,11 +5754,10 @@ components: properties: accountType: $ref: '#/components/schemas/PaymentAccountType' - UsdAccountInfo: + UsdAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - routingNumber properties: @@ -5770,15 +5765,6 @@ components: type: string enum: - USD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - ACH - - WIRE - - RTP - - FEDNOW accountNumber: type: string description: The account number of the bank @@ -5791,6 +5777,22 @@ components: minLength: 9 maxLength: 9 pattern: ^[0-9]{9}$ + UsdAccountInfo: + allOf: + - $ref: '#/components/schemas/UsdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW PaymentUsdAccountInfo: title: USD Bank Account allOf: @@ -5820,23 +5822,16 @@ components: type: string description: A PIX QR code payload that can be used to fund the transaction. This can be rendered as a QR code image or pasted into a PIX-compatible banking app. minLength: 1 - MxnAccountInfo: + MxnAccountInfoBase: type: object required: - accountType - - paymentRails - clabeNumber properties: accountType: type: string enum: - MXN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SPEI clabeNumber: type: string description: The CLABE number of the bank @@ -5844,6 +5839,19 @@ components: minLength: 18 maxLength: 18 pattern: ^[0-9]{18}$ + MxnAccountInfo: + allOf: + - $ref: '#/components/schemas/MxnAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SPEI PaymentMxnAccountInfo: title: MXN Account allOf: @@ -5857,24 +5865,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - DkkAccountInfo: + DkkAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - DKK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT iban: type: string description: The IBAN of the bank account @@ -5889,6 +5889,20 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + DkkAccountInfo: + allOf: + - $ref: '#/components/schemas/DkkAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT PaymentDkkAccountInfo: title: DKK Account allOf: @@ -5902,24 +5916,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - EurAccountInfo: + EurAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - EUR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT iban: type: string description: The IBAN of the bank account @@ -5934,6 +5940,20 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + EurAccountInfo: + allOf: + - $ref: '#/components/schemas/EurAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT PaymentEurAccountInfo: title: EUR Account allOf: @@ -5947,23 +5967,16 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - InrAccountInfo: + InrAccountInfoBase: type: object required: - accountType - - paymentRails - vpa properties: accountType: type: string enum: - INR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - UPI vpa: type: string description: The UPI Virtual Payment Address @@ -5971,16 +5984,28 @@ components: minLength: 3 maxLength: 255 pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$ + InrAccountInfo: + allOf: + - $ref: '#/components/schemas/InrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - UPI PaymentInrAccountInfo: title: INR Account allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - $ref: '#/components/schemas/InrAccountInfo' - NgnAccountInfo: + NgnAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - bankName properties: @@ -5988,12 +6013,6 @@ components: type: string enum: - NGN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER accountNumber: type: string description: Nigerian bank account number @@ -6006,6 +6025,19 @@ components: description: The name of the bank minLength: 1 maxLength: 255 + NgnAccountInfo: + allOf: + - $ref: '#/components/schemas/NgnAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentNgnAccountInfo: title: NGN Account allOf: @@ -6019,11 +6051,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - CadAccountInfo: + CadAccountInfoBase: type: object required: - accountType - - paymentRails - bankCode - branchCode - accountNumber @@ -6032,12 +6063,6 @@ components: type: string enum: - CAD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankCode: type: string description: Canadian financial institution number (3 digits) @@ -6059,6 +6084,19 @@ components: minLength: 7 maxLength: 12 pattern: ^[0-9]{7,12}$ + CadAccountInfo: + allOf: + - $ref: '#/components/schemas/CadAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentCadAccountInfo: title: CAD Account allOf: @@ -6072,11 +6110,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - GbpAccountInfo: + GbpAccountInfoBase: type: object required: - accountType - - paymentRails - sortCode - accountNumber properties: @@ -6084,12 +6121,6 @@ components: type: string enum: - GBP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - FASTER_PAYMENTS sortCode: type: string description: The UK sort code @@ -6104,6 +6135,19 @@ components: maxLength: 8 example: '12345678' pattern: ^[0-9]{8}$ + GbpAccountInfo: + allOf: + - $ref: '#/components/schemas/GbpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS PaymentGbpAccountInfo: title: GBP Account allOf: @@ -6117,11 +6161,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - HkdAccountInfo: + HkdAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6130,12 +6173,6 @@ components: type: string enum: - HKD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6154,6 +6191,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + HkdAccountInfo: + allOf: + - $ref: '#/components/schemas/HkdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentHkdAccountInfo: title: HKD Account allOf: @@ -6167,11 +6217,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - IdrAccountInfo: + IdrAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6181,12 +6230,6 @@ components: type: string enum: - IDR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6213,6 +6256,19 @@ components: minLength: 7 maxLength: 15 pattern: ^\+62[0-9]{9,12}$ + IdrAccountInfo: + allOf: + - $ref: '#/components/schemas/IdrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentIdrAccountInfo: title: IDR Account allOf: @@ -6226,11 +6282,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - MyrAccountInfo: + MyrAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6239,12 +6294,6 @@ components: type: string enum: - MYR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6263,6 +6312,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + MyrAccountInfo: + allOf: + - $ref: '#/components/schemas/MyrAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentMyrAccountInfo: title: MYR Account allOf: @@ -6276,11 +6338,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - PhpAccountInfo: + PhpAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber properties: @@ -6288,12 +6349,6 @@ components: type: string enum: - PHP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank @@ -6306,6 +6361,19 @@ components: minLength: 1 maxLength: 34 example: '001234567890' + PhpAccountInfo: + allOf: + - $ref: '#/components/schemas/PhpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentPhpAccountInfo: title: PHP Account allOf: @@ -6319,11 +6387,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - SgdAccountInfo: + SgdAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6332,14 +6399,6 @@ components: type: string enum: - SGD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PAYNOW - - FAST - - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank @@ -6359,6 +6418,21 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + SgdAccountInfo: + allOf: + - $ref: '#/components/schemas/SgdAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER PaymentSgdAccountInfo: title: SGD Account allOf: @@ -6372,11 +6446,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ThbAccountInfo: + ThbAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6385,12 +6458,6 @@ components: type: string enum: - THB_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6409,6 +6476,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + ThbAccountInfo: + allOf: + - $ref: '#/components/schemas/ThbAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentThbAccountInfo: title: THB Account allOf: @@ -6422,11 +6502,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - VndAccountInfo: + VndAccountInfoBase: type: object required: - accountType - - paymentRails - bankName - accountNumber - swiftCode @@ -6435,12 +6514,6 @@ components: type: string enum: - VND_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER bankName: type: string description: The name of the bank @@ -6459,6 +6532,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + VndAccountInfo: + allOf: + - $ref: '#/components/schemas/VndAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentVndAccountInfo: title: VND Account allOf: @@ -6652,23 +6738,16 @@ components: description: Type of asset enum: - USDC - AedAccountInfo: + AedAccountInfoBase: type: object required: - accountType - - paymentRails - iban properties: accountType: type: string enum: - AED_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER iban: type: string description: UAE IBAN (23 characters, starting with AE) @@ -6683,6 +6762,19 @@ components: minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + AedAccountInfo: + allOf: + - $ref: '#/components/schemas/AedAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentAedAccountInfo: title: AED Account allOf: @@ -6696,11 +6788,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - KesAccountInfo: + KesAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6708,12 +6799,6 @@ components: type: string enum: - KES_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Kenyan mobile money phone number @@ -6726,6 +6811,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + KesAccountInfo: + allOf: + - $ref: '#/components/schemas/KesAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentKesAccountInfo: title: KES Account allOf: @@ -6739,11 +6837,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - MwkAccountInfo: + MwkAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6751,12 +6848,6 @@ components: type: string enum: - MWK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6769,6 +6860,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + MwkAccountInfo: + allOf: + - $ref: '#/components/schemas/MwkAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentMwkAccountInfo: title: MWK Account allOf: @@ -6782,11 +6886,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - RwfAccountInfo: + RwfAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6794,12 +6897,6 @@ components: type: string enum: - RWF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Rwandan mobile money phone number @@ -6812,6 +6909,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + RwfAccountInfo: + allOf: + - $ref: '#/components/schemas/RwfAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentRwfAccountInfo: title: RWF Account allOf: @@ -6825,11 +6935,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - TzsAccountInfo: + TzsAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6837,12 +6946,6 @@ components: type: string enum: - TZS_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Tanzanian mobile money phone number @@ -6855,6 +6958,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + TzsAccountInfo: + allOf: + - $ref: '#/components/schemas/TzsAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentTzsAccountInfo: title: TZS Account allOf: @@ -6868,11 +6984,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - UgxAccountInfo: + UgxAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -6880,12 +6995,6 @@ components: type: string enum: - UGX_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6898,6 +7007,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + UgxAccountInfo: + allOf: + - $ref: '#/components/schemas/UgxAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentUgxAccountInfo: title: UGX Account allOf: @@ -6911,11 +7033,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - XofAccountInfo: + XofAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider - region @@ -6924,12 +7045,6 @@ components: type: string enum: - XOF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -6953,6 +7068,19 @@ components: - CI - SN - TG + XofAccountInfo: + allOf: + - $ref: '#/components/schemas/XofAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentXofAccountInfo: title: XOF Account allOf: @@ -6966,11 +7094,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ZarAccountInfo: + ZarAccountInfoBase: type: object required: - accountType - - paymentRails - accountNumber - bankName properties: @@ -6978,12 +7105,6 @@ components: type: string enum: - ZAR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER accountNumber: type: string description: South African bank account number @@ -6996,6 +7117,19 @@ components: description: The name of the bank minLength: 1 maxLength: 255 + ZarAccountInfo: + allOf: + - $ref: '#/components/schemas/ZarAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER PaymentZarAccountInfo: title: ZAR Account allOf: @@ -7009,11 +7143,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - ZmwAccountInfo: + ZmwAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -7021,12 +7154,6 @@ components: type: string enum: - ZMW_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: Zambian mobile money phone number @@ -7039,6 +7166,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + ZmwAccountInfo: + allOf: + - $ref: '#/components/schemas/ZmwAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentZmwAccountInfo: title: ZMW Account allOf: @@ -7052,11 +7192,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - BwpAccountInfo: + BwpAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider properties: @@ -7064,12 +7203,6 @@ components: type: string enum: - BWP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -7082,6 +7215,19 @@ components: description: The mobile money provider name minLength: 1 maxLength: 255 + BwpAccountInfo: + allOf: + - $ref: '#/components/schemas/BwpAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentBwpAccountInfo: title: BWP Account allOf: @@ -7095,11 +7241,10 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - XafAccountInfo: + XafAccountInfoBase: type: object required: - accountType - - paymentRails - phoneNumber - provider - region @@ -7108,12 +7253,6 @@ components: type: string enum: - XAF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY phoneNumber: type: string description: The phone number in international format @@ -7135,6 +7274,19 @@ components: enum: - CM - CG + XafAccountInfo: + allOf: + - $ref: '#/components/schemas/XafAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY PaymentXafAccountInfo: title: XAF Account allOf: @@ -7349,11 +7501,10 @@ components: properties: accountType: $ref: '#/components/schemas/ExternalAccountType' - BrlAccountInfo: + BrlAccountInfoBase: type: object required: - accountType - - paymentRails - pixKey - pixKeyType - taxId @@ -7362,12 +7513,6 @@ components: type: string enum: - BRL_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PIX pixKey: type: string description: The PIX key (email, phone, CPF, CNPJ, or random) @@ -7388,6 +7533,19 @@ components: minLength: 11 maxLength: 14 pattern: ^[0-9]{11,14}$ + BrlAccountInfo: + allOf: + - $ref: '#/components/schemas/BrlAccountInfoBase' + - type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PIX BrlBeneficiary: title: Individual Beneficiary type: object @@ -9055,35 +9213,648 @@ components: example: SOLANA_MAINNET accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' - ExternalAccountCreateRequest: + AedExternalAccountCreateInfo: + title: AED Account allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/AedAccountInfoBase' - type: object required: - - currency - - accountInfo + - beneficiary properties: - customerId: - type: string - description: The ID of the customer for whom to create the external account. If not provided, the external account will be created on behalf of the platform. - example: Customer:019542f5-b3e7-1d02-0000-000000000001 - currency: - type: string - description: The ISO 4217 currency code - example: USD - platformAccountId: - type: string - description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. - example: ext_acc_123456 - defaultUmaDepositAccount: - type: boolean - description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. - default: false - cryptoNetwork: - type: string - description: 'The blockchain network for this external account. Required when the account is a cryptocurrency wallet (e.g. SolanaWallet, PolygonWallet, TronWallet). Specifies which network the wallet is on. Example values: SOLANA_MAINNET, SOLANA_DEVNET, ETHEREUM_MAINNET, POLYGON_MAINNET, TRON_MAINNET.' - example: SOLANA_MAINNET - accountInfo: - $ref: '#/components/schemas/ExternalAccountInfoOneOf' + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/AedBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/AedBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + BrlExternalAccountCreateInfo: + title: BRL Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/BrlBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/BrlBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + BwpExternalAccountCreateInfo: + title: BWP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BwpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/BwpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/BwpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + CadExternalAccountCreateInfo: + title: CAD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/CadAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/CadBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/CadBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + DkkExternalAccountCreateInfo: + title: DKK Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/DkkBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/DkkBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + EurExternalAccountCreateInfo: + title: EUR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/EurAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/EurBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/EurBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + GbpExternalAccountCreateInfo: + title: GBP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/GbpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/GbpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + HkdExternalAccountCreateInfo: + title: HKD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/HkdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/HkdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + IdrExternalAccountCreateInfo: + title: IDR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/IdrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IdrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + InrExternalAccountCreateInfo: + title: INR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/InrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/InrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + KesExternalAccountCreateInfo: + title: KES Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/KesAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/KesBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/KesBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MwkExternalAccountCreateInfo: + title: MWK Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MwkAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MwkBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MwkBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MxnExternalAccountCreateInfo: + title: MXN Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MxnBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MxnBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + MyrExternalAccountCreateInfo: + title: MYR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/MyrBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/MyrBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + NgnExternalAccountCreateInfo: + title: NGN Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/NgnBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/NgnBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + PhpExternalAccountCreateInfo: + title: PHP Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/PhpAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/PhpBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/PhpBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + RwfExternalAccountCreateInfo: + title: RWF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/RwfAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/RwfBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/RwfBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + SgdExternalAccountCreateInfo: + title: SGD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/SgdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/SgdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/SgdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ThbExternalAccountCreateInfo: + title: THB Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ThbBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ThbBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + TzsExternalAccountCreateInfo: + title: TZS Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/TzsAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/TzsBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/TzsBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + UgxExternalAccountCreateInfo: + title: UGX Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UgxAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/UgxBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/UgxBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + UsdExternalAccountCreateInfo: + title: USD Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/UsdBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/UsdBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + VndExternalAccountCreateInfo: + title: VND Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/VndBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/VndBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + XafExternalAccountCreateInfo: + title: XAF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/XafAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/XafBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/XafBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + XofExternalAccountCreateInfo: + title: XOF Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/XofAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/XofBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/XofBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ZarExternalAccountCreateInfo: + title: ZAR Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ZarAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ZarBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ZarBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ZmwExternalAccountCreateInfo: + title: ZMW Account + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ZmwAccountInfoBase' + - type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/ZmwBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/ZmwBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ExternalAccountCreateInfoOneOf: + oneOf: + - $ref: '#/components/schemas/AedExternalAccountCreateInfo' + - $ref: '#/components/schemas/BrlExternalAccountCreateInfo' + - $ref: '#/components/schemas/BwpExternalAccountCreateInfo' + - $ref: '#/components/schemas/CadExternalAccountCreateInfo' + - $ref: '#/components/schemas/DkkExternalAccountCreateInfo' + - $ref: '#/components/schemas/EurExternalAccountCreateInfo' + - $ref: '#/components/schemas/GbpExternalAccountCreateInfo' + - $ref: '#/components/schemas/HkdExternalAccountCreateInfo' + - $ref: '#/components/schemas/IdrExternalAccountCreateInfo' + - $ref: '#/components/schemas/InrExternalAccountCreateInfo' + - $ref: '#/components/schemas/KesExternalAccountCreateInfo' + - $ref: '#/components/schemas/MwkExternalAccountCreateInfo' + - $ref: '#/components/schemas/MxnExternalAccountCreateInfo' + - $ref: '#/components/schemas/MyrExternalAccountCreateInfo' + - $ref: '#/components/schemas/NgnExternalAccountCreateInfo' + - $ref: '#/components/schemas/PhpExternalAccountCreateInfo' + - $ref: '#/components/schemas/RwfExternalAccountCreateInfo' + - $ref: '#/components/schemas/SgdExternalAccountCreateInfo' + - $ref: '#/components/schemas/ThbExternalAccountCreateInfo' + - $ref: '#/components/schemas/TzsExternalAccountCreateInfo' + - $ref: '#/components/schemas/UgxExternalAccountCreateInfo' + - $ref: '#/components/schemas/UsdExternalAccountCreateInfo' + - $ref: '#/components/schemas/VndExternalAccountCreateInfo' + - $ref: '#/components/schemas/XafExternalAccountCreateInfo' + - $ref: '#/components/schemas/XofExternalAccountCreateInfo' + - $ref: '#/components/schemas/ZarExternalAccountCreateInfo' + - $ref: '#/components/schemas/ZmwExternalAccountCreateInfo' + - $ref: '#/components/schemas/SparkWalletExternalAccountInfo' + - $ref: '#/components/schemas/LightningExternalAccountInfo' + - $ref: '#/components/schemas/SolanaWalletExternalAccountInfo' + - $ref: '#/components/schemas/TronWalletExternalAccountInfo' + - $ref: '#/components/schemas/PolygonWalletExternalAccountInfo' + - $ref: '#/components/schemas/BaseWalletExternalAccountInfo' + - $ref: '#/components/schemas/EthereumWalletExternalAccountInfo' + discriminator: + propertyName: accountType + mapping: + AED_ACCOUNT: '#/components/schemas/AedExternalAccountCreateInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountCreateInfo' + BWP_ACCOUNT: '#/components/schemas/BwpExternalAccountCreateInfo' + CAD_ACCOUNT: '#/components/schemas/CadExternalAccountCreateInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountCreateInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountCreateInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountCreateInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountCreateInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountCreateInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountCreateInfo' + KES_ACCOUNT: '#/components/schemas/KesExternalAccountCreateInfo' + MWK_ACCOUNT: '#/components/schemas/MwkExternalAccountCreateInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountCreateInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountCreateInfo' + NGN_ACCOUNT: '#/components/schemas/NgnExternalAccountCreateInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountCreateInfo' + RWF_ACCOUNT: '#/components/schemas/RwfExternalAccountCreateInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountCreateInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountCreateInfo' + TZS_ACCOUNT: '#/components/schemas/TzsExternalAccountCreateInfo' + UGX_ACCOUNT: '#/components/schemas/UgxExternalAccountCreateInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountCreateInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountCreateInfo' + XAF_ACCOUNT: '#/components/schemas/XafExternalAccountCreateInfo' + XOF_ACCOUNT: '#/components/schemas/XofExternalAccountCreateInfo' + ZAR_ACCOUNT: '#/components/schemas/ZarExternalAccountCreateInfo' + ZMW_ACCOUNT: '#/components/schemas/ZmwExternalAccountCreateInfo' + SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' + LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' + SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' + TRON_WALLET: '#/components/schemas/TronWalletExternalAccountInfo' + POLYGON_WALLET: '#/components/schemas/PolygonWalletExternalAccountInfo' + BASE_WALLET: '#/components/schemas/BaseWalletExternalAccountInfo' + ETHEREUM_WALLET: '#/components/schemas/EthereumWalletExternalAccountInfo' + ExternalAccountCreateRequest: + allOf: + - type: object + required: + - currency + - accountInfo + properties: + customerId: + type: string + description: The ID of the customer for whom to create the external account. If not provided, the external account will be created on behalf of the platform. + example: Customer:019542f5-b3e7-1d02-0000-000000000001 + currency: + type: string + description: The ISO 4217 currency code + example: USD + platformAccountId: + type: string + description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. + example: ext_acc_123456 + defaultUmaDepositAccount: + type: boolean + description: Whether to set the external account as the default UMA deposit account. When set to true, incoming payments to this customer's UMA address will be automatically deposited into this external account. False if not provided. Note that only one external account can be set as the default UMA deposit account for a customer, so if there is already a default UMA deposit account, this will override the existing default UMA deposit account. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. + default: false + cryptoNetwork: + type: string + description: 'The blockchain network for this external account. Required when the account is a cryptocurrency wallet (e.g. SolanaWallet, PolygonWallet, TronWallet). Specifies which network the wallet is on. Example values: SOLANA_MAINNET, SOLANA_DEVNET, ETHEREUM_MAINNET, POLYGON_MAINNET, TRON_MAINNET.' + example: SOLANA_MAINNET + accountInfo: + $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' PlatformExternalAccountCreateRequest: type: object required: @@ -9099,7 +9870,7 @@ components: description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 accountInfo: - $ref: '#/components/schemas/ExternalAccountInfoOneOf' + $ref: '#/components/schemas/ExternalAccountCreateInfoOneOf' BeneficialOwnerCreateRequest: type: object required: diff --git a/openapi/components/schemas/common/AedAccountInfo.yaml b/openapi/components/schemas/common/AedAccountInfo.yaml index 663171a5..fd73ae83 100644 --- a/openapi/components/schemas/common/AedAccountInfo.yaml +++ b/openapi/components/schemas/common/AedAccountInfo.yaml @@ -1,30 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- iban -properties: - accountType: - type: string - enum: - - AED_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - iban: - type: string - description: UAE IBAN (23 characters, starting with AE) - example: AE070331234567890123456 - minLength: 23 - maxLength: 23 - pattern: ^AE[0-9]{21}$ - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: EBILAEAD - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./AedAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/AedAccountInfoBase.yaml b/openapi/components/schemas/common/AedAccountInfoBase.yaml new file mode 100644 index 00000000..d7727725 --- /dev/null +++ b/openapi/components/schemas/common/AedAccountInfoBase.yaml @@ -0,0 +1,23 @@ +type: object +required: +- accountType +- iban +properties: + accountType: + type: string + enum: + - AED_ACCOUNT + iban: + type: string + description: UAE IBAN (23 characters, starting with AE) + example: AE070331234567890123456 + minLength: 23 + maxLength: 23 + pattern: ^AE[0-9]{21}$ + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: EBILAEAD + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/BrlAccountInfo.yaml b/openapi/components/schemas/common/BrlAccountInfo.yaml index f3c2a60f..8d307bbd 100644 --- a/openapi/components/schemas/common/BrlAccountInfo.yaml +++ b/openapi/components/schemas/common/BrlAccountInfo.yaml @@ -1,38 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- pixKey -- pixKeyType -- taxId -properties: - accountType: - type: string - enum: - - BRL_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PIX - pixKey: - type: string - description: The PIX key (email, phone, CPF, CNPJ, or random) - minLength: 1 - maxLength: 77 - pixKeyType: - type: string - description: The type of PIX key - enum: - - CPF - - CNPJ - - EMAIL - - PHONE - - RANDOM - taxId: - type: string - description: The tax ID (CPF or CNPJ) - minLength: 11 - maxLength: 14 - pattern: ^[0-9]{11,14}$ +allOf: +- $ref: ./BrlAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PIX diff --git a/openapi/components/schemas/common/BrlAccountInfoBase.yaml b/openapi/components/schemas/common/BrlAccountInfoBase.yaml new file mode 100644 index 00000000..86653e1c --- /dev/null +++ b/openapi/components/schemas/common/BrlAccountInfoBase.yaml @@ -0,0 +1,31 @@ +type: object +required: +- accountType +- pixKey +- pixKeyType +- taxId +properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key (email, phone, CPF, CNPJ, or random) + minLength: 1 + maxLength: 77 + pixKeyType: + type: string + description: The type of PIX key + enum: + - CPF + - CNPJ + - EMAIL + - PHONE + - RANDOM + taxId: + type: string + description: The tax ID (CPF or CNPJ) + minLength: 11 + maxLength: 14 + pattern: ^[0-9]{11,14}$ diff --git a/openapi/components/schemas/common/BwpAccountInfo.yaml b/openapi/components/schemas/common/BwpAccountInfo.yaml index 460dd99c..400ab9de 100644 --- a/openapi/components/schemas/common/BwpAccountInfo.yaml +++ b/openapi/components/schemas/common/BwpAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - BWP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: The phone number in international format - example: '+1234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+[0-9]{6,14}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./BwpAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/BwpAccountInfoBase.yaml b/openapi/components/schemas/common/BwpAccountInfoBase.yaml new file mode 100644 index 00000000..92702fdc --- /dev/null +++ b/openapi/components/schemas/common/BwpAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - BWP_ACCOUNT + phoneNumber: + type: string + description: The phone number in international format + example: '+1234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+[0-9]{6,14}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/CadAccountInfo.yaml b/openapi/components/schemas/common/CadAccountInfo.yaml index e0380ec8..e660cbc1 100644 --- a/openapi/components/schemas/common/CadAccountInfo.yaml +++ b/openapi/components/schemas/common/CadAccountInfo.yaml @@ -1,39 +1,12 @@ -type: object -required: - - accountType +allOf: +- $ref: ./CadAccountInfoBase.yaml +- type: object + required: - paymentRails - - bankCode - - branchCode - - accountNumber -properties: - accountType: - type: string - enum: - - CAD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankCode: - type: string - description: Canadian financial institution number (3 digits) - example: '001' - minLength: 3 - maxLength: 3 - pattern: ^[0-9]{3}$ - branchCode: - type: string - description: Transit number identifying the branch (5 digits) - example: '00012' - minLength: 5 - maxLength: 5 - pattern: ^[0-9]{5}$ - accountNumber: - type: string - description: Bank account number (7-12 digits) - example: '1234567' - minLength: 7 - maxLength: 12 - pattern: ^[0-9]{7,12}$ + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/CadAccountInfoBase.yaml b/openapi/components/schemas/common/CadAccountInfoBase.yaml new file mode 100644 index 00000000..efdd5932 --- /dev/null +++ b/openapi/components/schemas/common/CadAccountInfoBase.yaml @@ -0,0 +1,32 @@ +type: object +required: + - accountType + - bankCode + - branchCode + - accountNumber +properties: + accountType: + type: string + enum: + - CAD_ACCOUNT + bankCode: + type: string + description: Canadian financial institution number (3 digits) + example: '001' + minLength: 3 + maxLength: 3 + pattern: ^[0-9]{3}$ + branchCode: + type: string + description: Transit number identifying the branch (5 digits) + example: '00012' + minLength: 5 + maxLength: 5 + pattern: ^[0-9]{5}$ + accountNumber: + type: string + description: Bank account number (7-12 digits) + example: '1234567' + minLength: 7 + maxLength: 12 + pattern: ^[0-9]{7,12}$ diff --git a/openapi/components/schemas/common/DkkAccountInfo.yaml b/openapi/components/schemas/common/DkkAccountInfo.yaml index f0117910..7cd09699 100644 --- a/openapi/components/schemas/common/DkkAccountInfo.yaml +++ b/openapi/components/schemas/common/DkkAccountInfo.yaml @@ -1,31 +1,13 @@ -type: object -required: -- accountType -- paymentRails -- iban -properties: - accountType: - type: string - enum: - - DKK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT - iban: - type: string - description: The IBAN of the bank account - example: DE89370400440532013000 - minLength: 15 - maxLength: 34 - pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: DEUTDEFF - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./DkkAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT diff --git a/openapi/components/schemas/common/DkkAccountInfoBase.yaml b/openapi/components/schemas/common/DkkAccountInfoBase.yaml new file mode 100644 index 00000000..95feb300 --- /dev/null +++ b/openapi/components/schemas/common/DkkAccountInfoBase.yaml @@ -0,0 +1,23 @@ +type: object +required: +- accountType +- iban +properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank account + example: DE89370400440532013000 + minLength: 15 + maxLength: 34 + pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: DEUTDEFF + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/EurAccountInfo.yaml b/openapi/components/schemas/common/EurAccountInfo.yaml index ea495f5a..26858d18 100644 --- a/openapi/components/schemas/common/EurAccountInfo.yaml +++ b/openapi/components/schemas/common/EurAccountInfo.yaml @@ -1,31 +1,13 @@ -type: object -required: -- accountType -- paymentRails -- iban -properties: - accountType: - type: string - enum: - - EUR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SEPA - - SEPA_INSTANT - iban: - type: string - description: The IBAN of the bank account - example: DE89370400440532013000 - minLength: 15 - maxLength: 34 - pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: DEUTDEFF - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./EurAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT diff --git a/openapi/components/schemas/common/EurAccountInfoBase.yaml b/openapi/components/schemas/common/EurAccountInfoBase.yaml new file mode 100644 index 00000000..fdaf219b --- /dev/null +++ b/openapi/components/schemas/common/EurAccountInfoBase.yaml @@ -0,0 +1,23 @@ +type: object +required: +- accountType +- iban +properties: + accountType: + type: string + enum: + - EUR_ACCOUNT + iban: + type: string + description: The IBAN of the bank account + example: DE89370400440532013000 + minLength: 15 + maxLength: 34 + pattern: ^[A-Z]{2}[0-9]{2}[A-Za-z0-9]{11,30}$ + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: DEUTDEFF + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/GbpAccountInfo.yaml b/openapi/components/schemas/common/GbpAccountInfo.yaml index d34f7803..e7c3ba48 100644 --- a/openapi/components/schemas/common/GbpAccountInfo.yaml +++ b/openapi/components/schemas/common/GbpAccountInfo.yaml @@ -1,31 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- sortCode -- accountNumber -properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - FASTER_PAYMENTS - sortCode: - type: string - description: The UK sort code - example: '123456' - minLength: 6 - maxLength: 6 - pattern: ^[0-9]{6}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - minLength: 8 - maxLength: 8 - example: '12345678' - pattern: ^[0-9]{8}$ +allOf: +- $ref: ./GbpAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS diff --git a/openapi/components/schemas/common/GbpAccountInfoBase.yaml b/openapi/components/schemas/common/GbpAccountInfoBase.yaml new file mode 100644 index 00000000..d57ec13e --- /dev/null +++ b/openapi/components/schemas/common/GbpAccountInfoBase.yaml @@ -0,0 +1,24 @@ +type: object +required: +- accountType +- sortCode +- accountNumber +properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + sortCode: + type: string + description: The UK sort code + example: '123456' + minLength: 6 + maxLength: 6 + pattern: ^[0-9]{6}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + minLength: 8 + maxLength: 8 + example: '12345678' + pattern: ^[0-9]{8}$ diff --git a/openapi/components/schemas/common/HkdAccountInfo.yaml b/openapi/components/schemas/common/HkdAccountInfo.yaml index ed477be5..d2854480 100644 --- a/openapi/components/schemas/common/HkdAccountInfo.yaml +++ b/openapi/components/schemas/common/HkdAccountInfo.yaml @@ -1,36 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -properties: - accountType: - type: string - enum: - - HKD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 - accountNumber: - type: string - description: Hong Kong bank account number - minLength: 1 - maxLength: 34 - example: '123456789012' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: HSBCHKHHHKH - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./HkdAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/HkdAccountInfoBase.yaml b/openapi/components/schemas/common/HkdAccountInfoBase.yaml new file mode 100644 index 00000000..619df6a2 --- /dev/null +++ b/openapi/components/schemas/common/HkdAccountInfoBase.yaml @@ -0,0 +1,29 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 + accountNumber: + type: string + description: Hong Kong bank account number + minLength: 1 + maxLength: 34 + example: '123456789012' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: HSBCHKHHHKH + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/IdrAccountInfo.yaml b/openapi/components/schemas/common/IdrAccountInfo.yaml index 0e54e8ef..20243d4b 100644 --- a/openapi/components/schemas/common/IdrAccountInfo.yaml +++ b/openapi/components/schemas/common/IdrAccountInfo.yaml @@ -1,45 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -- phoneNumber -properties: - accountType: - type: string - enum: - - IDR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 - example: Bank Central Asia - accountNumber: - type: string - description: Indonesian bank account number - minLength: 1 - maxLength: 34 - example: '1234567890' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: CENAIDJA - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ - phoneNumber: - type: string - description: Indonesian phone number for e-wallet payments - example: '+6281234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+62[0-9]{9,12}$ +allOf: +- $ref: ./IdrAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/IdrAccountInfoBase.yaml b/openapi/components/schemas/common/IdrAccountInfoBase.yaml new file mode 100644 index 00000000..02fdfa32 --- /dev/null +++ b/openapi/components/schemas/common/IdrAccountInfoBase.yaml @@ -0,0 +1,38 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +- phoneNumber +properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 + example: Bank Central Asia + accountNumber: + type: string + description: Indonesian bank account number + minLength: 1 + maxLength: 34 + example: '1234567890' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: CENAIDJA + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ + phoneNumber: + type: string + description: Indonesian phone number for e-wallet payments + example: '+6281234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+62[0-9]{9,12}$ diff --git a/openapi/components/schemas/common/InrAccountInfo.yaml b/openapi/components/schemas/common/InrAccountInfo.yaml index 0d056120..0ea13547 100644 --- a/openapi/components/schemas/common/InrAccountInfo.yaml +++ b/openapi/components/schemas/common/InrAccountInfo.yaml @@ -1,23 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- vpa -properties: - accountType: - type: string - enum: - - INR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - UPI - vpa: - type: string - description: The UPI Virtual Payment Address - example: user@upi - minLength: 3 - maxLength: 255 - pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$ +allOf: +- $ref: ./InrAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - UPI diff --git a/openapi/components/schemas/common/InrAccountInfoBase.yaml b/openapi/components/schemas/common/InrAccountInfoBase.yaml new file mode 100644 index 00000000..63143fcb --- /dev/null +++ b/openapi/components/schemas/common/InrAccountInfoBase.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- vpa +properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The UPI Virtual Payment Address + example: user@upi + minLength: 3 + maxLength: 255 + pattern: ^[a-zA-Z0-9.\-_]+@[a-zA-Z0-9]+$ diff --git a/openapi/components/schemas/common/KesAccountInfo.yaml b/openapi/components/schemas/common/KesAccountInfo.yaml index c7c15980..a80ac6c7 100644 --- a/openapi/components/schemas/common/KesAccountInfo.yaml +++ b/openapi/components/schemas/common/KesAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - KES_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: Kenyan mobile money phone number - example: '+254712345678' - minLength: 7 - maxLength: 15 - pattern: ^\+254[0-9]{9}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./KesAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/KesAccountInfoBase.yaml b/openapi/components/schemas/common/KesAccountInfoBase.yaml new file mode 100644 index 00000000..91210976 --- /dev/null +++ b/openapi/components/schemas/common/KesAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - KES_ACCOUNT + phoneNumber: + type: string + description: Kenyan mobile money phone number + example: '+254712345678' + minLength: 7 + maxLength: 15 + pattern: ^\+254[0-9]{9}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/MwkAccountInfo.yaml b/openapi/components/schemas/common/MwkAccountInfo.yaml index 67509ee9..9a879f7d 100644 --- a/openapi/components/schemas/common/MwkAccountInfo.yaml +++ b/openapi/components/schemas/common/MwkAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - MWK_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: The phone number in international format - example: '+1234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+[0-9]{6,14}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./MwkAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/MwkAccountInfoBase.yaml b/openapi/components/schemas/common/MwkAccountInfoBase.yaml new file mode 100644 index 00000000..2e86815a --- /dev/null +++ b/openapi/components/schemas/common/MwkAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - MWK_ACCOUNT + phoneNumber: + type: string + description: The phone number in international format + example: '+1234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+[0-9]{6,14}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/MxnAccountInfo.yaml b/openapi/components/schemas/common/MxnAccountInfo.yaml index bd86b030..8259c14b 100644 --- a/openapi/components/schemas/common/MxnAccountInfo.yaml +++ b/openapi/components/schemas/common/MxnAccountInfo.yaml @@ -1,23 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- clabeNumber -properties: - accountType: - type: string - enum: - - MXN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - SPEI - clabeNumber: - type: string - description: The CLABE number of the bank - example: '123456789012345678' - minLength: 18 - maxLength: 18 - pattern: ^[0-9]{18}$ +allOf: +- $ref: ./MxnAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - SPEI diff --git a/openapi/components/schemas/common/MxnAccountInfoBase.yaml b/openapi/components/schemas/common/MxnAccountInfoBase.yaml new file mode 100644 index 00000000..d5444dea --- /dev/null +++ b/openapi/components/schemas/common/MxnAccountInfoBase.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- clabeNumber +properties: + accountType: + type: string + enum: + - MXN_ACCOUNT + clabeNumber: + type: string + description: The CLABE number of the bank + example: '123456789012345678' + minLength: 18 + maxLength: 18 + pattern: ^[0-9]{18}$ diff --git a/openapi/components/schemas/common/MyrAccountInfo.yaml b/openapi/components/schemas/common/MyrAccountInfo.yaml index a91c2f5e..ec5ab5a4 100644 --- a/openapi/components/schemas/common/MyrAccountInfo.yaml +++ b/openapi/components/schemas/common/MyrAccountInfo.yaml @@ -1,36 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -properties: - accountType: - type: string - enum: - - MYR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 - accountNumber: - type: string - description: Malaysian bank account number - minLength: 1 - maxLength: 34 - example: '1234567890' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: MABORUMMYYY - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./MyrAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/MyrAccountInfoBase.yaml b/openapi/components/schemas/common/MyrAccountInfoBase.yaml new file mode 100644 index 00000000..6a8b8536 --- /dev/null +++ b/openapi/components/schemas/common/MyrAccountInfoBase.yaml @@ -0,0 +1,29 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 + accountNumber: + type: string + description: Malaysian bank account number + minLength: 1 + maxLength: 34 + example: '1234567890' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: MABORUMMYYY + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/NgnAccountInfo.yaml b/openapi/components/schemas/common/NgnAccountInfo.yaml index fe0565ab..6ef441b2 100644 --- a/openapi/components/schemas/common/NgnAccountInfo.yaml +++ b/openapi/components/schemas/common/NgnAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- accountNumber -- bankName -properties: - accountType: - type: string - enum: - - NGN_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - accountNumber: - type: string - description: Nigerian bank account number - minLength: 10 - maxLength: 10 - example: '0123456789' - pattern: ^[0-9]{10}$ - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./NgnAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/NgnAccountInfoBase.yaml b/openapi/components/schemas/common/NgnAccountInfoBase.yaml new file mode 100644 index 00000000..febb24ca --- /dev/null +++ b/openapi/components/schemas/common/NgnAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- accountNumber +- bankName +properties: + accountType: + type: string + enum: + - NGN_ACCOUNT + accountNumber: + type: string + description: Nigerian bank account number + minLength: 10 + maxLength: 10 + example: '0123456789' + pattern: ^[0-9]{10}$ + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/PhpAccountInfo.yaml b/openapi/components/schemas/common/PhpAccountInfo.yaml index 5d433a2f..bc3422e1 100644 --- a/openapi/components/schemas/common/PhpAccountInfo.yaml +++ b/openapi/components/schemas/common/PhpAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -properties: - accountType: - type: string - enum: - - PHP_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: Name of the beneficiary's bank - minLength: 1 - maxLength: 255 - example: BDO Unibank - accountNumber: - type: string - description: Bank account number - minLength: 1 - maxLength: 34 - example: '001234567890' +allOf: +- $ref: ./PhpAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/PhpAccountInfoBase.yaml b/openapi/components/schemas/common/PhpAccountInfoBase.yaml new file mode 100644 index 00000000..d2ec6e9a --- /dev/null +++ b/openapi/components/schemas/common/PhpAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- bankName +- accountNumber +properties: + accountType: + type: string + enum: + - PHP_ACCOUNT + bankName: + type: string + description: Name of the beneficiary's bank + minLength: 1 + maxLength: 255 + example: BDO Unibank + accountNumber: + type: string + description: Bank account number + minLength: 1 + maxLength: 34 + example: '001234567890' diff --git a/openapi/components/schemas/common/RwfAccountInfo.yaml b/openapi/components/schemas/common/RwfAccountInfo.yaml index 2b86420b..74637bf1 100644 --- a/openapi/components/schemas/common/RwfAccountInfo.yaml +++ b/openapi/components/schemas/common/RwfAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - RWF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: Rwandan mobile money phone number - example: '+250781234567' - minLength: 7 - maxLength: 15 - pattern: ^\+250[0-9]{9}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./RwfAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/RwfAccountInfoBase.yaml b/openapi/components/schemas/common/RwfAccountInfoBase.yaml new file mode 100644 index 00000000..f647d6b0 --- /dev/null +++ b/openapi/components/schemas/common/RwfAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - RWF_ACCOUNT + phoneNumber: + type: string + description: Rwandan mobile money phone number + example: '+250781234567' + minLength: 7 + maxLength: 15 + pattern: ^\+250[0-9]{9}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/SgdAccountInfo.yaml b/openapi/components/schemas/common/SgdAccountInfo.yaml index 423e544c..76e6c192 100644 --- a/openapi/components/schemas/common/SgdAccountInfo.yaml +++ b/openapi/components/schemas/common/SgdAccountInfo.yaml @@ -1,39 +1,14 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -properties: - accountType: - type: string - enum: - - SGD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - PAYNOW - - FAST - - BANK_TRANSFER - bankName: - type: string - description: Name of the beneficiary's bank - minLength: 1 - maxLength: 255 - example: DBS Bank Ltd - accountNumber: - type: string - description: Bank account number - minLength: 1 - maxLength: 34 - example: '0123456789' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: DBSSSGSG - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./SgdAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/SgdAccountInfoBase.yaml b/openapi/components/schemas/common/SgdAccountInfoBase.yaml new file mode 100644 index 00000000..159b8a7d --- /dev/null +++ b/openapi/components/schemas/common/SgdAccountInfoBase.yaml @@ -0,0 +1,30 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +properties: + accountType: + type: string + enum: + - SGD_ACCOUNT + bankName: + type: string + description: Name of the beneficiary's bank + minLength: 1 + maxLength: 255 + example: DBS Bank Ltd + accountNumber: + type: string + description: Bank account number + minLength: 1 + maxLength: 34 + example: '0123456789' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: DBSSSGSG + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/ThbAccountInfo.yaml b/openapi/components/schemas/common/ThbAccountInfo.yaml index d75b0d61..c75916cb 100644 --- a/openapi/components/schemas/common/ThbAccountInfo.yaml +++ b/openapi/components/schemas/common/ThbAccountInfo.yaml @@ -1,36 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -properties: - accountType: - type: string - enum: - - THB_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 - accountNumber: - type: string - description: Thai bank account number - minLength: 1 - maxLength: 34 - example: '1234567890' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: BKKBTHBK - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./ThbAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/ThbAccountInfoBase.yaml b/openapi/components/schemas/common/ThbAccountInfoBase.yaml new file mode 100644 index 00000000..7e5762fe --- /dev/null +++ b/openapi/components/schemas/common/ThbAccountInfoBase.yaml @@ -0,0 +1,29 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 + accountNumber: + type: string + description: Thai bank account number + minLength: 1 + maxLength: 34 + example: '1234567890' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: BKKBTHBK + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/TzsAccountInfo.yaml b/openapi/components/schemas/common/TzsAccountInfo.yaml index d02b75e4..07f6e1fb 100644 --- a/openapi/components/schemas/common/TzsAccountInfo.yaml +++ b/openapi/components/schemas/common/TzsAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - TZS_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: Tanzanian mobile money phone number - example: '+255712345678' - minLength: 7 - maxLength: 15 - pattern: ^\+255[0-9]{9}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./TzsAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/TzsAccountInfoBase.yaml b/openapi/components/schemas/common/TzsAccountInfoBase.yaml new file mode 100644 index 00000000..e85e5531 --- /dev/null +++ b/openapi/components/schemas/common/TzsAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - TZS_ACCOUNT + phoneNumber: + type: string + description: Tanzanian mobile money phone number + example: '+255712345678' + minLength: 7 + maxLength: 15 + pattern: ^\+255[0-9]{9}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/UgxAccountInfo.yaml b/openapi/components/schemas/common/UgxAccountInfo.yaml index 9d022398..c11d0310 100644 --- a/openapi/components/schemas/common/UgxAccountInfo.yaml +++ b/openapi/components/schemas/common/UgxAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - UGX_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: The phone number in international format - example: '+1234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+[0-9]{6,14}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./UgxAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/UgxAccountInfoBase.yaml b/openapi/components/schemas/common/UgxAccountInfoBase.yaml new file mode 100644 index 00000000..e49fa579 --- /dev/null +++ b/openapi/components/schemas/common/UgxAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - UGX_ACCOUNT + phoneNumber: + type: string + description: The phone number in international format + example: '+1234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+[0-9]{6,14}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/UsdAccountInfo.yaml b/openapi/components/schemas/common/UsdAccountInfo.yaml index a32428c0..7373a4ee 100644 --- a/openapi/components/schemas/common/UsdAccountInfo.yaml +++ b/openapi/components/schemas/common/UsdAccountInfo.yaml @@ -1,32 +1,15 @@ -type: object -required: -- accountType -- paymentRails -- accountNumber -- routingNumber -properties: - accountType: - type: string - enum: - - USD_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - ACH - - WIRE - - RTP - - FEDNOW - accountNumber: - type: string - description: The account number of the bank - minLength: 1 - maxLength: 34 - routingNumber: - type: string - description: The ABA routing number - example: '021000021' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]{9}$ +allOf: +- $ref: ./UsdAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW diff --git a/openapi/components/schemas/common/UsdAccountInfoBase.yaml b/openapi/components/schemas/common/UsdAccountInfoBase.yaml new file mode 100644 index 00000000..e849d396 --- /dev/null +++ b/openapi/components/schemas/common/UsdAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- accountNumber +- routingNumber +properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + minLength: 1 + maxLength: 34 + routingNumber: + type: string + description: The ABA routing number + example: '021000021' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]{9}$ diff --git a/openapi/components/schemas/common/VndAccountInfo.yaml b/openapi/components/schemas/common/VndAccountInfo.yaml index d987aaeb..b0fdee25 100644 --- a/openapi/components/schemas/common/VndAccountInfo.yaml +++ b/openapi/components/schemas/common/VndAccountInfo.yaml @@ -1,36 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- bankName -- accountNumber -- swiftCode -properties: - accountType: - type: string - enum: - - VND_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 - accountNumber: - type: string - description: Vietnamese bank account number - minLength: 1 - maxLength: 34 - example: '1234567890' - swiftCode: - type: string - description: The SWIFT/BIC code of the bank - example: BFTVVNVX - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ +allOf: +- $ref: ./VndAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/VndAccountInfoBase.yaml b/openapi/components/schemas/common/VndAccountInfoBase.yaml new file mode 100644 index 00000000..6b49faeb --- /dev/null +++ b/openapi/components/schemas/common/VndAccountInfoBase.yaml @@ -0,0 +1,29 @@ +type: object +required: +- accountType +- bankName +- accountNumber +- swiftCode +properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 + accountNumber: + type: string + description: Vietnamese bank account number + minLength: 1 + maxLength: 34 + example: '1234567890' + swiftCode: + type: string + description: The SWIFT/BIC code of the bank + example: BFTVVNVX + minLength: 8 + maxLength: 11 + pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ diff --git a/openapi/components/schemas/common/XafAccountInfo.yaml b/openapi/components/schemas/common/XafAccountInfo.yaml index ed3354e4..b9e5337c 100644 --- a/openapi/components/schemas/common/XafAccountInfo.yaml +++ b/openapi/components/schemas/common/XafAccountInfo.yaml @@ -1,39 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -- region -properties: - accountType: - type: string - enum: - - XAF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: The phone number in international format - example: '+1234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+[0-9]{6,14}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 - region: - type: string - description: Country code within the Central African CFA franc zone - minLength: 2 - maxLength: 2 - pattern: ^[A-Z]{2}$ - enum: - - CM - - CG +allOf: +- $ref: ./XafAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/XafAccountInfoBase.yaml b/openapi/components/schemas/common/XafAccountInfoBase.yaml new file mode 100644 index 00000000..32e2c99c --- /dev/null +++ b/openapi/components/schemas/common/XafAccountInfoBase.yaml @@ -0,0 +1,32 @@ +type: object +required: +- accountType +- phoneNumber +- provider +- region +properties: + accountType: + type: string + enum: + - XAF_ACCOUNT + phoneNumber: + type: string + description: The phone number in international format + example: '+1234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+[0-9]{6,14}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 + region: + type: string + description: Country code within the Central African CFA franc zone + minLength: 2 + maxLength: 2 + pattern: ^[A-Z]{2}$ + enum: + - CM + - CG diff --git a/openapi/components/schemas/common/XofAccountInfo.yaml b/openapi/components/schemas/common/XofAccountInfo.yaml index dc1f3519..218e4e69 100644 --- a/openapi/components/schemas/common/XofAccountInfo.yaml +++ b/openapi/components/schemas/common/XofAccountInfo.yaml @@ -1,41 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -- region -properties: - accountType: - type: string - enum: - - XOF_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: The phone number in international format - example: '+1234567890' - minLength: 7 - maxLength: 15 - pattern: ^\+[0-9]{6,14}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 - region: - type: string - description: Country code within the West African CFA franc zone - minLength: 2 - maxLength: 2 - pattern: ^[A-Z]{2}$ - enum: - - BJ - - CI - - SN - - TG +allOf: +- $ref: ./XofAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/XofAccountInfoBase.yaml b/openapi/components/schemas/common/XofAccountInfoBase.yaml new file mode 100644 index 00000000..bce67946 --- /dev/null +++ b/openapi/components/schemas/common/XofAccountInfoBase.yaml @@ -0,0 +1,34 @@ +type: object +required: +- accountType +- phoneNumber +- provider +- region +properties: + accountType: + type: string + enum: + - XOF_ACCOUNT + phoneNumber: + type: string + description: The phone number in international format + example: '+1234567890' + minLength: 7 + maxLength: 15 + pattern: ^\+[0-9]{6,14}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 + region: + type: string + description: Country code within the West African CFA franc zone + minLength: 2 + maxLength: 2 + pattern: ^[A-Z]{2}$ + enum: + - BJ + - CI + - SN + - TG diff --git a/openapi/components/schemas/common/ZarAccountInfo.yaml b/openapi/components/schemas/common/ZarAccountInfo.yaml index 62a6fff0..556e7401 100644 --- a/openapi/components/schemas/common/ZarAccountInfo.yaml +++ b/openapi/components/schemas/common/ZarAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- accountNumber -- bankName -properties: - accountType: - type: string - enum: - - ZAR_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - BANK_TRANSFER - accountNumber: - type: string - description: South African bank account number - minLength: 9 - maxLength: 13 - example: '1234567890' - pattern: ^[0-9]{9,13}$ - bankName: - type: string - description: The name of the bank - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./ZarAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER diff --git a/openapi/components/schemas/common/ZarAccountInfoBase.yaml b/openapi/components/schemas/common/ZarAccountInfoBase.yaml new file mode 100644 index 00000000..8b38d8c4 --- /dev/null +++ b/openapi/components/schemas/common/ZarAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- accountNumber +- bankName +properties: + accountType: + type: string + enum: + - ZAR_ACCOUNT + accountNumber: + type: string + description: South African bank account number + minLength: 9 + maxLength: 13 + example: '1234567890' + pattern: ^[0-9]{9,13}$ + bankName: + type: string + description: The name of the bank + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/common/ZmwAccountInfo.yaml b/openapi/components/schemas/common/ZmwAccountInfo.yaml index 446d3d34..3cce7d88 100644 --- a/openapi/components/schemas/common/ZmwAccountInfo.yaml +++ b/openapi/components/schemas/common/ZmwAccountInfo.yaml @@ -1,29 +1,12 @@ -type: object -required: -- accountType -- paymentRails -- phoneNumber -- provider -properties: - accountType: - type: string - enum: - - ZMW_ACCOUNT - paymentRails: - type: array - items: - type: string - enum: - - MOBILE_MONEY - phoneNumber: - type: string - description: Zambian mobile money phone number - example: '+260971234567' - minLength: 7 - maxLength: 15 - pattern: ^\+260[0-9]{9}$ - provider: - type: string - description: The mobile money provider name - minLength: 1 - maxLength: 255 +allOf: +- $ref: ./ZmwAccountInfoBase.yaml +- type: object + required: + - paymentRails + properties: + paymentRails: + type: array + items: + type: string + enum: + - MOBILE_MONEY diff --git a/openapi/components/schemas/common/ZmwAccountInfoBase.yaml b/openapi/components/schemas/common/ZmwAccountInfoBase.yaml new file mode 100644 index 00000000..ea834759 --- /dev/null +++ b/openapi/components/schemas/common/ZmwAccountInfoBase.yaml @@ -0,0 +1,22 @@ +type: object +required: +- accountType +- phoneNumber +- provider +properties: + accountType: + type: string + enum: + - ZMW_ACCOUNT + phoneNumber: + type: string + description: Zambian mobile money phone number + example: '+260971234567' + minLength: 7 + maxLength: 15 + pattern: ^\+260[0-9]{9}$ + provider: + type: string + description: The mobile money provider name + minLength: 1 + maxLength: 255 diff --git a/openapi/components/schemas/external_accounts/AedExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/AedExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..f569b07d --- /dev/null +++ b/openapi/components/schemas/external_accounts/AedExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: AED Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/AedAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/AedBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/AedBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/BrlExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/BrlExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..8d810362 --- /dev/null +++ b/openapi/components/schemas/external_accounts/BrlExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: BRL Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/BrlAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/BrlBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/BrlBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/BwpExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/BwpExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..e92b9d92 --- /dev/null +++ b/openapi/components/schemas/external_accounts/BwpExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: BWP Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/BwpAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/BwpBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/BwpBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/CadExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/CadExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..9e70071c --- /dev/null +++ b/openapi/components/schemas/external_accounts/CadExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: CAD Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/CadAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/CadBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/CadBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/DkkExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/DkkExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..999abfa5 --- /dev/null +++ b/openapi/components/schemas/external_accounts/DkkExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: DKK Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/DkkAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/DkkBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/DkkBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/EurExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/EurExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..f731a290 --- /dev/null +++ b/openapi/components/schemas/external_accounts/EurExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: EUR Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/EurAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/EurBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/EurBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountCreateInfoOneOf.yaml b/openapi/components/schemas/external_accounts/ExternalAccountCreateInfoOneOf.yaml new file mode 100644 index 00000000..8afe0987 --- /dev/null +++ b/openapi/components/schemas/external_accounts/ExternalAccountCreateInfoOneOf.yaml @@ -0,0 +1,72 @@ +oneOf: +- $ref: ./AedExternalAccountCreateInfo.yaml +- $ref: ./BrlExternalAccountCreateInfo.yaml +- $ref: ./BwpExternalAccountCreateInfo.yaml +- $ref: ./CadExternalAccountCreateInfo.yaml +- $ref: ./DkkExternalAccountCreateInfo.yaml +- $ref: ./EurExternalAccountCreateInfo.yaml +- $ref: ./GbpExternalAccountCreateInfo.yaml +- $ref: ./HkdExternalAccountCreateInfo.yaml +- $ref: ./IdrExternalAccountCreateInfo.yaml +- $ref: ./InrExternalAccountCreateInfo.yaml +- $ref: ./KesExternalAccountCreateInfo.yaml +- $ref: ./MwkExternalAccountCreateInfo.yaml +- $ref: ./MxnExternalAccountCreateInfo.yaml +- $ref: ./MyrExternalAccountCreateInfo.yaml +- $ref: ./NgnExternalAccountCreateInfo.yaml +- $ref: ./PhpExternalAccountCreateInfo.yaml +- $ref: ./RwfExternalAccountCreateInfo.yaml +- $ref: ./SgdExternalAccountCreateInfo.yaml +- $ref: ./ThbExternalAccountCreateInfo.yaml +- $ref: ./TzsExternalAccountCreateInfo.yaml +- $ref: ./UgxExternalAccountCreateInfo.yaml +- $ref: ./UsdExternalAccountCreateInfo.yaml +- $ref: ./VndExternalAccountCreateInfo.yaml +- $ref: ./XafExternalAccountCreateInfo.yaml +- $ref: ./XofExternalAccountCreateInfo.yaml +- $ref: ./ZarExternalAccountCreateInfo.yaml +- $ref: ./ZmwExternalAccountCreateInfo.yaml +- $ref: ./SparkWalletExternalAccountInfo.yaml +- $ref: ./LightningExternalAccountInfo.yaml +- $ref: ./SolanaWalletExternalAccountInfo.yaml +- $ref: ./TronWalletExternalAccountInfo.yaml +- $ref: ./PolygonWalletExternalAccountInfo.yaml +- $ref: ./BaseWalletExternalAccountInfo.yaml +- $ref: ./EthereumWalletExternalAccountInfo.yaml +discriminator: + propertyName: accountType + mapping: + AED_ACCOUNT: ./AedExternalAccountCreateInfo.yaml + BRL_ACCOUNT: ./BrlExternalAccountCreateInfo.yaml + BWP_ACCOUNT: ./BwpExternalAccountCreateInfo.yaml + CAD_ACCOUNT: ./CadExternalAccountCreateInfo.yaml + DKK_ACCOUNT: ./DkkExternalAccountCreateInfo.yaml + EUR_ACCOUNT: ./EurExternalAccountCreateInfo.yaml + GBP_ACCOUNT: ./GbpExternalAccountCreateInfo.yaml + HKD_ACCOUNT: ./HkdExternalAccountCreateInfo.yaml + IDR_ACCOUNT: ./IdrExternalAccountCreateInfo.yaml + INR_ACCOUNT: ./InrExternalAccountCreateInfo.yaml + KES_ACCOUNT: ./KesExternalAccountCreateInfo.yaml + MWK_ACCOUNT: ./MwkExternalAccountCreateInfo.yaml + MXN_ACCOUNT: ./MxnExternalAccountCreateInfo.yaml + MYR_ACCOUNT: ./MyrExternalAccountCreateInfo.yaml + NGN_ACCOUNT: ./NgnExternalAccountCreateInfo.yaml + PHP_ACCOUNT: ./PhpExternalAccountCreateInfo.yaml + RWF_ACCOUNT: ./RwfExternalAccountCreateInfo.yaml + SGD_ACCOUNT: ./SgdExternalAccountCreateInfo.yaml + THB_ACCOUNT: ./ThbExternalAccountCreateInfo.yaml + TZS_ACCOUNT: ./TzsExternalAccountCreateInfo.yaml + UGX_ACCOUNT: ./UgxExternalAccountCreateInfo.yaml + USD_ACCOUNT: ./UsdExternalAccountCreateInfo.yaml + VND_ACCOUNT: ./VndExternalAccountCreateInfo.yaml + XAF_ACCOUNT: ./XafExternalAccountCreateInfo.yaml + XOF_ACCOUNT: ./XofExternalAccountCreateInfo.yaml + ZAR_ACCOUNT: ./ZarExternalAccountCreateInfo.yaml + ZMW_ACCOUNT: ./ZmwExternalAccountCreateInfo.yaml + SPARK_WALLET: ./SparkWalletExternalAccountInfo.yaml + LIGHTNING: ./LightningExternalAccountInfo.yaml + SOLANA_WALLET: ./SolanaWalletExternalAccountInfo.yaml + TRON_WALLET: ./TronWalletExternalAccountInfo.yaml + POLYGON_WALLET: ./PolygonWalletExternalAccountInfo.yaml + BASE_WALLET: ./BaseWalletExternalAccountInfo.yaml + ETHEREUM_WALLET: ./EthereumWalletExternalAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml b/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml index 7dcfafbd..8afb3211 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountCreateRequest.yaml @@ -37,4 +37,4 @@ allOf: ETHEREUM_MAINNET, POLYGON_MAINNET, TRON_MAINNET. example: SOLANA_MAINNET accountInfo: - $ref: ./ExternalAccountInfoOneOf.yaml + $ref: ./ExternalAccountCreateInfoOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/GbpExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/GbpExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..b619dc32 --- /dev/null +++ b/openapi/components/schemas/external_accounts/GbpExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: GBP Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/GbpAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/GbpBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/GbpBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/HkdExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/HkdExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..9ff43ba6 --- /dev/null +++ b/openapi/components/schemas/external_accounts/HkdExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: HKD Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/HkdAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/HkdBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/HkdBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/IdrExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/IdrExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..e2c7d8b6 --- /dev/null +++ b/openapi/components/schemas/external_accounts/IdrExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: IDR Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/IdrAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/IdrBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/IdrBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/InrExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/InrExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..e536b6d6 --- /dev/null +++ b/openapi/components/schemas/external_accounts/InrExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: INR Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/InrAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/InrBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/InrBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/KesExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/KesExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..e8692420 --- /dev/null +++ b/openapi/components/schemas/external_accounts/KesExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: KES Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/KesAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/KesBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/KesBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MwkExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/MwkExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..bf4d9ec6 --- /dev/null +++ b/openapi/components/schemas/external_accounts/MwkExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: MWK Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/MwkAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/MwkBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/MwkBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MxnExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/MxnExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..74e71fe5 --- /dev/null +++ b/openapi/components/schemas/external_accounts/MxnExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: MXN Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/MxnAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/MxnBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/MxnBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MyrExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/MyrExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..80bbbec0 --- /dev/null +++ b/openapi/components/schemas/external_accounts/MyrExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: MYR Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/MyrAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/MyrBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/MyrBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/NgnExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/NgnExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..7cf722e0 --- /dev/null +++ b/openapi/components/schemas/external_accounts/NgnExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: NGN Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/NgnAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/NgnBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/NgnBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/PhpExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/PhpExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..f23f3567 --- /dev/null +++ b/openapi/components/schemas/external_accounts/PhpExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: PHP Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/PhpAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/PhpBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/PhpBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml b/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml index 01db6602..27e26f51 100644 --- a/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml +++ b/openapi/components/schemas/external_accounts/PlatformExternalAccountCreateRequest.yaml @@ -12,4 +12,4 @@ properties: description: Your platform's identifier for the account in your system. This can be used to reference the account by your own identifier. example: ext_acc_123456 accountInfo: - $ref: ./ExternalAccountInfoOneOf.yaml + $ref: ./ExternalAccountCreateInfoOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/RwfExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/RwfExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..fe8b81a1 --- /dev/null +++ b/openapi/components/schemas/external_accounts/RwfExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: RWF Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/RwfAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/RwfBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/RwfBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/SgdExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/SgdExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..e0eddea0 --- /dev/null +++ b/openapi/components/schemas/external_accounts/SgdExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: SGD Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/SgdAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/SgdBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/SgdBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ThbExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/ThbExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..9f210d29 --- /dev/null +++ b/openapi/components/schemas/external_accounts/ThbExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: THB Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/ThbAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/ThbBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/ThbBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/TzsExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/TzsExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..831f21c8 --- /dev/null +++ b/openapi/components/schemas/external_accounts/TzsExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: TZS Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/TzsAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/TzsBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/TzsBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/UgxExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/UgxExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..2c76012a --- /dev/null +++ b/openapi/components/schemas/external_accounts/UgxExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: UGX Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/UgxAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/UgxBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/UgxBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/UsdExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/UsdExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..483baf77 --- /dev/null +++ b/openapi/components/schemas/external_accounts/UsdExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: USD Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/UsdAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/UsdBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/UsdBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/VndExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/VndExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..ef529585 --- /dev/null +++ b/openapi/components/schemas/external_accounts/VndExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: VND Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/VndAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/VndBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/VndBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/XafExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/XafExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..a7203a26 --- /dev/null +++ b/openapi/components/schemas/external_accounts/XafExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: XAF Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/XafAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/XafBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/XafBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/XofExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/XofExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..966c9dc7 --- /dev/null +++ b/openapi/components/schemas/external_accounts/XofExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: XOF Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/XofAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/XofBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/XofBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ZarExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/ZarExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..14b9956f --- /dev/null +++ b/openapi/components/schemas/external_accounts/ZarExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: ZAR Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/ZarAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/ZarBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/ZarBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ZmwExternalAccountCreateInfo.yaml b/openapi/components/schemas/external_accounts/ZmwExternalAccountCreateInfo.yaml new file mode 100644 index 00000000..c6eb1c89 --- /dev/null +++ b/openapi/components/schemas/external_accounts/ZmwExternalAccountCreateInfo.yaml @@ -0,0 +1,19 @@ +title: ZMW Account +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/ZmwAccountInfoBase.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/ZmwBeneficiary.yaml + - title: Business Beneficiary + $ref: ../common/BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/ZmwBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/paths/customers/customers_external_accounts.yaml b/openapi/paths/customers/customers_external_accounts.yaml index e7330774..4a60ff16 100644 --- a/openapi/paths/customers/customers_external_accounts.yaml +++ b/openapi/paths/customers/customers_external_accounts.yaml @@ -110,8 +110,6 @@ post: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: "12345678901" routingNumber: "123456789" accountCategory: CHECKING diff --git a/openapi/paths/platform/platform_external_accounts.yaml b/openapi/paths/platform/platform_external_accounts.yaml index 8ae735b2..42abd3cf 100644 --- a/openapi/paths/platform/platform_external_accounts.yaml +++ b/openapi/paths/platform/platform_external_accounts.yaml @@ -72,8 +72,6 @@ post: currency: USD accountInfo: accountType: USD_ACCOUNT - paymentRails: - - ACH accountNumber: "12345678901" routingNumber: "123456789" accountCategory: CHECKING