From 5bf549d995f69bd1cf15d85e26fdf3197db17a7f Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Tue, 17 Feb 2026 10:23:45 -0800 Subject: [PATCH 1/8] updates Co-authored-by: Cursor --- mintlify/openapi.yaml | 1474 ++++++++++++----- openapi.yaml | 1474 ++++++++++++----- .../schemas/common/BrlAccountInfo.yaml | 20 + .../schemas/common/BrlBeneficiary.yaml | 32 + .../schemas/common/DkkAccountInfo.yaml | 15 + .../schemas/common/DkkBeneficiary.yaml | 32 + .../schemas/common/GbpAccountInfo.yaml | 8 +- .../schemas/common/GbpBeneficiary.yaml | 32 + .../schemas/common/HkdAccountInfo.yaml | 16 + .../schemas/common/HkdBeneficiary.yaml | 32 + .../schemas/common/IdrAccountInfo.yaml | 16 + .../schemas/common/IdrBeneficiary.yaml | 32 + .../schemas/common/InrAccountInfo.yaml | 12 + .../schemas/common/InrBeneficiary.yaml | 32 + .../schemas/common/MxnAccountInfo.yaml | 16 + .../schemas/common/MxnBeneficiary.yaml | 32 + .../schemas/common/MyrAccountInfo.yaml | 16 + .../schemas/common/MyrBeneficiary.yaml | 32 + .../schemas/common/PhpAccountInfo.yaml | 8 +- .../schemas/common/PhpBeneficiary.yaml | 32 + .../schemas/common/SgdAccountInfo.yaml | 10 +- .../schemas/common/SgdBeneficiary.yaml | 32 + .../schemas/common/ThbAccountInfo.yaml | 16 + .../schemas/common/ThbBeneficiary.yaml | 32 + .../schemas/common/UsdAccountInfo.yaml | 16 + .../schemas/common/UsdBeneficiary.yaml | 34 + .../schemas/common/VndAccountInfo.yaml | 16 + .../schemas/common/VndBeneficiary.yaml | 32 + .../BaseExternalAccountInfo.yaml | 23 +- .../BrlExternalAccountInfo.yaml | 18 + .../CadAccountExternalAccountInfo.yaml | 9 - .../ClabeAccountExternalAccountInfo.yaml | 9 - .../DkkExternalAccountInfo.yaml | 18 + .../ExternalAccountInfoOneOf.yaml | 93 +- .../ExternalAccountType.yaml | 19 +- .../GbpAccountExternalAccountInfo.yaml | 9 - .../GbpExternalAccountInfo.yaml | 18 + .../HkdExternalAccountInfo.yaml | 18 + .../IbanAccountExternalAccountInfo.yaml | 9 - .../IdrExternalAccountInfo.yaml | 18 + .../InrExternalAccountInfo.yaml | 18 + .../MxnExternalAccountInfo.yaml | 18 + .../MyrExternalAccountInfo.yaml | 18 + .../NgnAccountExternalAccountInfo.yaml | 27 - .../PhpAccountExternalAccountInfo.yaml | 9 - .../PhpExternalAccountInfo.yaml | 18 + .../PixAccountExternalAccountInfo.yaml | 9 - .../SgdAccountExternalAccountInfo.yaml | 9 - .../SgdExternalAccountInfo.yaml | 18 + .../ThbExternalAccountInfo.yaml | 18 + .../UpiAccountExternalAccountInfo.yaml | 9 - .../UsAccountExternalAccountInfo.yaml | 9 - .../UsdExternalAccountInfo.yaml | 18 + .../VndExternalAccountInfo.yaml | 18 + 54 files changed, 2943 insertions(+), 1085 deletions(-) create mode 100644 openapi/components/schemas/common/BrlAccountInfo.yaml create mode 100644 openapi/components/schemas/common/BrlBeneficiary.yaml create mode 100644 openapi/components/schemas/common/DkkAccountInfo.yaml create mode 100644 openapi/components/schemas/common/DkkBeneficiary.yaml create mode 100644 openapi/components/schemas/common/GbpBeneficiary.yaml create mode 100644 openapi/components/schemas/common/HkdAccountInfo.yaml create mode 100644 openapi/components/schemas/common/HkdBeneficiary.yaml create mode 100644 openapi/components/schemas/common/IdrAccountInfo.yaml create mode 100644 openapi/components/schemas/common/IdrBeneficiary.yaml create mode 100644 openapi/components/schemas/common/InrAccountInfo.yaml create mode 100644 openapi/components/schemas/common/InrBeneficiary.yaml create mode 100644 openapi/components/schemas/common/MxnAccountInfo.yaml create mode 100644 openapi/components/schemas/common/MxnBeneficiary.yaml create mode 100644 openapi/components/schemas/common/MyrAccountInfo.yaml create mode 100644 openapi/components/schemas/common/MyrBeneficiary.yaml create mode 100644 openapi/components/schemas/common/PhpBeneficiary.yaml create mode 100644 openapi/components/schemas/common/SgdBeneficiary.yaml create mode 100644 openapi/components/schemas/common/ThbAccountInfo.yaml create mode 100644 openapi/components/schemas/common/ThbBeneficiary.yaml create mode 100644 openapi/components/schemas/common/UsdAccountInfo.yaml create mode 100644 openapi/components/schemas/common/UsdBeneficiary.yaml create mode 100644 openapi/components/schemas/common/VndAccountInfo.yaml create mode 100644 openapi/components/schemas/common/VndBeneficiary.yaml create mode 100644 openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/CadAccountExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/ClabeAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/GbpAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/IbanAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/NgnAccountExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/PhpAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/PixAccountExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/SgdAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/UpiAccountExternalAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/UsAccountExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 35ccdb62..af4f0f20 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -1304,7 +1304,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '400': description: Bad request - Invalid parameters content: @@ -1398,7 +1398,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '400': description: Bad request - Invalid parameters content: @@ -2062,7 +2062,7 @@ paths: type: array description: List of transactions matching the criteria items: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' hasMore: type: boolean description: Indicates if more results are available beyond this page @@ -2112,7 +2112,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '401': description: Unauthorized content: @@ -5242,43 +5242,6 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account - BeneficiaryVerificationStatus: - type: string - enum: - - MATCHED - - PARTIAL_MATCH - - NOT_MATCHED - - UNSUPPORTED - - CHECKED_BY_RECEIVING_FI - - PENDING - description: | - The result of verifying the beneficiary name against the account holder name. - - | Status | Description | - |--------|-------------| - | `MATCHED` | The beneficiary name is an exact match | - | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | - | `NOT_MATCHED` | The beneficiary name does not match | - | `UNSUPPORTED` | The payment rail does not support name verification | - | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | - | `PENDING` | Verification is still in progress | - BeneficiaryVerifiedData: - type: object - properties: - fullName: - type: string - description: The verified full name of the account holder as returned by the payment rail - example: John Doe - UsAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5289,22 +5252,95 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' 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' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + GbpAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5332,20 +5368,6 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5377,152 +5399,7 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - BeneficiaryOneOf: - oneOf: - - title: Individual Beneficiary - $ref: '#/components/schemas/IndividualBeneficiary' - - title: Business Beneficiary - $ref: '#/components/schemas/BusinessBeneficiary' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - ClabeAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - PixAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - IbanAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - UpiAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - NgnAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' - - type: object - required: - - purposeOfPayment - - beneficiary - properties: - purposeOfPayment: - type: string - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - LOAN_PAYMENT - - TAX_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER - description: Purpose of payment - example: GOODS_OR_SERVICES - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - CadAccountInfo: - type: object - required: - - bankCode - - branchCode - - accountNumber - - accountType - 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}$ - CadAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/CadAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - GbpAccountInfo: - type: object - required: - - sortCode - - accountNumber - - accountType - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpAccountExternalAccountInfo: + GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/GbpAccountInfo' @@ -5531,13 +5408,22 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' PhpAccountInfo: type: object required: + - accountType - bankName - accountNumber - - accountType properties: accountType: type: string @@ -5551,7 +5437,40 @@ components: type: string description: Bank account number example: '001234567890' - PhpAccountExternalAccountInfo: + PhpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + PhpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5560,14 +5479,23 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SgdAccountInfo: type: object required: + - accountType - bankName - swiftCode - accountNumber - - accountType properties: accountType: type: string @@ -5588,7 +5516,40 @@ components: type: string description: Bank account number example: '0123456789' - SgdAccountExternalAccountInfo: + SgdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + SgdExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5597,7 +5558,16 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5645,16 +5615,646 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' + BrlExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + - 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' + DkkAccountInfo: + type: object + required: + - accountType + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + DkkBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + DkkExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - 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' + HkdAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + HkdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + HkdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - 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' + IdrAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + IdrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + IdrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - 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' + InrAccountInfo: + type: object + required: + - accountType + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The VPA of the bank + InrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + InrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + - 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' + MxnAccountInfo: + 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}$ + MxnBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MxnExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - 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' + MyrAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + MyrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MyrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' + - 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' + ThbAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + ThbBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + ThbExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfo' + - 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' + UsdAccountInfo: + type: object + required: + - accountType + - accountNumber + - routingNumber + properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank + UsdBeneficiary: + type: object + required: + - beneficiaryType + - birthDate + - fullName + - nationality + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + UsdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' + - 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' + VndAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + VndBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + VndExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' + - 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' ExternalAccountType: type: string enum: - - US_ACCOUNT - - CLABE - - PIX - - IBAN - - UPI - - NGN_ACCOUNT - - CAD_ACCOUNT - GBP_ACCOUNT - PHP_ACCOUNT - SGD_ACCOUNT @@ -5664,30 +6264,100 @@ components: - TRON_WALLET - POLYGON_WALLET - BASE_WALLET + - BRL_ACCOUNT + - DKK_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - INR_ACCOUNT + - MXN_ACCOUNT + - MYR_ACCOUNT + - THB_ACCOUNT + - USD_ACCOUNT + - VND_ACCOUNT description: Type of external account or wallet - example: US_ACCOUNT + example: GBP_ACCOUNT + BrlAccountInfo: + type: object + required: + - accountType + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + BrlBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' ExternalAccountInfoOneOf: oneOf: - - title: US Account - $ref: '#/components/schemas/UsAccountExternalAccountInfo' - - title: CLABE Account - $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PixAccountExternalAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/IbanAccountExternalAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/UpiAccountExternalAccountInfo' - - title: NGN Account - $ref: '#/components/schemas/NgnAccountExternalAccountInfo' - - title: CAD Account - $ref: '#/components/schemas/CadAccountExternalAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/BrlExternalAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/DkkExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpAccountExternalAccountInfo' + $ref: '#/components/schemas/GbpExternalAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/HkdExternalAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/IdrExternalAccountInfo' + - title: INR Account + $ref: '#/components/schemas/InrExternalAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/MxnExternalAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/MyrExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpAccountExternalAccountInfo' + $ref: '#/components/schemas/PhpExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdAccountExternalAccountInfo' + $ref: '#/components/schemas/SgdExternalAccountInfo' + - title: THB Account + $ref: '#/components/schemas/ThbExternalAccountInfo' + - title: USD Account + $ref: '#/components/schemas/UsdExternalAccountInfo' + - title: VND Account + $ref: '#/components/schemas/VndExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -5703,16 +6373,19 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -5752,12 +6425,6 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false - beneficiaryVerificationStatus: - $ref: '#/components/schemas/BeneficiaryVerificationStatus' - description: The result of verifying the beneficiary name against the account holder name - beneficiaryVerifiedData: - $ref: '#/components/schemas/BeneficiaryVerifiedData' - description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: @@ -5838,32 +6505,6 @@ components: Optional Plaid account ID if the customer selected a specific account. If not provided, the default account will be used. example: plaid_account_id_123 - IncomingTransaction: - allOf: - - $ref: '#/components/schemas/Transaction' - - type: object - required: - - type - - receivedAmount - properties: - type: - type: string - enum: - - INCOMING - source: - $ref: '#/components/schemas/TransactionSourceOneOf' - receivedAmount: - $ref: '#/components/schemas/CurrencyAmount' - description: Amount received in the recipient's currency - reconciliationInstructions: - $ref: '#/components/schemas/ReconciliationInstructions' - description: Included for all transactions except those with "CREATED" status - rateDetails: - $ref: '#/components/schemas/IncomingRateDetails' - description: Details about the rate and fees for the transaction. - failureReason: - $ref: '#/components/schemas/IncomingTransactionFailureReason' - description: If the transaction failed, this field provides the reason for failure. Transaction: type: object required: @@ -5912,7 +6553,13 @@ components: description: Optional memo or description for the payment example: 'Payment for invoice #1234' counterpartyInformation: - $ref: '#/components/schemas/CounterpartyInformation' + type: object + description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. + additionalProperties: true + example: + FULL_NAME: John Sender + BIRTH_DATE: '1985-06-15' + NATIONALITY: DE discriminator: propertyName: type mapping: @@ -5951,7 +6598,6 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' UmaAddressTransactionSource: allOf: - $ref: '#/components/schemas/BaseTransactionSource' @@ -5969,27 +6615,6 @@ components: description: UMA address of the sender example: $sender@uma.domain.com description: UMA address source details - RealtimeFundingTransactionSource: - allOf: - - $ref: '#/components/schemas/BaseTransactionSource' - - type: object - required: - - currency - - sourceType - properties: - sourceType: - type: string - enum: - - REALTIME_FUNDING - customerId: - type: string - description: The customer on whose behalf the transaction was initiated. - example: Customer:019542f5-b3e7-1d02-0000-000000000009 - currency: - type: string - description: Currency code for the funding source - example: USDC - description: Transaction was funded using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). TransactionSourceType: type: string enum: @@ -6004,14 +6629,86 @@ components: $ref: '#/components/schemas/AccountTransactionSource' - title: UMA Address Source $ref: '#/components/schemas/UmaAddressTransactionSource' - - title: Real-time Funding Source - $ref: '#/components/schemas/RealtimeFundingTransactionSource' discriminator: propertyName: sourceType mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' + ReconciliationInstructions: + type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to match it with the correct incoming transaction + example: UMA-Q12345-REF + IncomingRateDetails: + description: Details about the rate and fees for an incoming transaction. + type: object + required: + - gridApiMultiplier + - gridApiFixedFee + - gridApiVariableFeeRate + - gridApiVariableFeeAmount + properties: + gridApiMultiplier: + type: number + format: double + description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. + exclusiveMinimum: 0 + example: 0.925 + gridApiFixedFee: + type: integer + format: int64 + description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). + minimum: 0 + example: 10 + gridApiVariableFeeRate: + type: number + format: double + description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. + exclusiveMinimum: 0 + example: 0.003 + gridApiVariableFeeAmount: + type: number + format: int64 + description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. + minimum: 0 + example: 30 + IncomingTransactionFailureReason: + type: string + enum: + - LNURLP_FAILED + - PAY_REQUEST_FAILED + - PAYMENT_APPROVAL_WEBHOOK_ERROR + - PAYMENT_APPROVAL_TIMED_OUT + - OFFRAMP_FAILED + - MISSING_MANDATORY_PAYEE_DATA + - QUOTE_EXPIRED + - QUOTE_EXECUTION_FAILED + description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. + IncomingTransaction: + allOf: + - $ref: '#/components/schemas/Transaction' + - type: object + required: + - receivedAmount + properties: + source: + $ref: '#/components/schemas/TransactionSourceOneOf' + receivedAmount: + $ref: '#/components/schemas/CurrencyAmount' + description: Amount received in the recipient's currency + reconciliationInstructions: + $ref: '#/components/schemas/ReconciliationInstructions' + description: Included for all transactions except those with "CREATED" status + rateDetails: + $ref: '#/components/schemas/IncomingRateDetails' + description: Details about the rate and fees for the transaction. + failureReason: + $ref: '#/components/schemas/IncomingTransactionFailureReason' + description: If the transaction failed, this field provides the reason for failure. Refund: type: object required: @@ -6094,14 +6791,10 @@ components: - $ref: '#/components/schemas/Transaction' - type: object required: - - type - sentAmount + - paymentInstructions - source properties: - type: - type: string - enum: - - OUTGOING source: $ref: '#/components/schemas/TransactionSourceOneOf' sentAmount: @@ -6125,6 +6818,10 @@ components: type: string description: The ID of the quote that was used to trigger this payment example: Quote:019542f5-b3e7-1d02-0000-000000000006 + originalTransactionId: + type: string + description: ID of the original transaction that this transaction is retrying, if applicable + example: Transaction:019542f5-b3e7-1d02-0000-000000000003 paymentInstructions: type: array description: Payment instructions for executing the payment. @@ -6154,26 +6851,12 @@ components: - CREATED - PENDING - PROCESSING - - SENT - COMPLETED - REJECTED - FAILED - REFUNDED - EXPIRED - description: | - Status of a payment transaction. - - | Status | Description | - |--------|-------------| - | `CREATED` | Initial lookup has been created | - | `PENDING` | Quote has been created | - | `PROCESSING` | Funding has been received and payment initiated | - | `SENT` | Cross border settlement has been initiated | - | `COMPLETED` | Cross border payment has been received, converted and payment has been sent to the offramp network | - | `REJECTED` | Receiving institution or wallet rejected payment, payment has been refunded | - | `FAILED` | An error occurred during payment | - | `REFUNDED` | Payment was unable to complete and refunded | - | `EXPIRED` | Quote has expired | + description: Status of a payment transaction AccountTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -6207,7 +6890,6 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' - EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' UmaAddressTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -6225,27 +6907,11 @@ components: description: UMA address of the recipient example: $receiver@uma.domain.com description: UMA address destination details - ExternalAccountDetailsTransactionDestination: - allOf: - - $ref: '#/components/schemas/BaseTransactionDestination' - - type: object - required: - - externalAccountDetails - - destinationType - properties: - destinationType: - type: string - enum: - - EXTERNAL_ACCOUNT_DETAILS - externalAccountDetails: - $ref: '#/components/schemas/ExternalAccountCreateRequest' - description: Transaction destination where external account details were provided inline at quote creation rather than using a pre-registered external account. TransactionDestinationType: type: string enum: - ACCOUNT - UMA_ADDRESS - - EXTERNAL_ACCOUNT_DETAILS description: Type of transaction destination example: ACCOUNT TransactionDestinationOneOf: @@ -6254,87 +6920,11 @@ components: $ref: '#/components/schemas/AccountTransactionDestination' - title: UMA Address Destination $ref: '#/components/schemas/UmaAddressTransactionDestination' - - title: External Account Details Destination - $ref: '#/components/schemas/ExternalAccountDetailsTransactionDestination' discriminator: propertyName: destinationType mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' - EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' - CounterpartyInformation: - type: object - description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. - additionalProperties: true - example: - FULL_NAME: John Sender - BIRTH_DATE: '1985-06-15' - NATIONALITY: DE - ReconciliationInstructions: - type: object - required: - - reference - properties: - reference: - type: string - description: Unique reference code that must be included with the payment to match it with the correct incoming transaction - example: UMA-Q12345-REF - IncomingRateDetails: - description: Details about the rate and fees for an incoming transaction. - type: object - required: - - gridApiMultiplier - - gridApiFixedFee - - gridApiVariableFeeRate - - gridApiVariableFeeAmount - properties: - gridApiMultiplier: - type: number - format: double - description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. - exclusiveMinimum: 0 - example: 0.925 - gridApiFixedFee: - type: integer - format: int64 - description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). - minimum: 0 - example: 10 - gridApiVariableFeeRate: - type: number - format: double - description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. - exclusiveMinimum: 0 - example: 0.003 - gridApiVariableFeeAmount: - type: number - format: int64 - description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. - minimum: 0 - example: 30 - IncomingTransactionFailureReason: - type: string - enum: - - LNURLP_FAILED - - PAY_REQUEST_FAILED - - PAYMENT_APPROVAL_WEBHOOK_ERROR - - PAYMENT_APPROVAL_TIMED_OUT - - OFFRAMP_FAILED - - MISSING_MANDATORY_PAYEE_DATA - - QUOTE_EXPIRED - - QUOTE_EXECUTION_FAILED - description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. - TransactionOneOf: - oneOf: - - title: Incoming Transaction - $ref: '#/components/schemas/IncomingTransaction' - - title: Outgoing Transaction - $ref: '#/components/schemas/OutgoingTransaction' - discriminator: - propertyName: type - mapping: - INCOMING: '#/components/schemas/IncomingTransaction' - OUTGOING: '#/components/schemas/OutgoingTransaction' CurrencyPreference: type: object required: @@ -6457,7 +7047,7 @@ components: accountId: type: string description: Source account identifier - example: InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + example: InternalAccount:85dcbd6-dced-4ec4-b756-3c3a9ea3d965 customerId: type: string description: Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner. @@ -6613,7 +7203,7 @@ components: Quote: type: object required: - - id + - quoteId - status - expiresAt - createdAt @@ -6627,7 +7217,7 @@ components: - feesIncluded - transactionId properties: - id: + quoteId: type: string description: Unique identifier for this quote example: Quote:019542f5-b3e7-1d02-0000-000000000006 @@ -6710,22 +7300,6 @@ components: - SENDING - RECEIVING description: The side of the quote which should be locked and specified in the `lockedCurrencyAmount`. For example, if I want to send exactly $5 MXN from my wallet, I would set this to "sending", and the `lockedCurrencyAmount` to 500 (in cents). If I want the receiver to receive exactly $10 USD, I would set this to "receiving" and the `lockedCurrencyAmount` to 10000 (in cents). - PurposeOfPayment: - type: string - description: The purpose of the payment. This may be required when sending to certain geographies such as India. - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - TAX_PAYMENT - - LOAN_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER QuoteRequest: type: object required: @@ -6755,16 +7329,12 @@ components: example: 1000 immediatelyExecute: type: boolean - description: |- - Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. - This can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). + description: Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. example: false description: type: string description: Optional description/memo for the transfer example: 'Invoice #1234 payment' - purposeOfPayment: - $ref: '#/components/schemas/PurposeOfPayment' senderCustomerInfo: type: object additionalProperties: true @@ -6822,11 +7392,11 @@ components: BulkCustomerImportJob: type: object required: - - id + - jobId - status - progress properties: - id: + jobId: type: string description: Unique identifier for the bulk import job example: Job:019542f5-b3e7-1d02-0000-000000000006 @@ -7075,7 +7645,7 @@ components: type: object required: - timestamp - - id + - webhookId - type properties: timestamp: @@ -7083,7 +7653,7 @@ components: format: date-time description: ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) example: '2025-08-15T14:32:00Z' - id: + webhookId: type: string description: Unique identifier for this webhook delivery (can be used for idempotency) example: Webhook:019542f5-b3e7-1d02-0000-000000000007 diff --git a/openapi.yaml b/openapi.yaml index 35ccdb62..af4f0f20 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1304,7 +1304,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '400': description: Bad request - Invalid parameters content: @@ -1398,7 +1398,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '400': description: Bad request - Invalid parameters content: @@ -2062,7 +2062,7 @@ paths: type: array description: List of transactions matching the criteria items: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' hasMore: type: boolean description: Indicates if more results are available beyond this page @@ -2112,7 +2112,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/TransactionOneOf' + $ref: '#/components/schemas/Transaction' '401': description: Unauthorized content: @@ -5242,43 +5242,6 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account - BeneficiaryVerificationStatus: - type: string - enum: - - MATCHED - - PARTIAL_MATCH - - NOT_MATCHED - - UNSUPPORTED - - CHECKED_BY_RECEIVING_FI - - PENDING - description: | - The result of verifying the beneficiary name against the account holder name. - - | Status | Description | - |--------|-------------| - | `MATCHED` | The beneficiary name is an exact match | - | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | - | `NOT_MATCHED` | The beneficiary name does not match | - | `UNSUPPORTED` | The payment rail does not support name verification | - | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | - | `PENDING` | Verification is still in progress | - BeneficiaryVerifiedData: - type: object - properties: - fullName: - type: string - description: The verified full name of the account holder as returned by the payment rail - example: John Doe - UsAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5289,22 +5252,95 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' 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' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + GbpAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5332,20 +5368,6 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5377,152 +5399,7 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - BeneficiaryOneOf: - oneOf: - - title: Individual Beneficiary - $ref: '#/components/schemas/IndividualBeneficiary' - - title: Business Beneficiary - $ref: '#/components/schemas/BusinessBeneficiary' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - ClabeAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - PixAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - IbanAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - UpiAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - NgnAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' - - type: object - required: - - purposeOfPayment - - beneficiary - properties: - purposeOfPayment: - type: string - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - LOAN_PAYMENT - - TAX_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER - description: Purpose of payment - example: GOODS_OR_SERVICES - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - CadAccountInfo: - type: object - required: - - bankCode - - branchCode - - accountNumber - - accountType - 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}$ - CadAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/CadAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - GbpAccountInfo: - type: object - required: - - sortCode - - accountNumber - - accountType - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpAccountExternalAccountInfo: + GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/GbpAccountInfo' @@ -5531,13 +5408,22 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' PhpAccountInfo: type: object required: + - accountType - bankName - accountNumber - - accountType properties: accountType: type: string @@ -5551,7 +5437,40 @@ components: type: string description: Bank account number example: '001234567890' - PhpAccountExternalAccountInfo: + PhpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + PhpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5560,14 +5479,23 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SgdAccountInfo: type: object required: + - accountType - bankName - swiftCode - accountNumber - - accountType properties: accountType: type: string @@ -5588,7 +5516,40 @@ components: type: string description: Bank account number example: '0123456789' - SgdAccountExternalAccountInfo: + SgdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + SgdExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5597,7 +5558,16 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5645,16 +5615,646 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' + BrlExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + - 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' + DkkAccountInfo: + type: object + required: + - accountType + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + DkkBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + DkkExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - 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' + HkdAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + HkdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + HkdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - 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' + IdrAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + IdrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + IdrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - 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' + InrAccountInfo: + type: object + required: + - accountType + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The VPA of the bank + InrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + InrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + - 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' + MxnAccountInfo: + 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}$ + MxnBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MxnExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - 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' + MyrAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + MyrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MyrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' + - 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' + ThbAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + ThbBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + ThbExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfo' + - 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' + UsdAccountInfo: + type: object + required: + - accountType + - accountNumber + - routingNumber + properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank + UsdBeneficiary: + type: object + required: + - beneficiaryType + - birthDate + - fullName + - nationality + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + UsdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' + - 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' + VndAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + VndBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + VndExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' + - 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' ExternalAccountType: type: string enum: - - US_ACCOUNT - - CLABE - - PIX - - IBAN - - UPI - - NGN_ACCOUNT - - CAD_ACCOUNT - GBP_ACCOUNT - PHP_ACCOUNT - SGD_ACCOUNT @@ -5664,30 +6264,100 @@ components: - TRON_WALLET - POLYGON_WALLET - BASE_WALLET + - BRL_ACCOUNT + - DKK_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - INR_ACCOUNT + - MXN_ACCOUNT + - MYR_ACCOUNT + - THB_ACCOUNT + - USD_ACCOUNT + - VND_ACCOUNT description: Type of external account or wallet - example: US_ACCOUNT + example: GBP_ACCOUNT + BrlAccountInfo: + type: object + required: + - accountType + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + BrlBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' ExternalAccountInfoOneOf: oneOf: - - title: US Account - $ref: '#/components/schemas/UsAccountExternalAccountInfo' - - title: CLABE Account - $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PixAccountExternalAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/IbanAccountExternalAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/UpiAccountExternalAccountInfo' - - title: NGN Account - $ref: '#/components/schemas/NgnAccountExternalAccountInfo' - - title: CAD Account - $ref: '#/components/schemas/CadAccountExternalAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/BrlExternalAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/DkkExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpAccountExternalAccountInfo' + $ref: '#/components/schemas/GbpExternalAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/HkdExternalAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/IdrExternalAccountInfo' + - title: INR Account + $ref: '#/components/schemas/InrExternalAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/MxnExternalAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/MyrExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpAccountExternalAccountInfo' + $ref: '#/components/schemas/PhpExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdAccountExternalAccountInfo' + $ref: '#/components/schemas/SgdExternalAccountInfo' + - title: THB Account + $ref: '#/components/schemas/ThbExternalAccountInfo' + - title: USD Account + $ref: '#/components/schemas/UsdExternalAccountInfo' + - title: VND Account + $ref: '#/components/schemas/VndExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -5703,16 +6373,19 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -5752,12 +6425,6 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false - beneficiaryVerificationStatus: - $ref: '#/components/schemas/BeneficiaryVerificationStatus' - description: The result of verifying the beneficiary name against the account holder name - beneficiaryVerifiedData: - $ref: '#/components/schemas/BeneficiaryVerifiedData' - description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: @@ -5838,32 +6505,6 @@ components: Optional Plaid account ID if the customer selected a specific account. If not provided, the default account will be used. example: plaid_account_id_123 - IncomingTransaction: - allOf: - - $ref: '#/components/schemas/Transaction' - - type: object - required: - - type - - receivedAmount - properties: - type: - type: string - enum: - - INCOMING - source: - $ref: '#/components/schemas/TransactionSourceOneOf' - receivedAmount: - $ref: '#/components/schemas/CurrencyAmount' - description: Amount received in the recipient's currency - reconciliationInstructions: - $ref: '#/components/schemas/ReconciliationInstructions' - description: Included for all transactions except those with "CREATED" status - rateDetails: - $ref: '#/components/schemas/IncomingRateDetails' - description: Details about the rate and fees for the transaction. - failureReason: - $ref: '#/components/schemas/IncomingTransactionFailureReason' - description: If the transaction failed, this field provides the reason for failure. Transaction: type: object required: @@ -5912,7 +6553,13 @@ components: description: Optional memo or description for the payment example: 'Payment for invoice #1234' counterpartyInformation: - $ref: '#/components/schemas/CounterpartyInformation' + type: object + description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. + additionalProperties: true + example: + FULL_NAME: John Sender + BIRTH_DATE: '1985-06-15' + NATIONALITY: DE discriminator: propertyName: type mapping: @@ -5951,7 +6598,6 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' UmaAddressTransactionSource: allOf: - $ref: '#/components/schemas/BaseTransactionSource' @@ -5969,27 +6615,6 @@ components: description: UMA address of the sender example: $sender@uma.domain.com description: UMA address source details - RealtimeFundingTransactionSource: - allOf: - - $ref: '#/components/schemas/BaseTransactionSource' - - type: object - required: - - currency - - sourceType - properties: - sourceType: - type: string - enum: - - REALTIME_FUNDING - customerId: - type: string - description: The customer on whose behalf the transaction was initiated. - example: Customer:019542f5-b3e7-1d02-0000-000000000009 - currency: - type: string - description: Currency code for the funding source - example: USDC - description: Transaction was funded using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). TransactionSourceType: type: string enum: @@ -6004,14 +6629,86 @@ components: $ref: '#/components/schemas/AccountTransactionSource' - title: UMA Address Source $ref: '#/components/schemas/UmaAddressTransactionSource' - - title: Real-time Funding Source - $ref: '#/components/schemas/RealtimeFundingTransactionSource' discriminator: propertyName: sourceType mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' + ReconciliationInstructions: + type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to match it with the correct incoming transaction + example: UMA-Q12345-REF + IncomingRateDetails: + description: Details about the rate and fees for an incoming transaction. + type: object + required: + - gridApiMultiplier + - gridApiFixedFee + - gridApiVariableFeeRate + - gridApiVariableFeeAmount + properties: + gridApiMultiplier: + type: number + format: double + description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. + exclusiveMinimum: 0 + example: 0.925 + gridApiFixedFee: + type: integer + format: int64 + description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). + minimum: 0 + example: 10 + gridApiVariableFeeRate: + type: number + format: double + description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. + exclusiveMinimum: 0 + example: 0.003 + gridApiVariableFeeAmount: + type: number + format: int64 + description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. + minimum: 0 + example: 30 + IncomingTransactionFailureReason: + type: string + enum: + - LNURLP_FAILED + - PAY_REQUEST_FAILED + - PAYMENT_APPROVAL_WEBHOOK_ERROR + - PAYMENT_APPROVAL_TIMED_OUT + - OFFRAMP_FAILED + - MISSING_MANDATORY_PAYEE_DATA + - QUOTE_EXPIRED + - QUOTE_EXECUTION_FAILED + description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. + IncomingTransaction: + allOf: + - $ref: '#/components/schemas/Transaction' + - type: object + required: + - receivedAmount + properties: + source: + $ref: '#/components/schemas/TransactionSourceOneOf' + receivedAmount: + $ref: '#/components/schemas/CurrencyAmount' + description: Amount received in the recipient's currency + reconciliationInstructions: + $ref: '#/components/schemas/ReconciliationInstructions' + description: Included for all transactions except those with "CREATED" status + rateDetails: + $ref: '#/components/schemas/IncomingRateDetails' + description: Details about the rate and fees for the transaction. + failureReason: + $ref: '#/components/schemas/IncomingTransactionFailureReason' + description: If the transaction failed, this field provides the reason for failure. Refund: type: object required: @@ -6094,14 +6791,10 @@ components: - $ref: '#/components/schemas/Transaction' - type: object required: - - type - sentAmount + - paymentInstructions - source properties: - type: - type: string - enum: - - OUTGOING source: $ref: '#/components/schemas/TransactionSourceOneOf' sentAmount: @@ -6125,6 +6818,10 @@ components: type: string description: The ID of the quote that was used to trigger this payment example: Quote:019542f5-b3e7-1d02-0000-000000000006 + originalTransactionId: + type: string + description: ID of the original transaction that this transaction is retrying, if applicable + example: Transaction:019542f5-b3e7-1d02-0000-000000000003 paymentInstructions: type: array description: Payment instructions for executing the payment. @@ -6154,26 +6851,12 @@ components: - CREATED - PENDING - PROCESSING - - SENT - COMPLETED - REJECTED - FAILED - REFUNDED - EXPIRED - description: | - Status of a payment transaction. - - | Status | Description | - |--------|-------------| - | `CREATED` | Initial lookup has been created | - | `PENDING` | Quote has been created | - | `PROCESSING` | Funding has been received and payment initiated | - | `SENT` | Cross border settlement has been initiated | - | `COMPLETED` | Cross border payment has been received, converted and payment has been sent to the offramp network | - | `REJECTED` | Receiving institution or wallet rejected payment, payment has been refunded | - | `FAILED` | An error occurred during payment | - | `REFUNDED` | Payment was unable to complete and refunded | - | `EXPIRED` | Quote has expired | + description: Status of a payment transaction AccountTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -6207,7 +6890,6 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' - EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' UmaAddressTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -6225,27 +6907,11 @@ components: description: UMA address of the recipient example: $receiver@uma.domain.com description: UMA address destination details - ExternalAccountDetailsTransactionDestination: - allOf: - - $ref: '#/components/schemas/BaseTransactionDestination' - - type: object - required: - - externalAccountDetails - - destinationType - properties: - destinationType: - type: string - enum: - - EXTERNAL_ACCOUNT_DETAILS - externalAccountDetails: - $ref: '#/components/schemas/ExternalAccountCreateRequest' - description: Transaction destination where external account details were provided inline at quote creation rather than using a pre-registered external account. TransactionDestinationType: type: string enum: - ACCOUNT - UMA_ADDRESS - - EXTERNAL_ACCOUNT_DETAILS description: Type of transaction destination example: ACCOUNT TransactionDestinationOneOf: @@ -6254,87 +6920,11 @@ components: $ref: '#/components/schemas/AccountTransactionDestination' - title: UMA Address Destination $ref: '#/components/schemas/UmaAddressTransactionDestination' - - title: External Account Details Destination - $ref: '#/components/schemas/ExternalAccountDetailsTransactionDestination' discriminator: propertyName: destinationType mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' - EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' - CounterpartyInformation: - type: object - description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. - additionalProperties: true - example: - FULL_NAME: John Sender - BIRTH_DATE: '1985-06-15' - NATIONALITY: DE - ReconciliationInstructions: - type: object - required: - - reference - properties: - reference: - type: string - description: Unique reference code that must be included with the payment to match it with the correct incoming transaction - example: UMA-Q12345-REF - IncomingRateDetails: - description: Details about the rate and fees for an incoming transaction. - type: object - required: - - gridApiMultiplier - - gridApiFixedFee - - gridApiVariableFeeRate - - gridApiVariableFeeAmount - properties: - gridApiMultiplier: - type: number - format: double - description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. - exclusiveMinimum: 0 - example: 0.925 - gridApiFixedFee: - type: integer - format: int64 - description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). - minimum: 0 - example: 10 - gridApiVariableFeeRate: - type: number - format: double - description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. - exclusiveMinimum: 0 - example: 0.003 - gridApiVariableFeeAmount: - type: number - format: int64 - description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. - minimum: 0 - example: 30 - IncomingTransactionFailureReason: - type: string - enum: - - LNURLP_FAILED - - PAY_REQUEST_FAILED - - PAYMENT_APPROVAL_WEBHOOK_ERROR - - PAYMENT_APPROVAL_TIMED_OUT - - OFFRAMP_FAILED - - MISSING_MANDATORY_PAYEE_DATA - - QUOTE_EXPIRED - - QUOTE_EXECUTION_FAILED - description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. - TransactionOneOf: - oneOf: - - title: Incoming Transaction - $ref: '#/components/schemas/IncomingTransaction' - - title: Outgoing Transaction - $ref: '#/components/schemas/OutgoingTransaction' - discriminator: - propertyName: type - mapping: - INCOMING: '#/components/schemas/IncomingTransaction' - OUTGOING: '#/components/schemas/OutgoingTransaction' CurrencyPreference: type: object required: @@ -6457,7 +7047,7 @@ components: accountId: type: string description: Source account identifier - example: InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + example: InternalAccount:85dcbd6-dced-4ec4-b756-3c3a9ea3d965 customerId: type: string description: Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner. @@ -6613,7 +7203,7 @@ components: Quote: type: object required: - - id + - quoteId - status - expiresAt - createdAt @@ -6627,7 +7217,7 @@ components: - feesIncluded - transactionId properties: - id: + quoteId: type: string description: Unique identifier for this quote example: Quote:019542f5-b3e7-1d02-0000-000000000006 @@ -6710,22 +7300,6 @@ components: - SENDING - RECEIVING description: The side of the quote which should be locked and specified in the `lockedCurrencyAmount`. For example, if I want to send exactly $5 MXN from my wallet, I would set this to "sending", and the `lockedCurrencyAmount` to 500 (in cents). If I want the receiver to receive exactly $10 USD, I would set this to "receiving" and the `lockedCurrencyAmount` to 10000 (in cents). - PurposeOfPayment: - type: string - description: The purpose of the payment. This may be required when sending to certain geographies such as India. - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - TAX_PAYMENT - - LOAN_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER QuoteRequest: type: object required: @@ -6755,16 +7329,12 @@ components: example: 1000 immediatelyExecute: type: boolean - description: |- - Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. - This can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). + description: Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. example: false description: type: string description: Optional description/memo for the transfer example: 'Invoice #1234 payment' - purposeOfPayment: - $ref: '#/components/schemas/PurposeOfPayment' senderCustomerInfo: type: object additionalProperties: true @@ -6822,11 +7392,11 @@ components: BulkCustomerImportJob: type: object required: - - id + - jobId - status - progress properties: - id: + jobId: type: string description: Unique identifier for the bulk import job example: Job:019542f5-b3e7-1d02-0000-000000000006 @@ -7075,7 +7645,7 @@ components: type: object required: - timestamp - - id + - webhookId - type properties: timestamp: @@ -7083,7 +7653,7 @@ components: format: date-time description: ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) example: '2025-08-15T14:32:00Z' - id: + webhookId: type: string description: Unique identifier for this webhook delivery (can be used for idempotency) example: Webhook:019542f5-b3e7-1d02-0000-000000000007 diff --git a/openapi/components/schemas/common/BrlAccountInfo.yaml b/openapi/components/schemas/common/BrlAccountInfo.yaml new file mode 100644 index 00000000..278a83b8 --- /dev/null +++ b/openapi/components/schemas/common/BrlAccountInfo.yaml @@ -0,0 +1,20 @@ +type: object +required: +- accountType +- pixKey +- pixKeyType +- taxId +properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account diff --git a/openapi/components/schemas/common/BrlBeneficiary.yaml b/openapi/components/schemas/common/BrlBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/BrlBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/DkkAccountInfo.yaml b/openapi/components/schemas/common/DkkAccountInfo.yaml new file mode 100644 index 00000000..b80d6541 --- /dev/null +++ b/openapi/components/schemas/common/DkkAccountInfo.yaml @@ -0,0 +1,15 @@ +type: object +required: +- accountType +- iban +properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank diff --git a/openapi/components/schemas/common/DkkBeneficiary.yaml b/openapi/components/schemas/common/DkkBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/DkkBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/GbpAccountInfo.yaml b/openapi/components/schemas/common/GbpAccountInfo.yaml index 68a9a163..9726bb6c 100644 --- a/openapi/components/schemas/common/GbpAccountInfo.yaml +++ b/openapi/components/schemas/common/GbpAccountInfo.yaml @@ -1,13 +1,13 @@ type: object required: - - sortCode - - accountNumber - - accountType +- accountType +- sortCode +- accountNumber properties: accountType: type: string enum: - - GBP_ACCOUNT + - GBP_ACCOUNT sortCode: type: string description: UK bank sort code (6 digits, may include hyphens) diff --git a/openapi/components/schemas/common/GbpBeneficiary.yaml b/openapi/components/schemas/common/GbpBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/GbpBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/HkdAccountInfo.yaml b/openapi/components/schemas/common/HkdAccountInfo.yaml new file mode 100644 index 00000000..c3f2c7dd --- /dev/null +++ b/openapi/components/schemas/common/HkdAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- bankName +- accountNumber +properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank diff --git a/openapi/components/schemas/common/HkdBeneficiary.yaml b/openapi/components/schemas/common/HkdBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/HkdBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/IdrAccountInfo.yaml b/openapi/components/schemas/common/IdrAccountInfo.yaml new file mode 100644 index 00000000..2e601516 --- /dev/null +++ b/openapi/components/schemas/common/IdrAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- sortCode +- accountNumber +properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank diff --git a/openapi/components/schemas/common/IdrBeneficiary.yaml b/openapi/components/schemas/common/IdrBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/IdrBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/InrAccountInfo.yaml b/openapi/components/schemas/common/InrAccountInfo.yaml new file mode 100644 index 00000000..ef09dec1 --- /dev/null +++ b/openapi/components/schemas/common/InrAccountInfo.yaml @@ -0,0 +1,12 @@ +type: object +required: +- accountType +- vpa +properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The VPA of the bank diff --git a/openapi/components/schemas/common/InrBeneficiary.yaml b/openapi/components/schemas/common/InrBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/InrBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/MxnAccountInfo.yaml b/openapi/components/schemas/common/MxnAccountInfo.yaml new file mode 100644 index 00000000..d5444dea --- /dev/null +++ b/openapi/components/schemas/common/MxnAccountInfo.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/MxnBeneficiary.yaml b/openapi/components/schemas/common/MxnBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/MxnBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/MyrAccountInfo.yaml b/openapi/components/schemas/common/MyrAccountInfo.yaml new file mode 100644 index 00000000..490f59e1 --- /dev/null +++ b/openapi/components/schemas/common/MyrAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- bankName +- accountNumber +properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank diff --git a/openapi/components/schemas/common/MyrBeneficiary.yaml b/openapi/components/schemas/common/MyrBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/MyrBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/PhpAccountInfo.yaml b/openapi/components/schemas/common/PhpAccountInfo.yaml index 9b01eda6..3be3ffae 100644 --- a/openapi/components/schemas/common/PhpAccountInfo.yaml +++ b/openapi/components/schemas/common/PhpAccountInfo.yaml @@ -1,13 +1,13 @@ type: object required: - - bankName - - accountNumber - - accountType +- accountType +- bankName +- accountNumber properties: accountType: type: string enum: - - PHP_ACCOUNT + - PHP_ACCOUNT bankName: type: string description: Name of the beneficiary's bank diff --git a/openapi/components/schemas/common/PhpBeneficiary.yaml b/openapi/components/schemas/common/PhpBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/PhpBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/SgdAccountInfo.yaml b/openapi/components/schemas/common/SgdAccountInfo.yaml index 1821b632..8a0b5517 100644 --- a/openapi/components/schemas/common/SgdAccountInfo.yaml +++ b/openapi/components/schemas/common/SgdAccountInfo.yaml @@ -1,14 +1,14 @@ type: object required: - - bankName - - swiftCode - - accountNumber - - accountType +- accountType +- bankName +- swiftCode +- accountNumber properties: accountType: type: string enum: - - SGD_ACCOUNT + - SGD_ACCOUNT bankName: type: string description: Name of the beneficiary's bank diff --git a/openapi/components/schemas/common/SgdBeneficiary.yaml b/openapi/components/schemas/common/SgdBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/SgdBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/ThbAccountInfo.yaml b/openapi/components/schemas/common/ThbAccountInfo.yaml new file mode 100644 index 00000000..6ff0eb90 --- /dev/null +++ b/openapi/components/schemas/common/ThbAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- bankName +- accountNumber +properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank diff --git a/openapi/components/schemas/common/ThbBeneficiary.yaml b/openapi/components/schemas/common/ThbBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/ThbBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/UsdAccountInfo.yaml b/openapi/components/schemas/common/UsdAccountInfo.yaml new file mode 100644 index 00000000..25edd0eb --- /dev/null +++ b/openapi/components/schemas/common/UsdAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- accountNumber +- routingNumber +properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank diff --git a/openapi/components/schemas/common/UsdBeneficiary.yaml b/openapi/components/schemas/common/UsdBeneficiary.yaml new file mode 100644 index 00000000..68882d7e --- /dev/null +++ b/openapi/components/schemas/common/UsdBeneficiary.yaml @@ -0,0 +1,34 @@ +type: object +required: +- beneficiaryType +- birthDate +- fullName +- nationality +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/VndAccountInfo.yaml b/openapi/components/schemas/common/VndAccountInfo.yaml new file mode 100644 index 00000000..584a0661 --- /dev/null +++ b/openapi/components/schemas/common/VndAccountInfo.yaml @@ -0,0 +1,16 @@ +type: object +required: +- accountType +- bankName +- accountNumber +properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank diff --git a/openapi/components/schemas/common/VndBeneficiary.yaml b/openapi/components/schemas/common/VndBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/VndBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index ea40286e..cc967a8c 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -7,19 +7,22 @@ properties: discriminator: propertyName: accountType mapping: - US_ACCOUNT: ./UsAccountExternalAccountInfo.yaml - CLABE: ./ClabeAccountExternalAccountInfo.yaml - PIX: ./PixAccountExternalAccountInfo.yaml - IBAN: ./IbanAccountExternalAccountInfo.yaml - UPI: ./UpiAccountExternalAccountInfo.yaml - NGN_ACCOUNT: ./NgnAccountExternalAccountInfo.yaml - CAD_ACCOUNT: ./CadAccountExternalAccountInfo.yaml - GBP_ACCOUNT: ./GbpAccountExternalAccountInfo.yaml - PHP_ACCOUNT: ./PhpAccountExternalAccountInfo.yaml - SGD_ACCOUNT: ./SgdAccountExternalAccountInfo.yaml + GBP_ACCOUNT: ./GbpExternalAccountInfo.yaml + PHP_ACCOUNT: ./PhpExternalAccountInfo.yaml + SGD_ACCOUNT: ./SgdExternalAccountInfo.yaml SPARK_WALLET: ./SparkWalletExternalAccountInfo.yaml LIGHTNING: ./LightningExternalAccountInfo.yaml SOLANA_WALLET: ./SolanaWalletExternalAccountInfo.yaml TRON_WALLET: ./TronWalletExternalAccountInfo.yaml POLYGON_WALLET: ./PolygonWalletExternalAccountInfo.yaml BASE_WALLET: ./BaseWalletExternalAccountInfo.yaml + BRL_ACCOUNT: ./BrlExternalAccountInfo.yaml + DKK_ACCOUNT: ./DkkExternalAccountInfo.yaml + HKD_ACCOUNT: ./HkdExternalAccountInfo.yaml + IDR_ACCOUNT: ./IdrExternalAccountInfo.yaml + INR_ACCOUNT: ./InrExternalAccountInfo.yaml + MXN_ACCOUNT: ./MxnExternalAccountInfo.yaml + MYR_ACCOUNT: ./MyrExternalAccountInfo.yaml + THB_ACCOUNT: ./ThbExternalAccountInfo.yaml + USD_ACCOUNT: ./UsdExternalAccountInfo.yaml + VND_ACCOUNT: ./VndExternalAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml new file mode 100644 index 00000000..ddfd3557 --- /dev/null +++ b/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/BrlAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/BrlBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/BrlBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/CadAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/CadAccountExternalAccountInfo.yaml deleted file mode 100644 index 055b788c..00000000 --- a/openapi/components/schemas/external_accounts/CadAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/CadAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/ClabeAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/ClabeAccountExternalAccountInfo.yaml deleted file mode 100644 index e422f992..00000000 --- a/openapi/components/schemas/external_accounts/ClabeAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/ClabeAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml new file mode 100644 index 00000000..2a06b867 --- /dev/null +++ b/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/DkkAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/DkkBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/DkkBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml b/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml index 3833c6b3..b6030a15 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml @@ -1,49 +1,58 @@ oneOf: - - title: US Account - $ref: ./UsAccountExternalAccountInfo.yaml - - title: CLABE Account - $ref: ./ClabeAccountExternalAccountInfo.yaml - - title: PIX Account - $ref: ./PixAccountExternalAccountInfo.yaml - - title: IBAN Account - $ref: ./IbanAccountExternalAccountInfo.yaml - - title: UPI Account - $ref: ./UpiAccountExternalAccountInfo.yaml - - title: NGN Account - $ref: ./NgnAccountExternalAccountInfo.yaml - - title: CAD Account - $ref: ./CadAccountExternalAccountInfo.yaml - - title: GBP Account - $ref: ./GbpAccountExternalAccountInfo.yaml - - title: PHP Account - $ref: ./PhpAccountExternalAccountInfo.yaml - - title: SGD Account - $ref: ./SgdAccountExternalAccountInfo.yaml - - title: Spark Wallet - $ref: ./SparkWalletExternalAccountInfo.yaml - - title: Lightning - $ref: ./LightningExternalAccountInfo.yaml - - title: Solana Wallet - $ref: ./SolanaWalletExternalAccountInfo.yaml - - title: Tron Wallet - $ref: ./TronWalletExternalAccountInfo.yaml - - title: Polygon Wallet - $ref: ./PolygonWalletExternalAccountInfo.yaml - - title: Base Wallet - $ref: ./BaseWalletExternalAccountInfo.yaml +- title: BRL Account + $ref: ./BrlExternalAccountInfo.yaml +- title: DKK Account + $ref: ./DkkExternalAccountInfo.yaml +- title: GBP Account + $ref: ./GbpExternalAccountInfo.yaml +- title: HKD Account + $ref: ./HkdExternalAccountInfo.yaml +- title: IDR Account + $ref: ./IdrExternalAccountInfo.yaml +- title: INR Account + $ref: ./InrExternalAccountInfo.yaml +- title: MXN Account + $ref: ./MxnExternalAccountInfo.yaml +- title: MYR Account + $ref: ./MyrExternalAccountInfo.yaml +- title: PHP Account + $ref: ./PhpExternalAccountInfo.yaml +- title: SGD Account + $ref: ./SgdExternalAccountInfo.yaml +- title: THB Account + $ref: ./ThbExternalAccountInfo.yaml +- title: USD Account + $ref: ./UsdExternalAccountInfo.yaml +- title: VND Account + $ref: ./VndExternalAccountInfo.yaml +- title: Spark Wallet + $ref: ./SparkWalletExternalAccountInfo.yaml +- title: Lightning + $ref: ./LightningExternalAccountInfo.yaml +- title: Solana Wallet + $ref: ./SolanaWalletExternalAccountInfo.yaml +- title: Tron Wallet + $ref: ./TronWalletExternalAccountInfo.yaml +- title: Polygon Wallet + $ref: ./PolygonWalletExternalAccountInfo.yaml +- title: Base Wallet + $ref: ./BaseWalletExternalAccountInfo.yaml discriminator: propertyName: accountType mapping: - US_ACCOUNT: ./UsAccountExternalAccountInfo.yaml - CLABE: ./ClabeAccountExternalAccountInfo.yaml - PIX: ./PixAccountExternalAccountInfo.yaml - IBAN: ./IbanAccountExternalAccountInfo.yaml - UPI: ./UpiAccountExternalAccountInfo.yaml - NGN_ACCOUNT: ./NgnAccountExternalAccountInfo.yaml - CAD_ACCOUNT: ./CadAccountExternalAccountInfo.yaml - GBP_ACCOUNT: ./GbpAccountExternalAccountInfo.yaml - PHP_ACCOUNT: ./PhpAccountExternalAccountInfo.yaml - SGD_ACCOUNT: ./SgdAccountExternalAccountInfo.yaml + BRL_ACCOUNT: ./BrlExternalAccountInfo.yaml + DKK_ACCOUNT: ./DkkExternalAccountInfo.yaml + GBP_ACCOUNT: ./GbpExternalAccountInfo.yaml + HKD_ACCOUNT: ./HkdExternalAccountInfo.yaml + IDR_ACCOUNT: ./IdrExternalAccountInfo.yaml + INR_ACCOUNT: ./InrExternalAccountInfo.yaml + MXN_ACCOUNT: ./MxnExternalAccountInfo.yaml + MYR_ACCOUNT: ./MyrExternalAccountInfo.yaml + PHP_ACCOUNT: ./PhpExternalAccountInfo.yaml + SGD_ACCOUNT: ./SgdExternalAccountInfo.yaml + THB_ACCOUNT: ./ThbExternalAccountInfo.yaml + USD_ACCOUNT: ./UsdExternalAccountInfo.yaml + VND_ACCOUNT: ./VndExternalAccountInfo.yaml SPARK_WALLET: ./SparkWalletExternalAccountInfo.yaml LIGHTNING: ./LightningExternalAccountInfo.yaml SOLANA_WALLET: ./SolanaWalletExternalAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountType.yaml b/openapi/components/schemas/external_accounts/ExternalAccountType.yaml index 66c8d8b3..be9f55ab 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountType.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountType.yaml @@ -1,12 +1,5 @@ type: string enum: - - US_ACCOUNT - - CLABE - - PIX - - IBAN - - UPI - - NGN_ACCOUNT - - CAD_ACCOUNT - GBP_ACCOUNT - PHP_ACCOUNT - SGD_ACCOUNT @@ -16,5 +9,15 @@ enum: - TRON_WALLET - POLYGON_WALLET - BASE_WALLET + - BRL_ACCOUNT + - DKK_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - INR_ACCOUNT + - MXN_ACCOUNT + - MYR_ACCOUNT + - THB_ACCOUNT + - USD_ACCOUNT + - VND_ACCOUNT description: Type of external account or wallet -example: US_ACCOUNT +example: GBP_ACCOUNT diff --git a/openapi/components/schemas/external_accounts/GbpAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/GbpAccountExternalAccountInfo.yaml deleted file mode 100644 index d9d01c90..00000000 --- a/openapi/components/schemas/external_accounts/GbpAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/GbpAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml new file mode 100644 index 00000000..53a6851a --- /dev/null +++ b/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/GbpAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/GbpBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/GbpBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml new file mode 100644 index 00000000..95a14095 --- /dev/null +++ b/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/HkdAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/HkdBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/HkdBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/IbanAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/IbanAccountExternalAccountInfo.yaml deleted file mode 100644 index 085cdbc8..00000000 --- a/openapi/components/schemas/external_accounts/IbanAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/IbanAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml new file mode 100644 index 00000000..97057199 --- /dev/null +++ b/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/IdrAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/IdrBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/IdrBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml new file mode 100644 index 00000000..a2d8c817 --- /dev/null +++ b/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/InrAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/InrBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/InrBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml new file mode 100644 index 00000000..9effce05 --- /dev/null +++ b/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/MxnAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/MxnBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/MxnBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml new file mode 100644 index 00000000..a0d4af0c --- /dev/null +++ b/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/MyrAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/MyrBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/MyrBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/NgnAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/NgnAccountExternalAccountInfo.yaml deleted file mode 100644 index 959e1bfd..00000000 --- a/openapi/components/schemas/external_accounts/NgnAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,27 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/NgnAccountInfo.yaml - - type: object - required: - - purposeOfPayment - - beneficiary - properties: - purposeOfPayment: - type: string - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - LOAN_PAYMENT - - TAX_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER - description: Purpose of payment - example: GOODS_OR_SERVICES - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/PhpAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/PhpAccountExternalAccountInfo.yaml deleted file mode 100644 index d69becbe..00000000 --- a/openapi/components/schemas/external_accounts/PhpAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/PhpAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml new file mode 100644 index 00000000..605d3f18 --- /dev/null +++ b/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/PhpAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/PhpBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/PhpBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/PixAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/PixAccountExternalAccountInfo.yaml deleted file mode 100644 index f492c457..00000000 --- a/openapi/components/schemas/external_accounts/PixAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/PixAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml diff --git a/openapi/components/schemas/external_accounts/SgdAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/SgdAccountExternalAccountInfo.yaml deleted file mode 100644 index 7e4cca1e..00000000 --- a/openapi/components/schemas/external_accounts/SgdAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/SgdAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml new file mode 100644 index 00000000..3965a0a9 --- /dev/null +++ b/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/SgdAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/SgdBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/SgdBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml new file mode 100644 index 00000000..ed7328ec --- /dev/null +++ b/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/ThbAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/ThbBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/ThbBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/UpiAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/UpiAccountExternalAccountInfo.yaml deleted file mode 100644 index e7675259..00000000 --- a/openapi/components/schemas/external_accounts/UpiAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/UpiAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/UsAccountExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/UsAccountExternalAccountInfo.yaml deleted file mode 100644 index 6fa6a96e..00000000 --- a/openapi/components/schemas/external_accounts/UsAccountExternalAccountInfo.yaml +++ /dev/null @@ -1,9 +0,0 @@ -allOf: - - $ref: ./BaseExternalAccountInfo.yaml - - $ref: ../common/UsAccountInfo.yaml - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: ./BeneficiaryOneOf.yaml \ No newline at end of file diff --git a/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml new file mode 100644 index 00000000..68ce09ff --- /dev/null +++ b/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/UsdAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/UsdBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/UsdBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml new file mode 100644 index 00000000..5ccce3e3 --- /dev/null +++ b/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/VndAccountInfo.yaml +- type: object + required: + - beneficiary + properties: + beneficiary: + oneOf: + - title: Individual Beneficiary + $ref: ../common/VndBeneficiary.yaml + - title: Business Beneficiary + $ref: ./BusinessBeneficiary.yaml + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: ../common/VndBeneficiary.yaml + BUSINESS: ./BusinessBeneficiary.yaml From 8a9ca974feaafe28ac60a1d074d7482aa3b157ef Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Wed, 18 Feb 2026 13:18:41 -0800 Subject: [PATCH 2/8] add --- .../schemas/external_accounts/BaseExternalAccountInfo.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index cc967a8c..166eaeef 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -25,4 +25,4 @@ discriminator: MYR_ACCOUNT: ./MyrExternalAccountInfo.yaml THB_ACCOUNT: ./ThbExternalAccountInfo.yaml USD_ACCOUNT: ./UsdExternalAccountInfo.yaml - VND_ACCOUNT: ./VndExternalAccountInfo.yaml + VND_ACCOUNT: ./VndExternalAccountInfo.yaml \ No newline at end of file From 0fee706436ca0fe2302294d8c1e551d7099b6ef9 Mon Sep 17 00:00:00 2001 From: Peng Ying Date: Wed, 18 Feb 2026 20:22:11 -0800 Subject: [PATCH 3/8] feat: adding external account validation schema (#206) Added beneficiary name verification fields to the External Account schema. - Added a new `BeneficiaryVerificationStatus` enum with values: `MATCHED`, `PARTIAL_MATCH`, `NOT_MATCHED`, `UNSUPPORTED`, `CHECKED_BY_RECEIVING_FI`, and `PENDING` - Added a new `VerifiedBeneficiaryData` object schema with a `fullName` property - Extended the `ExternalAccount` schema to include: - `beneficiaryVerificationStatus` field to indicate the result of name verification - `beneficiaryVerifiedData` field to store verified account holder information 1. Create an external account with a beneficiary name 2. Verify that the API returns the appropriate verification status and verified data 3. Test each possible verification status to ensure proper handling This change enables beneficiary name verification for external accounts, which helps prevent misdirected payments by confirming that the account holder name matches the expected beneficiary. This feature enhances security and reduces the risk of fraud or errors when sending payments to external accounts. --- mintlify/openapi.yaml | 1177 +++++++++-------------------------------- openapi.yaml | 1177 +++++++++-------------------------------- 2 files changed, 510 insertions(+), 1844 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index af4f0f20..40ca32a7 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -5242,6 +5242,43 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe + UsAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5252,95 +5289,22 @@ components: discriminator: propertyName: accountType mapping: - GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' + CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' + PIX: '#/components/schemas/PixAccountExternalAccountInfo' + IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' + UPI: '#/components/schemas/UpiAccountExternalAccountInfo' + NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' + CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' 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' - BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' - DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' - HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' - IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' - INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' - MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' - MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' - THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' - USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' - VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' - GbpAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5368,6 +5332,20 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5399,78 +5377,181 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - GbpExternalAccountInfo: + BeneficiaryOneOf: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/IndividualBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ClabeAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/GbpAccountInfo' + - $ref: '#/components/schemas/ClabeAccountInfo' - 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' - PhpAccountInfo: + $ref: '#/components/schemas/BeneficiaryOneOf' + PixAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/PixAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + IbanAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IbanAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + UpiAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UpiAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + NgnAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfo' + - type: object + required: + - purposeOfPayment + - beneficiary + properties: + purposeOfPayment: + type: string + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - LOAN_PAYMENT + - TAX_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - OTHER + description: Purpose of payment + example: GOODS_OR_SERVICES + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + CadAccountInfo: type: object required: - - accountType - - bankName + - bankCode + - branchCode - accountNumber + - accountType properties: accountType: type: string enum: - - PHP_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: BDO Unibank + - 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 - example: '001234567890' - PhpBeneficiary: + description: Bank account number (7-12 digits) + example: '1234567' + minLength: 7 + maxLength: 12 + pattern: ^[0-9]{7,12}$ + CadAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/CadAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + GbpAccountInfo: type: object required: - - beneficiaryType - - fullName + - sortCode + - accountNumber + - accountType properties: - beneficiaryType: + accountType: type: string enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: + - GBP_ACCOUNT + sortCode: type: string - description: The nationality of the beneficiary - email: + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: type: string - description: The email of the beneficiary - phoneNumber: + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + PhpAccountInfo: + type: object + required: + - bankName + - accountNumber + - accountType + properties: + accountType: type: string - description: The phone number of the beneficiary - registrationNumber: + enum: + - PHP_ACCOUNT + bankName: type: string - description: The registration number of the beneficiary - countryOfResidence: + description: Name of the beneficiary's bank + example: BDO Unibank + accountNumber: type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - PhpExternalAccountInfo: + description: Bank account number + example: '001234567890' + PhpAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5479,23 +5560,14 @@ components: - 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' + $ref: '#/components/schemas/BeneficiaryOneOf' SgdAccountInfo: type: object required: - - accountType - bankName - swiftCode - accountNumber + - accountType properties: accountType: type: string @@ -5516,40 +5588,7 @@ components: type: string description: Bank account number example: '0123456789' - SgdBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - SgdExternalAccountInfo: + SgdAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5558,16 +5597,7 @@ components: - 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' + $ref: '#/components/schemas/BeneficiaryOneOf' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5615,646 +5645,16 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' - BrlExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/BrlAccountInfo' - - 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' - DkkAccountInfo: - type: object - required: - - accountType - - iban - properties: - accountType: - type: string - enum: - - DKK_ACCOUNT - iban: - type: string - description: The IBAN of the bank - swiftBic: - type: string - description: The SWIFT BIC of the bank - DkkBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - DkkExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/DkkAccountInfo' - - 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' - HkdAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - HKD_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - HkdBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - HkdExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/HkdAccountInfo' - - 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' - IdrAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - IDR_ACCOUNT - sortCode: - type: string - description: The sort code of the bank - accountNumber: - type: string - description: The account number of the bank - IdrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - IdrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IdrAccountInfo' - - 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' - InrAccountInfo: - type: object - required: - - accountType - - vpa - properties: - accountType: - type: string - enum: - - INR_ACCOUNT - vpa: - type: string - description: The VPA of the bank - InrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - InrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/InrAccountInfo' - - 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' - MxnAccountInfo: - 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}$ - MxnBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - MxnExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/MxnAccountInfo' - - 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' - MyrAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - MYR_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - MyrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - MyrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/MyrAccountInfo' - - 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' - ThbAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - THB_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - ThbBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - ThbExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ThbAccountInfo' - - 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' - UsdAccountInfo: - type: object - required: - - accountType - - accountNumber - - routingNumber - properties: - accountType: - type: string - enum: - - USD_ACCOUNT - accountNumber: - type: string - description: The account number of the bank - routingNumber: - type: string - description: The routing number of the bank - UsdBeneficiary: - type: object - required: - - beneficiaryType - - birthDate - - fullName - - nationality - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - UsdExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsdAccountInfo' - - 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' - VndAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - VND_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - VndBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - VndExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/VndAccountInfo' - - 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' ExternalAccountType: type: string enum: + - US_ACCOUNT + - CLABE + - PIX + - IBAN + - UPI + - NGN_ACCOUNT + - CAD_ACCOUNT - GBP_ACCOUNT - PHP_ACCOUNT - SGD_ACCOUNT @@ -6264,100 +5664,30 @@ components: - TRON_WALLET - POLYGON_WALLET - BASE_WALLET - - BRL_ACCOUNT - - DKK_ACCOUNT - - HKD_ACCOUNT - - IDR_ACCOUNT - - INR_ACCOUNT - - MXN_ACCOUNT - - MYR_ACCOUNT - - THB_ACCOUNT - - USD_ACCOUNT - - VND_ACCOUNT description: Type of external account or wallet - example: GBP_ACCOUNT - BrlAccountInfo: - type: object - required: - - accountType - - pixKey - - pixKeyType - - taxId - properties: - accountType: - type: string - enum: - - BRL_ACCOUNT - pixKey: - type: string - description: The PIX key of the bank - pixKeyType: - type: string - description: The type of PIX key of the bank - taxId: - type: string - description: The tax ID of the bank account - BrlBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' + example: US_ACCOUNT ExternalAccountInfoOneOf: oneOf: - - title: BRL Account - $ref: '#/components/schemas/BrlExternalAccountInfo' - - title: DKK Account - $ref: '#/components/schemas/DkkExternalAccountInfo' + - title: US Account + $ref: '#/components/schemas/UsAccountExternalAccountInfo' + - title: CLABE Account + $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' + - title: PIX Account + $ref: '#/components/schemas/PixAccountExternalAccountInfo' + - title: IBAN Account + $ref: '#/components/schemas/IbanAccountExternalAccountInfo' + - title: UPI Account + $ref: '#/components/schemas/UpiAccountExternalAccountInfo' + - title: NGN Account + $ref: '#/components/schemas/NgnAccountExternalAccountInfo' + - title: CAD Account + $ref: '#/components/schemas/CadAccountExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpExternalAccountInfo' - - title: HKD Account - $ref: '#/components/schemas/HkdExternalAccountInfo' - - title: IDR Account - $ref: '#/components/schemas/IdrExternalAccountInfo' - - title: INR Account - $ref: '#/components/schemas/InrExternalAccountInfo' - - title: MXN Account - $ref: '#/components/schemas/MxnExternalAccountInfo' - - title: MYR Account - $ref: '#/components/schemas/MyrExternalAccountInfo' + $ref: '#/components/schemas/GbpAccountExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpExternalAccountInfo' + $ref: '#/components/schemas/PhpAccountExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdExternalAccountInfo' - - title: THB Account - $ref: '#/components/schemas/ThbExternalAccountInfo' - - title: USD Account - $ref: '#/components/schemas/UsdExternalAccountInfo' - - title: VND Account - $ref: '#/components/schemas/VndExternalAccountInfo' + $ref: '#/components/schemas/SgdAccountExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -6373,19 +5703,16 @@ components: discriminator: propertyName: accountType mapping: - BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' - DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' - HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' - IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' - INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' - MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' - MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' - THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' - USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' - VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' + CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' + PIX: '#/components/schemas/PixAccountExternalAccountInfo' + IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' + UPI: '#/components/schemas/UpiAccountExternalAccountInfo' + NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' + CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -6425,6 +5752,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: diff --git a/openapi.yaml b/openapi.yaml index af4f0f20..40ca32a7 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5242,6 +5242,43 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe + UsAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5252,95 +5289,22 @@ components: discriminator: propertyName: accountType mapping: - GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' + CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' + PIX: '#/components/schemas/PixAccountExternalAccountInfo' + IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' + UPI: '#/components/schemas/UpiAccountExternalAccountInfo' + NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' + CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' 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' - BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' - DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' - HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' - IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' - INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' - MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' - MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' - THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' - USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' - VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' - GbpAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5368,6 +5332,20 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5399,78 +5377,181 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - GbpExternalAccountInfo: + BeneficiaryOneOf: + oneOf: + - title: Individual Beneficiary + $ref: '#/components/schemas/IndividualBeneficiary' + - title: Business Beneficiary + $ref: '#/components/schemas/BusinessBeneficiary' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' + ClabeAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/GbpAccountInfo' + - $ref: '#/components/schemas/ClabeAccountInfo' - 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' - PhpAccountInfo: + $ref: '#/components/schemas/BeneficiaryOneOf' + PixAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/PixAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + IbanAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IbanAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + UpiAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UpiAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + NgnAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfo' + - type: object + required: + - purposeOfPayment + - beneficiary + properties: + purposeOfPayment: + type: string + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - LOAN_PAYMENT + - TAX_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - OTHER + description: Purpose of payment + example: GOODS_OR_SERVICES + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + CadAccountInfo: type: object required: - - accountType - - bankName + - bankCode + - branchCode - accountNumber + - accountType properties: accountType: type: string enum: - - PHP_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: BDO Unibank + - 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 - example: '001234567890' - PhpBeneficiary: + description: Bank account number (7-12 digits) + example: '1234567' + minLength: 7 + maxLength: 12 + pattern: ^[0-9]{7,12}$ + CadAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/CadAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + GbpAccountInfo: type: object required: - - beneficiaryType - - fullName + - sortCode + - accountNumber + - accountType properties: - beneficiaryType: + accountType: type: string enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: + - GBP_ACCOUNT + sortCode: type: string - description: The nationality of the beneficiary - email: + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: type: string - description: The email of the beneficiary - phoneNumber: + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpAccountExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfo' + - type: object + required: + - beneficiary + properties: + beneficiary: + $ref: '#/components/schemas/BeneficiaryOneOf' + PhpAccountInfo: + type: object + required: + - bankName + - accountNumber + - accountType + properties: + accountType: type: string - description: The phone number of the beneficiary - registrationNumber: + enum: + - PHP_ACCOUNT + bankName: type: string - description: The registration number of the beneficiary - countryOfResidence: + description: Name of the beneficiary's bank + example: BDO Unibank + accountNumber: type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - PhpExternalAccountInfo: + description: Bank account number + example: '001234567890' + PhpAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5479,23 +5560,14 @@ components: - 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' + $ref: '#/components/schemas/BeneficiaryOneOf' SgdAccountInfo: type: object required: - - accountType - bankName - swiftCode - accountNumber + - accountType properties: accountType: type: string @@ -5516,40 +5588,7 @@ components: type: string description: Bank account number example: '0123456789' - SgdBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - SgdExternalAccountInfo: + SgdAccountExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5558,16 +5597,7 @@ components: - 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' + $ref: '#/components/schemas/BeneficiaryOneOf' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5615,646 +5645,16 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' - BrlExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/BrlAccountInfo' - - 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' - DkkAccountInfo: - type: object - required: - - accountType - - iban - properties: - accountType: - type: string - enum: - - DKK_ACCOUNT - iban: - type: string - description: The IBAN of the bank - swiftBic: - type: string - description: The SWIFT BIC of the bank - DkkBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - DkkExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/DkkAccountInfo' - - 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' - HkdAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - HKD_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - HkdBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - HkdExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/HkdAccountInfo' - - 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' - IdrAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - IDR_ACCOUNT - sortCode: - type: string - description: The sort code of the bank - accountNumber: - type: string - description: The account number of the bank - IdrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - IdrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IdrAccountInfo' - - 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' - InrAccountInfo: - type: object - required: - - accountType - - vpa - properties: - accountType: - type: string - enum: - - INR_ACCOUNT - vpa: - type: string - description: The VPA of the bank - InrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - InrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/InrAccountInfo' - - 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' - MxnAccountInfo: - 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}$ - MxnBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - MxnExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/MxnAccountInfo' - - 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' - MyrAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - MYR_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - MyrBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - MyrExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/MyrAccountInfo' - - 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' - ThbAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - THB_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - ThbBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - ThbExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ThbAccountInfo' - - 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' - UsdAccountInfo: - type: object - required: - - accountType - - accountNumber - - routingNumber - properties: - accountType: - type: string - enum: - - USD_ACCOUNT - accountNumber: - type: string - description: The account number of the bank - routingNumber: - type: string - description: The routing number of the bank - UsdBeneficiary: - type: object - required: - - beneficiaryType - - birthDate - - fullName - - nationality - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - UsdExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsdAccountInfo' - - 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' - VndAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - VND_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank - VndBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' - VndExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/VndAccountInfo' - - 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' ExternalAccountType: type: string enum: + - US_ACCOUNT + - CLABE + - PIX + - IBAN + - UPI + - NGN_ACCOUNT + - CAD_ACCOUNT - GBP_ACCOUNT - PHP_ACCOUNT - SGD_ACCOUNT @@ -6264,100 +5664,30 @@ components: - TRON_WALLET - POLYGON_WALLET - BASE_WALLET - - BRL_ACCOUNT - - DKK_ACCOUNT - - HKD_ACCOUNT - - IDR_ACCOUNT - - INR_ACCOUNT - - MXN_ACCOUNT - - MYR_ACCOUNT - - THB_ACCOUNT - - USD_ACCOUNT - - VND_ACCOUNT description: Type of external account or wallet - example: GBP_ACCOUNT - BrlAccountInfo: - type: object - required: - - accountType - - pixKey - - pixKeyType - - taxId - properties: - accountType: - type: string - enum: - - BRL_ACCOUNT - pixKey: - type: string - description: The PIX key of the bank - pixKeyType: - type: string - description: The type of PIX key of the bank - taxId: - type: string - description: The tax ID of the bank account - BrlBeneficiary: - type: object - required: - - beneficiaryType - - fullName - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: The full name of the beneficiary - birthDate: - type: string - description: The birth date of the beneficiary - nationality: - type: string - description: The nationality of the beneficiary - email: - type: string - description: The email of the beneficiary - phoneNumber: - type: string - description: The phone number of the beneficiary - registrationNumber: - type: string - description: The registration number of the beneficiary - countryOfResidence: - type: string - description: The country of residence of the beneficiary - address: - $ref: '#/components/schemas/Address' + example: US_ACCOUNT ExternalAccountInfoOneOf: oneOf: - - title: BRL Account - $ref: '#/components/schemas/BrlExternalAccountInfo' - - title: DKK Account - $ref: '#/components/schemas/DkkExternalAccountInfo' + - title: US Account + $ref: '#/components/schemas/UsAccountExternalAccountInfo' + - title: CLABE Account + $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' + - title: PIX Account + $ref: '#/components/schemas/PixAccountExternalAccountInfo' + - title: IBAN Account + $ref: '#/components/schemas/IbanAccountExternalAccountInfo' + - title: UPI Account + $ref: '#/components/schemas/UpiAccountExternalAccountInfo' + - title: NGN Account + $ref: '#/components/schemas/NgnAccountExternalAccountInfo' + - title: CAD Account + $ref: '#/components/schemas/CadAccountExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpExternalAccountInfo' - - title: HKD Account - $ref: '#/components/schemas/HkdExternalAccountInfo' - - title: IDR Account - $ref: '#/components/schemas/IdrExternalAccountInfo' - - title: INR Account - $ref: '#/components/schemas/InrExternalAccountInfo' - - title: MXN Account - $ref: '#/components/schemas/MxnExternalAccountInfo' - - title: MYR Account - $ref: '#/components/schemas/MyrExternalAccountInfo' + $ref: '#/components/schemas/GbpAccountExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpExternalAccountInfo' + $ref: '#/components/schemas/PhpAccountExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdExternalAccountInfo' - - title: THB Account - $ref: '#/components/schemas/ThbExternalAccountInfo' - - title: USD Account - $ref: '#/components/schemas/UsdExternalAccountInfo' - - title: VND Account - $ref: '#/components/schemas/VndExternalAccountInfo' + $ref: '#/components/schemas/SgdAccountExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -6373,19 +5703,16 @@ components: discriminator: propertyName: accountType mapping: - BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' - DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' - HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' - IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' - INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' - MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' - MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' - THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' - USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' - VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' + CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' + PIX: '#/components/schemas/PixAccountExternalAccountInfo' + IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' + UPI: '#/components/schemas/UpiAccountExternalAccountInfo' + NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' + CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -6425,6 +5752,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: From 32cadfeb6462d270920b1c391dda5048759fdaad Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Tue, 17 Feb 2026 10:23:45 -0800 Subject: [PATCH 4/8] updates Co-authored-by: Cursor --- mintlify/openapi.yaml | 1203 +++++++++++++---- openapi.yaml | 1203 +++++++++++++---- .../BaseExternalAccountInfo.yaml | 2 +- 3 files changed, 1871 insertions(+), 537 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 40ca32a7..af4f0f20 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -5242,43 +5242,6 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account - BeneficiaryVerificationStatus: - type: string - enum: - - MATCHED - - PARTIAL_MATCH - - NOT_MATCHED - - UNSUPPORTED - - CHECKED_BY_RECEIVING_FI - - PENDING - description: | - The result of verifying the beneficiary name against the account holder name. - - | Status | Description | - |--------|-------------| - | `MATCHED` | The beneficiary name is an exact match | - | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | - | `NOT_MATCHED` | The beneficiary name does not match | - | `UNSUPPORTED` | The payment rail does not support name verification | - | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | - | `PENDING` | Verification is still in progress | - BeneficiaryVerifiedData: - type: object - properties: - fullName: - type: string - description: The verified full name of the account holder as returned by the payment rail - example: John Doe - UsAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5289,22 +5252,95 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' 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' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + GbpAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5332,20 +5368,6 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5377,152 +5399,7 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - BeneficiaryOneOf: - oneOf: - - title: Individual Beneficiary - $ref: '#/components/schemas/IndividualBeneficiary' - - title: Business Beneficiary - $ref: '#/components/schemas/BusinessBeneficiary' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - ClabeAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - PixAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - IbanAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - UpiAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - NgnAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' - - type: object - required: - - purposeOfPayment - - beneficiary - properties: - purposeOfPayment: - type: string - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - LOAN_PAYMENT - - TAX_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER - description: Purpose of payment - example: GOODS_OR_SERVICES - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - CadAccountInfo: - type: object - required: - - bankCode - - branchCode - - accountNumber - - accountType - 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}$ - CadAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/CadAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - GbpAccountInfo: - type: object - required: - - sortCode - - accountNumber - - accountType - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpAccountExternalAccountInfo: + GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/GbpAccountInfo' @@ -5531,13 +5408,22 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' PhpAccountInfo: type: object required: + - accountType - bankName - accountNumber - - accountType properties: accountType: type: string @@ -5551,7 +5437,40 @@ components: type: string description: Bank account number example: '001234567890' - PhpAccountExternalAccountInfo: + PhpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + PhpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5560,14 +5479,23 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SgdAccountInfo: type: object required: + - accountType - bankName - swiftCode - accountNumber - - accountType properties: accountType: type: string @@ -5588,7 +5516,40 @@ components: type: string description: Bank account number example: '0123456789' - SgdAccountExternalAccountInfo: + SgdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + SgdExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5597,7 +5558,16 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5645,49 +5615,749 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' - ExternalAccountType: - type: string - enum: - - US_ACCOUNT - - CLABE - - PIX - - IBAN - - UPI - - NGN_ACCOUNT - - CAD_ACCOUNT - - GBP_ACCOUNT - - PHP_ACCOUNT - - SGD_ACCOUNT - - SPARK_WALLET - - LIGHTNING - - SOLANA_WALLET - - TRON_WALLET - - POLYGON_WALLET - - BASE_WALLET - description: Type of external account or wallet - example: US_ACCOUNT + BrlExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + - 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' + DkkAccountInfo: + type: object + required: + - accountType + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + DkkBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + DkkExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - 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' + HkdAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + HkdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + HkdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - 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' + IdrAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + IdrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + IdrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - 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' + InrAccountInfo: + type: object + required: + - accountType + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The VPA of the bank + InrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + InrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + - 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' + MxnAccountInfo: + 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}$ + MxnBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MxnExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - 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' + MyrAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + MyrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MyrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' + - 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' + ThbAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + ThbBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + ThbExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfo' + - 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' + UsdAccountInfo: + type: object + required: + - accountType + - accountNumber + - routingNumber + properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank + UsdBeneficiary: + type: object + required: + - beneficiaryType + - birthDate + - fullName + - nationality + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + UsdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' + - 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' + VndAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + VndBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + VndExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' + - 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' + ExternalAccountType: + type: string + enum: + - GBP_ACCOUNT + - PHP_ACCOUNT + - SGD_ACCOUNT + - SPARK_WALLET + - LIGHTNING + - SOLANA_WALLET + - TRON_WALLET + - POLYGON_WALLET + - BASE_WALLET + - BRL_ACCOUNT + - DKK_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - INR_ACCOUNT + - MXN_ACCOUNT + - MYR_ACCOUNT + - THB_ACCOUNT + - USD_ACCOUNT + - VND_ACCOUNT + description: Type of external account or wallet + example: GBP_ACCOUNT + BrlAccountInfo: + type: object + required: + - accountType + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + BrlBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' ExternalAccountInfoOneOf: oneOf: - - title: US Account - $ref: '#/components/schemas/UsAccountExternalAccountInfo' - - title: CLABE Account - $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PixAccountExternalAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/IbanAccountExternalAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/UpiAccountExternalAccountInfo' - - title: NGN Account - $ref: '#/components/schemas/NgnAccountExternalAccountInfo' - - title: CAD Account - $ref: '#/components/schemas/CadAccountExternalAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/BrlExternalAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/DkkExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpAccountExternalAccountInfo' + $ref: '#/components/schemas/GbpExternalAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/HkdExternalAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/IdrExternalAccountInfo' + - title: INR Account + $ref: '#/components/schemas/InrExternalAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/MxnExternalAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/MyrExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpAccountExternalAccountInfo' + $ref: '#/components/schemas/PhpExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdAccountExternalAccountInfo' + $ref: '#/components/schemas/SgdExternalAccountInfo' + - title: THB Account + $ref: '#/components/schemas/ThbExternalAccountInfo' + - title: USD Account + $ref: '#/components/schemas/UsdExternalAccountInfo' + - title: VND Account + $ref: '#/components/schemas/VndExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -5703,16 +6373,19 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -5752,12 +6425,6 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false - beneficiaryVerificationStatus: - $ref: '#/components/schemas/BeneficiaryVerificationStatus' - description: The result of verifying the beneficiary name against the account holder name - beneficiaryVerifiedData: - $ref: '#/components/schemas/BeneficiaryVerifiedData' - description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: diff --git a/openapi.yaml b/openapi.yaml index 40ca32a7..af4f0f20 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -5242,43 +5242,6 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account - BeneficiaryVerificationStatus: - type: string - enum: - - MATCHED - - PARTIAL_MATCH - - NOT_MATCHED - - UNSUPPORTED - - CHECKED_BY_RECEIVING_FI - - PENDING - description: | - The result of verifying the beneficiary name against the account holder name. - - | Status | Description | - |--------|-------------| - | `MATCHED` | The beneficiary name is an exact match | - | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | - | `NOT_MATCHED` | The beneficiary name does not match | - | `UNSUPPORTED` | The payment rail does not support name verification | - | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | - | `PENDING` | Verification is still in progress | - BeneficiaryVerifiedData: - type: object - properties: - fullName: - type: string - description: The verified full name of the account holder as returned by the payment rail - example: John Doe - UsAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' BaseExternalAccountInfo: type: object required: @@ -5289,22 +5252,95 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' 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' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' + GbpAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + GbpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BaseBeneficiary: + type: object + required: + - beneficiaryType + properties: + beneficiaryType: + $ref: '#/components/schemas/BeneficiaryType' + address: + $ref: '#/components/schemas/Address' + discriminator: + propertyName: beneficiaryType + mapping: + INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' + BUSINESS: '#/components/schemas/BusinessBeneficiary' IndividualBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5332,20 +5368,6 @@ components: type: string description: Country code (ISO 3166-1 alpha-2) example: US - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' BusinessBeneficiary: allOf: - $ref: '#/components/schemas/BaseBeneficiary' @@ -5377,152 +5399,7 @@ components: - BUSINESS description: Whether the beneficiary is an individual or a business entity example: INDIVIDUAL - BeneficiaryOneOf: - oneOf: - - title: Individual Beneficiary - $ref: '#/components/schemas/IndividualBeneficiary' - - title: Business Beneficiary - $ref: '#/components/schemas/BusinessBeneficiary' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - ClabeAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - PixAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - IbanAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - UpiAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - NgnAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' - - type: object - required: - - purposeOfPayment - - beneficiary - properties: - purposeOfPayment: - type: string - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - LOAN_PAYMENT - - TAX_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - OTHER - description: Purpose of payment - example: GOODS_OR_SERVICES - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - CadAccountInfo: - type: object - required: - - bankCode - - branchCode - - accountNumber - - accountType - 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}$ - CadAccountExternalAccountInfo: - allOf: - - $ref: '#/components/schemas/BaseExternalAccountInfo' - - $ref: '#/components/schemas/CadAccountInfo' - - type: object - required: - - beneficiary - properties: - beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' - GbpAccountInfo: - type: object - required: - - sortCode - - accountNumber - - accountType - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ - GbpAccountExternalAccountInfo: + GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/GbpAccountInfo' @@ -5531,13 +5408,22 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' PhpAccountInfo: type: object required: + - accountType - bankName - accountNumber - - accountType properties: accountType: type: string @@ -5551,7 +5437,40 @@ components: type: string description: Bank account number example: '001234567890' - PhpAccountExternalAccountInfo: + PhpBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + PhpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/PhpAccountInfo' @@ -5560,14 +5479,23 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SgdAccountInfo: type: object required: + - accountType - bankName - swiftCode - accountNumber - - accountType properties: accountType: type: string @@ -5588,7 +5516,40 @@ components: type: string description: Bank account number example: '0123456789' - SgdAccountExternalAccountInfo: + SgdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + SgdExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/SgdAccountInfo' @@ -5597,7 +5558,16 @@ components: - beneficiary properties: beneficiary: - $ref: '#/components/schemas/BeneficiaryOneOf' + 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' SparkWalletExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5645,49 +5615,749 @@ components: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' - $ref: '#/components/schemas/BaseWalletInfo' - ExternalAccountType: - type: string - enum: - - US_ACCOUNT - - CLABE - - PIX - - IBAN - - UPI - - NGN_ACCOUNT - - CAD_ACCOUNT - - GBP_ACCOUNT - - PHP_ACCOUNT - - SGD_ACCOUNT - - SPARK_WALLET - - LIGHTNING - - SOLANA_WALLET - - TRON_WALLET - - POLYGON_WALLET - - BASE_WALLET - description: Type of external account or wallet - example: US_ACCOUNT + BrlExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + - 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' + DkkAccountInfo: + type: object + required: + - accountType + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + DkkBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + DkkExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - 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' + HkdAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + HkdBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + HkdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - 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' + IdrAccountInfo: + type: object + required: + - accountType + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + IdrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + IdrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - 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' + InrAccountInfo: + type: object + required: + - accountType + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + vpa: + type: string + description: The VPA of the bank + InrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + InrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + - 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' + MxnAccountInfo: + 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}$ + MxnBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MxnExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - 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' + MyrAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - MYR_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + MyrBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + MyrExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' + - 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' + ThbAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - THB_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + ThbBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + ThbExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/ThbAccountInfo' + - 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' + UsdAccountInfo: + type: object + required: + - accountType + - accountNumber + - routingNumber + properties: + accountType: + type: string + enum: + - USD_ACCOUNT + accountNumber: + type: string + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank + UsdBeneficiary: + type: object + required: + - beneficiaryType + - birthDate + - fullName + - nationality + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + UsdExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' + - 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' + VndAccountInfo: + type: object + required: + - accountType + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - VND_ACCOUNT + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + VndBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + VndExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' + - 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' + ExternalAccountType: + type: string + enum: + - GBP_ACCOUNT + - PHP_ACCOUNT + - SGD_ACCOUNT + - SPARK_WALLET + - LIGHTNING + - SOLANA_WALLET + - TRON_WALLET + - POLYGON_WALLET + - BASE_WALLET + - BRL_ACCOUNT + - DKK_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - INR_ACCOUNT + - MXN_ACCOUNT + - MYR_ACCOUNT + - THB_ACCOUNT + - USD_ACCOUNT + - VND_ACCOUNT + description: Type of external account or wallet + example: GBP_ACCOUNT + BrlAccountInfo: + type: object + required: + - accountType + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + BrlBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' ExternalAccountInfoOneOf: oneOf: - - title: US Account - $ref: '#/components/schemas/UsAccountExternalAccountInfo' - - title: CLABE Account - $ref: '#/components/schemas/ClabeAccountExternalAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PixAccountExternalAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/IbanAccountExternalAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/UpiAccountExternalAccountInfo' - - title: NGN Account - $ref: '#/components/schemas/NgnAccountExternalAccountInfo' - - title: CAD Account - $ref: '#/components/schemas/CadAccountExternalAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/BrlExternalAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/DkkExternalAccountInfo' - title: GBP Account - $ref: '#/components/schemas/GbpAccountExternalAccountInfo' + $ref: '#/components/schemas/GbpExternalAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/HkdExternalAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/IdrExternalAccountInfo' + - title: INR Account + $ref: '#/components/schemas/InrExternalAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/MxnExternalAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/MyrExternalAccountInfo' - title: PHP Account - $ref: '#/components/schemas/PhpAccountExternalAccountInfo' + $ref: '#/components/schemas/PhpExternalAccountInfo' - title: SGD Account - $ref: '#/components/schemas/SgdAccountExternalAccountInfo' + $ref: '#/components/schemas/SgdExternalAccountInfo' + - title: THB Account + $ref: '#/components/schemas/ThbExternalAccountInfo' + - title: USD Account + $ref: '#/components/schemas/UsdExternalAccountInfo' + - title: VND Account + $ref: '#/components/schemas/VndExternalAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/SparkWalletExternalAccountInfo' - title: Lightning @@ -5703,16 +6373,19 @@ components: discriminator: propertyName: accountType mapping: - US_ACCOUNT: '#/components/schemas/UsAccountExternalAccountInfo' - CLABE: '#/components/schemas/ClabeAccountExternalAccountInfo' - PIX: '#/components/schemas/PixAccountExternalAccountInfo' - IBAN: '#/components/schemas/IbanAccountExternalAccountInfo' - UPI: '#/components/schemas/UpiAccountExternalAccountInfo' - NGN_ACCOUNT: '#/components/schemas/NgnAccountExternalAccountInfo' - CAD_ACCOUNT: '#/components/schemas/CadAccountExternalAccountInfo' - GBP_ACCOUNT: '#/components/schemas/GbpAccountExternalAccountInfo' - PHP_ACCOUNT: '#/components/schemas/PhpAccountExternalAccountInfo' - SGD_ACCOUNT: '#/components/schemas/SgdAccountExternalAccountInfo' + BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' + DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' + HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' + IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' + INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' + MXN_ACCOUNT: '#/components/schemas/MxnExternalAccountInfo' + MYR_ACCOUNT: '#/components/schemas/MyrExternalAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PhpExternalAccountInfo' + SGD_ACCOUNT: '#/components/schemas/SgdExternalAccountInfo' + THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' + USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' + VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' SPARK_WALLET: '#/components/schemas/SparkWalletExternalAccountInfo' LIGHTNING: '#/components/schemas/LightningExternalAccountInfo' SOLANA_WALLET: '#/components/schemas/SolanaWalletExternalAccountInfo' @@ -5752,12 +6425,6 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false - beneficiaryVerificationStatus: - $ref: '#/components/schemas/BeneficiaryVerificationStatus' - description: The result of verifying the beneficiary name against the account holder name - beneficiaryVerifiedData: - $ref: '#/components/schemas/BeneficiaryVerifiedData' - description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index 166eaeef..cc967a8c 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -25,4 +25,4 @@ discriminator: MYR_ACCOUNT: ./MyrExternalAccountInfo.yaml THB_ACCOUNT: ./ThbExternalAccountInfo.yaml USD_ACCOUNT: ./UsdExternalAccountInfo.yaml - VND_ACCOUNT: ./VndExternalAccountInfo.yaml \ No newline at end of file + VND_ACCOUNT: ./VndExternalAccountInfo.yaml From af19932e11b57e67e57b54bfb2451a2d398d43dc Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Fri, 20 Feb 2026 10:34:43 -0800 Subject: [PATCH 5/8] remove old and update payment instructions --- mintlify/openapi.yaml | 1200 ++++++++++------- openapi.yaml | 1200 ++++++++++------- .../common/BasePaymentAccountInfo.yaml | 19 +- .../schemas/common/BrlAccountInfo.yaml | 14 + .../schemas/common/BusinessBeneficiary.yaml | 29 + .../schemas/common/CadAccountInfo.yaml | 16 +- .../schemas/common/ClabeAccountInfo.yaml | 16 - .../schemas/common/DkkAccountInfo.yaml | 15 + .../schemas/common/GbpAccountInfo.yaml | 14 + .../schemas/common/HkdAccountInfo.yaml | 14 + .../schemas/common/IbanAccountInfo.yaml | 23 - .../schemas/common/IdrAccountInfo.yaml | 14 + .../schemas/common/InrAccountInfo.yaml | 15 + .../schemas/common/MxnAccountInfo.yaml | 14 + .../schemas/common/MyrAccountInfo.yaml | 14 + .../schemas/common/NgnAccountInfo.yaml | 16 +- .../schemas/common/PaymentAccountType.yaml | 21 +- ...ntInfo.yaml => PaymentBrlAccountInfo.yaml} | 2 +- ...ntInfo.yaml => PaymentCadAccountInfo.yaml} | 2 +- ...ntInfo.yaml => PaymentDkkAccountInfo.yaml} | 2 +- ...ntInfo.yaml => PaymentGbpAccountInfo.yaml} | 2 +- .../schemas/common/PaymentHkdAccountInfo.yaml | 13 + .../schemas/common/PaymentIdrAccountInfo.yaml | 13 + ...ntInfo.yaml => PaymentInrAccountInfo.yaml} | 2 +- .../schemas/common/PaymentInstructions.yaml | 60 +- .../schemas/common/PaymentMxnAccountInfo.yaml | 13 + .../schemas/common/PaymentMyrAccountInfo.yaml | 13 + .../schemas/common/PaymentPhpAccountInfo.yaml | 13 + .../schemas/common/PaymentSgdAccountInfo.yaml | 13 + .../schemas/common/PaymentThbAccountInfo.yaml | 13 + .../schemas/common/PaymentUsdAccountInfo.yaml | 13 + .../schemas/common/PaymentVndAccountInfo.yaml | 13 + .../schemas/common/PhpAccountInfo.yaml | 14 + .../schemas/common/PixAccountInfo.yaml | 29 - .../schemas/common/SgdAccountInfo.yaml | 16 + .../schemas/common/ThbAccountInfo.yaml | 14 + .../schemas/common/UpiAccountInfo.yaml | 13 - .../schemas/common/UsAccountInfo.yaml | 33 - .../schemas/common/UsdAccountInfo.yaml | 17 + .../schemas/common/VndAccountInfo.yaml | 14 + .../external_accounts/BaseBeneficiary.yaml | 2 +- .../external_accounts/BeneficiaryOneOf.yaml | 4 +- .../BrlExternalAccountInfo.yaml | 4 +- .../BusinessBeneficiary.yaml | 23 - .../DkkExternalAccountInfo.yaml | 4 +- .../GbpExternalAccountInfo.yaml | 4 +- .../HkdExternalAccountInfo.yaml | 4 +- .../IdrExternalAccountInfo.yaml | 4 +- .../InrExternalAccountInfo.yaml | 4 +- .../MxnExternalAccountInfo.yaml | 4 +- .../MyrExternalAccountInfo.yaml | 4 +- .../PhpExternalAccountInfo.yaml | 4 +- .../SgdExternalAccountInfo.yaml | 4 +- .../ThbExternalAccountInfo.yaml | 4 +- .../UsdExternalAccountInfo.yaml | 4 +- .../VndExternalAccountInfo.yaml | 4 +- 56 files changed, 1951 insertions(+), 1121 deletions(-) create mode 100644 openapi/components/schemas/common/BusinessBeneficiary.yaml delete mode 100644 openapi/components/schemas/common/ClabeAccountInfo.yaml delete mode 100644 openapi/components/schemas/common/IbanAccountInfo.yaml rename openapi/components/schemas/common/{PaymentPixAccountInfo.yaml => PaymentBrlAccountInfo.yaml} (59%) rename openapi/components/schemas/common/{PaymentUsAccountInfo.yaml => PaymentCadAccountInfo.yaml} (90%) rename openapi/components/schemas/common/{PaymentIbanAccountInfo.yaml => PaymentDkkAccountInfo.yaml} (90%) rename openapi/components/schemas/common/{PaymentClabeAccountInfo.yaml => PaymentGbpAccountInfo.yaml} (90%) create mode 100644 openapi/components/schemas/common/PaymentHkdAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentIdrAccountInfo.yaml rename openapi/components/schemas/common/{PaymentUpiAccountInfo.yaml => PaymentInrAccountInfo.yaml} (59%) create mode 100644 openapi/components/schemas/common/PaymentMxnAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentMyrAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentPhpAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentSgdAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentThbAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentUsdAccountInfo.yaml create mode 100644 openapi/components/schemas/common/PaymentVndAccountInfo.yaml delete mode 100644 openapi/components/schemas/common/PixAccountInfo.yaml delete mode 100644 openapi/components/schemas/common/UpiAccountInfo.yaml delete mode 100644 openapi/components/schemas/common/UsAccountInfo.yaml delete mode 100644 openapi/components/schemas/external_accounts/BusinessBeneficiary.yaml diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index af4f0f20..aaeca601 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -4765,10 +4765,10 @@ components: example: 12550 currency: $ref: '#/components/schemas/Currency' - PaymentClabeAccountInfo: + PaymentUsdAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' - type: object required: - reference @@ -4781,62 +4781,467 @@ components: type: object required: - accountType - properties: - accountType: - $ref: '#/components/schemas/PaymentAccountType' - discriminator: - propertyName: accountType - mapping: - CLABE: '#/components/schemas/PaymentClabeAccountInfo' - US_ACCOUNT: '#/components/schemas/PaymentUsAccountInfo' - PIX: '#/components/schemas/PaymentPixAccountInfo' - IBAN: '#/components/schemas/PaymentIbanAccountInfo' - UPI: '#/components/schemas/PaymentUpiAccountInfo' - NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' - SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' - LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' - SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' - TRON_WALLET: '#/components/schemas/PaymentTronWalletInfo' - POLYGON_WALLET: '#/components/schemas/PaymentPolygonWalletInfo' - BASE_WALLET: '#/components/schemas/PaymentBaseWalletInfo' - UsAccountInfo: - type: object - required: + properties: + accountType: + $ref: '#/components/schemas/PaymentAccountType' + discriminator: + propertyName: accountType + mapping: + USD_ACCOUNT: '#/components/schemas/PaymentUsdAccountInfo' + BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' + MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' + DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' + NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' + CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' + GBP_ACCOUNT: '#/components/schemas/PaymentGbpAccountInfo' + HKD_ACCOUNT: '#/components/schemas/PaymentHkdAccountInfo' + IDR_ACCOUNT: '#/components/schemas/PaymentIdrAccountInfo' + MYR_ACCOUNT: '#/components/schemas/PaymentMyrAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PaymentPhpAccountInfo' + SGD_ACCOUNT: '#/components/schemas/PaymentSgdAccountInfo' + THB_ACCOUNT: '#/components/schemas/PaymentThbAccountInfo' + VND_ACCOUNT: '#/components/schemas/PaymentVndAccountInfo' + SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' + LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' + SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' + TRON_WALLET: '#/components/schemas/PaymentTronWalletInfo' + POLYGON_WALLET: '#/components/schemas/PaymentPolygonWalletInfo' + BASE_WALLET: '#/components/schemas/PaymentBaseWalletInfo' + BrlAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + countries: + type: array + items: + type: string + enum: + - BR + paymentRails: + type: array + items: + type: string + enum: + - PIX + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + PaymentBrlAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + MxnAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - clabeNumber + properties: + accountType: + type: string + enum: + - MXN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MX + 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}$ + PaymentMxnAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + DkkAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + countries: + type: array + items: + type: string + enum: + - DK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + PaymentDkkAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + InrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - IN + paymentRails: + type: array + items: + type: string + enum: + - UPI + - IMPS + vpa: + type: string + description: The VPA of the bank + PaymentInrAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + NgnAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - accountNumber + - bankName + properties: + accountType: + type: string + enum: + - NGN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - NG + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + accountNumber: + type: string + description: Nigerian bank account number + example: '0123456789' + minLength: 10 + maxLength: 10 + pattern: ^[0-9]{10}$ + bankName: + type: string + description: Name of the bank + example: First Bank of Nigeria + PaymentNgnAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + CadAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankCode + - branchCode + - accountNumber + properties: + accountType: + type: string + enum: + - CAD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - CA + 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}$ + PaymentCadAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/CadAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + GbpAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - GB + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + PaymentGbpAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + HkdAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - HK + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentHkdAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + IdrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - ID + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentIdrAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + MyrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankName - accountNumber - - routingNumber - - accountCategory - - accountType properties: accountType: type: string enum: - - US_ACCOUNT - accountNumber: - type: string - description: US bank account number - example: '123456789' - routingNumber: - type: string - description: ACH routing number (9 digits) - example: '987654321' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]{9}$ - accountCategory: - type: string - enum: - - CHECKING - - SAVINGS - description: Type of account (checking or savings) - example: CHECKING + - MYR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MY + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string - description: Name of the bank - example: Chase Bank - PaymentUsAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentMyrAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' - type: object required: - reference @@ -4845,68 +5250,98 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - PixAccountInfo: + PhpAccountInfo: type: object required: - - pixKey - - pixKeyType - - taxId - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - PIX - pixKey: - type: string - description: PIX key for Brazilian instant payments - example: '55119876543210' - pixKeyType: + - PHP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - PH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: type: string - enum: - - CPF - - CNPJ - - EMAIL - - PHONE - - RANDOM - description: Type of PIX key being used - example: PHONE - taxId: + description: Name of the beneficiary's bank + example: BDO Unibank + accountNumber: type: string - description: Tax ID of the account holder - example: '1234567890' - PaymentPixAccountInfo: + description: Bank account number + example: '001234567890' + PaymentPhpAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - IbanAccountInfo: + - $ref: '#/components/schemas/PhpAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + SgdAccountInfo: type: object required: - - iban - - swiftBic - accountType + - countries + - paymentRails + - bankName + - swiftCode + - accountNumber properties: accountType: type: string enum: - - IBAN - iban: + - SGD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - SG + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER + bankName: type: string - description: International Bank Account Number - example: DE89370400440532013000 - minLength: 15 - maxLength: 34 - swiftBic: + description: Name of the beneficiary's bank + example: DBS Bank Ltd + swiftCode: type: string description: SWIFT/BIC code (8 or 11 characters) - example: DEUTDEFF + example: DBSSSGSG minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ - PaymentIbanAccountInfo: + accountNumber: + type: string + description: Bank account number + example: '0123456789' + PaymentSgdAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' + - $ref: '#/components/schemas/SgdAccountInfo' - type: object required: - reference @@ -4915,50 +5350,84 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - UpiAccountInfo: + ThbAccountInfo: type: object required: - - vpa - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - UPI - vpa: + - THB_ACCOUNT + countries: + type: array + items: + type: string + enum: + - TH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: type: string - description: Virtual Payment Address for UPI payments - example: somecustomers@okbank - PaymentUpiAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentThbAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - NgnAccountInfo: + - $ref: '#/components/schemas/ThbAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + VndAccountInfo: type: object required: - - accountNumber - - bankName - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - NGN_ACCOUNT - accountNumber: - type: string - description: Nigerian bank account number - example: '0123456789' - minLength: 10 - maxLength: 10 - pattern: ^[0-9]{10}$ + - VND_ACCOUNT + countries: + type: array + items: + type: string + enum: + - VN + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string - description: Name of the bank - example: First Bank of Nigeria - PaymentNgnAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentVndAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' - type: object required: - reference @@ -5118,12 +5587,21 @@ components: PaymentAccountType: type: string enum: - - CLABE - - US_ACCOUNT - - PIX - - IBAN - - UPI + - USD_ACCOUNT + - BRL_ACCOUNT + - MXN_ACCOUNT + - DKK_ACCOUNT + - INR_ACCOUNT - NGN_ACCOUNT + - CAD_ACCOUNT + - GBP_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - MYR_ACCOUNT + - PHP_ACCOUNT + - SGD_ACCOUNT + - THB_ACCOUNT + - VND_ACCOUNT - SPARK_WALLET - LIGHTNING - SOLANA_WALLET @@ -5131,24 +5609,41 @@ components: - POLYGON_WALLET - BASE_WALLET description: Type of payment account or wallet - example: US_ACCOUNT - ClabeAccountInfo: + example: USD_ACCOUNT + UsdAccountInfo: type: object required: - - clabeNumber - accountType + - countries + - paymentRails + - accountNumber + - routingNumber properties: accountType: type: string enum: - - CLABE - clabeNumber: + - USD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - US + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW + accountNumber: type: string - description: 18-digit CLABE number (Mexican banking standard) - example: '123456789012345678' - minLength: 18 - maxLength: 18 - pattern: ^[0-9]{18}$ + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank PaymentInstructions: type: object required: @@ -5164,16 +5659,36 @@ components: example: true accountOrWalletInfo: oneOf: - - title: CLABE Account - $ref: '#/components/schemas/PaymentClabeAccountInfo' - - title: US Bank Account - $ref: '#/components/schemas/PaymentUsAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PaymentPixAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/PaymentIbanAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/PaymentUpiAccountInfo' + - title: USD Bank Account + $ref: '#/components/schemas/PaymentUsdAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/PaymentBrlAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/PaymentMxnAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/PaymentDkkAccountInfo' + - title: INR Account + $ref: '#/components/schemas/PaymentInrAccountInfo' + - title: NGN Account + $ref: '#/components/schemas/PaymentNgnAccountInfo' + - title: CAD Account + $ref: '#/components/schemas/PaymentCadAccountInfo' + - title: GBP Account + $ref: '#/components/schemas/PaymentGbpAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/PaymentHkdAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/PaymentIdrAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/PaymentMyrAccountInfo' + - title: PHP Account + $ref: '#/components/schemas/PaymentPhpAccountInfo' + - title: SGD Account + $ref: '#/components/schemas/PaymentSgdAccountInfo' + - title: THB Account + $ref: '#/components/schemas/PaymentThbAccountInfo' + - title: VND Account + $ref: '#/components/schemas/PaymentVndAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/PaymentSparkWalletInfo' - title: Lightning Invoice @@ -5189,11 +5704,21 @@ components: discriminator: propertyName: accountType mapping: - CLABE: '#/components/schemas/PaymentClabeAccountInfo' - US_ACCOUNT: '#/components/schemas/PaymentUsAccountInfo' - PIX: '#/components/schemas/PaymentPixAccountInfo' - IBAN: '#/components/schemas/PaymentIbanAccountInfo' - UPI: '#/components/schemas/PaymentUpiAccountInfo' + USD_ACCOUNT: '#/components/schemas/PaymentUsdAccountInfo' + BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' + MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' + DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' + NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' + CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' + GBP_ACCOUNT: '#/components/schemas/PaymentGbpAccountInfo' + HKD_ACCOUNT: '#/components/schemas/PaymentHkdAccountInfo' + IDR_ACCOUNT: '#/components/schemas/PaymentIdrAccountInfo' + MYR_ACCOUNT: '#/components/schemas/PaymentMyrAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PaymentPhpAccountInfo' + SGD_ACCOUNT: '#/components/schemas/PaymentSgdAccountInfo' + THB_ACCOUNT: '#/components/schemas/PaymentThbAccountInfo' + VND_ACCOUNT: '#/components/schemas/PaymentVndAccountInfo' SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' @@ -5242,6 +5767,33 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe BaseExternalAccountInfo: type: object required: @@ -5271,29 +5823,6 @@ components: THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' - GbpAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ GbpBeneficiary: type: object required: @@ -5321,84 +5850,42 @@ components: description: The phone number of the beneficiary registrationNumber: type: string - description: The registration number of the beneficiary + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BusinessBeneficiary: + type: object + required: + - beneficiaryType + - legalName + properties: + beneficiaryType: + type: string + enum: + - BUSINESS + legalName: + type: string + description: The legal name of the business + registrationNumber: + type: string + description: The registration number of the business + taxId: + type: string + description: The tax identification number of the business + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary countryOfResidence: type: string description: The country of residence of the beneficiary address: $ref: '#/components/schemas/Address' - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - IndividualBeneficiary: - allOf: - - $ref: '#/components/schemas/BaseBeneficiary' - - type: object - required: - - fullName - - birthDate - - nationality - - beneficiaryType - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: Individual's full name - example: John Michael Doe - birthDate: - type: string - format: date - description: Date of birth in ISO 8601 format (YYYY-MM-DD) - example: '1990-01-15' - nationality: - type: string - description: Country code (ISO 3166-1 alpha-2) - example: US - BusinessBeneficiary: - allOf: - - $ref: '#/components/schemas/BaseBeneficiary' - - type: object - required: - - legalName - - beneficiaryType - properties: - beneficiaryType: - type: string - enum: - - BUSINESS - legalName: - type: string - description: Legal name of the business - example: Acme Corporation, Inc. - registrationNumber: - type: string - description: Business registration number - example: BRN-123456789 - taxId: - type: string - description: Tax identification number - example: EIN-987654321 - BeneficiaryType: - type: string - enum: - - INDIVIDUAL - - BUSINESS - description: Whether the beneficiary is an individual or a business entity - example: INDIVIDUAL GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5418,25 +5905,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/GbpBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - PhpAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - PHP_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: BDO Unibank - accountNumber: - type: string - description: Bank account number - example: '001234567890' PhpBeneficiary: type: object required: @@ -5489,33 +5957,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/PhpBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - SgdAccountInfo: - type: object - required: - - accountType - - bankName - - swiftCode - - accountNumber - properties: - accountType: - type: string - enum: - - SGD_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: DBS Bank Ltd - swiftCode: - type: string - description: SWIFT/BIC code (8 or 11 characters) - example: DBSSSGSG - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ - accountNumber: - type: string - description: Bank account number - example: '0123456789' SgdBeneficiary: type: object required: @@ -5634,22 +6075,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/BrlBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - DkkAccountInfo: - type: object - required: - - accountType - - iban - properties: - accountType: - type: string - enum: - - DKK_ACCOUNT - iban: - type: string - description: The IBAN of the bank - swiftBic: - type: string - description: The SWIFT BIC of the bank DkkBeneficiary: type: object required: @@ -5702,23 +6127,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/DkkBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - HkdAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - HKD_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank HkdBeneficiary: type: object required: @@ -5771,23 +6179,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/HkdBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - IdrAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - IDR_ACCOUNT - sortCode: - type: string - description: The sort code of the bank - accountNumber: - type: string - description: The account number of the bank IdrBeneficiary: type: object required: @@ -5840,19 +6231,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/IdrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - InrAccountInfo: - type: object - required: - - accountType - - vpa - properties: - accountType: - type: string - enum: - - INR_ACCOUNT - vpa: - type: string - description: The VPA of the bank InrBeneficiary: type: object required: @@ -5905,23 +6283,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/InrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - MxnAccountInfo: - 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}$ MxnBeneficiary: type: object required: @@ -5974,23 +6335,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/MxnBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - MyrAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - MYR_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank MyrBeneficiary: type: object required: @@ -6043,23 +6387,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/MyrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - ThbAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - THB_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank ThbBeneficiary: type: object required: @@ -6112,23 +6439,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/ThbBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - UsdAccountInfo: - type: object - required: - - accountType - - accountNumber - - routingNumber - properties: - accountType: - type: string - enum: - - USD_ACCOUNT - accountNumber: - type: string - description: The account number of the bank - routingNumber: - type: string - description: The routing number of the bank UsdBeneficiary: type: object required: @@ -6183,23 +6493,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/UsdBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - VndAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - VND_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank VndBeneficiary: type: object required: @@ -6276,27 +6569,6 @@ components: - VND_ACCOUNT description: Type of external account or wallet example: GBP_ACCOUNT - BrlAccountInfo: - type: object - required: - - accountType - - pixKey - - pixKeyType - - taxId - properties: - accountType: - type: string - enum: - - BRL_ACCOUNT - pixKey: - type: string - description: The PIX key of the bank - pixKeyType: - type: string - description: The type of PIX key of the bank - taxId: - type: string - description: The tax ID of the bank account BrlBeneficiary: type: object required: @@ -6425,6 +6697,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: @@ -6553,13 +6831,7 @@ components: description: Optional memo or description for the payment example: 'Payment for invoice #1234' counterpartyInformation: - type: object - description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. - additionalProperties: true - example: - FULL_NAME: John Sender - BIRTH_DATE: '1985-06-15' - NATIONALITY: DE + $ref: '#/components/schemas/CounterpartyInformation' discriminator: propertyName: type mapping: @@ -6818,10 +7090,6 @@ components: type: string description: The ID of the quote that was used to trigger this payment example: Quote:019542f5-b3e7-1d02-0000-000000000006 - originalTransactionId: - type: string - description: ID of the original transaction that this transaction is retrying, if applicable - example: Transaction:019542f5-b3e7-1d02-0000-000000000003 paymentInstructions: type: array description: Payment instructions for executing the payment. @@ -6925,6 +7193,14 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + CounterpartyInformation: + type: object + description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. + additionalProperties: true + example: + FULL_NAME: John Sender + BIRTH_DATE: '1985-06-15' + NATIONALITY: DE CurrencyPreference: type: object required: @@ -7329,7 +7605,9 @@ components: example: 1000 immediatelyExecute: type: boolean - description: Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. + description: |- + Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. + This can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). example: false description: type: string diff --git a/openapi.yaml b/openapi.yaml index af4f0f20..aaeca601 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -4765,10 +4765,10 @@ components: example: 12550 currency: $ref: '#/components/schemas/Currency' - PaymentClabeAccountInfo: + PaymentUsdAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/ClabeAccountInfo' + - $ref: '#/components/schemas/UsdAccountInfo' - type: object required: - reference @@ -4781,62 +4781,467 @@ components: type: object required: - accountType - properties: - accountType: - $ref: '#/components/schemas/PaymentAccountType' - discriminator: - propertyName: accountType - mapping: - CLABE: '#/components/schemas/PaymentClabeAccountInfo' - US_ACCOUNT: '#/components/schemas/PaymentUsAccountInfo' - PIX: '#/components/schemas/PaymentPixAccountInfo' - IBAN: '#/components/schemas/PaymentIbanAccountInfo' - UPI: '#/components/schemas/PaymentUpiAccountInfo' - NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' - SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' - LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' - SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' - TRON_WALLET: '#/components/schemas/PaymentTronWalletInfo' - POLYGON_WALLET: '#/components/schemas/PaymentPolygonWalletInfo' - BASE_WALLET: '#/components/schemas/PaymentBaseWalletInfo' - UsAccountInfo: - type: object - required: + properties: + accountType: + $ref: '#/components/schemas/PaymentAccountType' + discriminator: + propertyName: accountType + mapping: + USD_ACCOUNT: '#/components/schemas/PaymentUsdAccountInfo' + BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' + MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' + DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' + NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' + CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' + GBP_ACCOUNT: '#/components/schemas/PaymentGbpAccountInfo' + HKD_ACCOUNT: '#/components/schemas/PaymentHkdAccountInfo' + IDR_ACCOUNT: '#/components/schemas/PaymentIdrAccountInfo' + MYR_ACCOUNT: '#/components/schemas/PaymentMyrAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PaymentPhpAccountInfo' + SGD_ACCOUNT: '#/components/schemas/PaymentSgdAccountInfo' + THB_ACCOUNT: '#/components/schemas/PaymentThbAccountInfo' + VND_ACCOUNT: '#/components/schemas/PaymentVndAccountInfo' + SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' + LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' + SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' + TRON_WALLET: '#/components/schemas/PaymentTronWalletInfo' + POLYGON_WALLET: '#/components/schemas/PaymentPolygonWalletInfo' + BASE_WALLET: '#/components/schemas/PaymentBaseWalletInfo' + BrlAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - pixKey + - pixKeyType + - taxId + properties: + accountType: + type: string + enum: + - BRL_ACCOUNT + countries: + type: array + items: + type: string + enum: + - BR + paymentRails: + type: array + items: + type: string + enum: + - PIX + pixKey: + type: string + description: The PIX key of the bank + pixKeyType: + type: string + description: The type of PIX key of the bank + taxId: + type: string + description: The tax ID of the bank account + PaymentBrlAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/BrlAccountInfo' + MxnAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - clabeNumber + properties: + accountType: + type: string + enum: + - MXN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MX + 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}$ + PaymentMxnAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/MxnAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + DkkAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - iban + properties: + accountType: + type: string + enum: + - DKK_ACCOUNT + countries: + type: array + items: + type: string + enum: + - DK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + PaymentDkkAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/DkkAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + InrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - vpa + properties: + accountType: + type: string + enum: + - INR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - IN + paymentRails: + type: array + items: + type: string + enum: + - UPI + - IMPS + vpa: + type: string + description: The VPA of the bank + PaymentInrAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/InrAccountInfo' + NgnAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - accountNumber + - bankName + properties: + accountType: + type: string + enum: + - NGN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - NG + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + accountNumber: + type: string + description: Nigerian bank account number + example: '0123456789' + minLength: 10 + maxLength: 10 + pattern: ^[0-9]{10}$ + bankName: + type: string + description: Name of the bank + example: First Bank of Nigeria + PaymentNgnAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/NgnAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + CadAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankCode + - branchCode + - accountNumber + properties: + accountType: + type: string + enum: + - CAD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - CA + 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}$ + PaymentCadAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/CadAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + GbpAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - GBP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - GB + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS + sortCode: + type: string + description: UK bank sort code (6 digits, may include hyphens) + example: 20-00-00 + pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ + accountNumber: + type: string + description: UK bank account number (8 digits) + example: '12345678' + minLength: 8 + maxLength: 8 + pattern: ^[0-9]{8}$ + PaymentGbpAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/GbpAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + HkdAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankName + - accountNumber + properties: + accountType: + type: string + enum: + - HKD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - HK + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: + type: string + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentHkdAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/HkdAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + IdrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - sortCode + - accountNumber + properties: + accountType: + type: string + enum: + - IDR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - ID + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + sortCode: + type: string + description: The sort code of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentIdrAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/IdrAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + MyrAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - bankName - accountNumber - - routingNumber - - accountCategory - - accountType properties: accountType: type: string enum: - - US_ACCOUNT - accountNumber: - type: string - description: US bank account number - example: '123456789' - routingNumber: - type: string - description: ACH routing number (9 digits) - example: '987654321' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]{9}$ - accountCategory: - type: string - enum: - - CHECKING - - SAVINGS - description: Type of account (checking or savings) - example: CHECKING + - MYR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MY + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string - description: Name of the bank - example: Chase Bank - PaymentUsAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentMyrAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/UsAccountInfo' + - $ref: '#/components/schemas/MyrAccountInfo' - type: object required: - reference @@ -4845,68 +5250,98 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - PixAccountInfo: + PhpAccountInfo: type: object required: - - pixKey - - pixKeyType - - taxId - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - PIX - pixKey: - type: string - description: PIX key for Brazilian instant payments - example: '55119876543210' - pixKeyType: + - PHP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - PH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: type: string - enum: - - CPF - - CNPJ - - EMAIL - - PHONE - - RANDOM - description: Type of PIX key being used - example: PHONE - taxId: + description: Name of the beneficiary's bank + example: BDO Unibank + accountNumber: type: string - description: Tax ID of the account holder - example: '1234567890' - PaymentPixAccountInfo: + description: Bank account number + example: '001234567890' + PaymentPhpAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/PixAccountInfo' - IbanAccountInfo: + - $ref: '#/components/schemas/PhpAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + SgdAccountInfo: type: object required: - - iban - - swiftBic - accountType + - countries + - paymentRails + - bankName + - swiftCode + - accountNumber properties: accountType: type: string enum: - - IBAN - iban: + - SGD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - SG + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER + bankName: type: string - description: International Bank Account Number - example: DE89370400440532013000 - minLength: 15 - maxLength: 34 - swiftBic: + description: Name of the beneficiary's bank + example: DBS Bank Ltd + swiftCode: type: string description: SWIFT/BIC code (8 or 11 characters) - example: DEUTDEFF + example: DBSSSGSG minLength: 8 maxLength: 11 pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ - PaymentIbanAccountInfo: + accountNumber: + type: string + description: Bank account number + example: '0123456789' + PaymentSgdAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/IbanAccountInfo' + - $ref: '#/components/schemas/SgdAccountInfo' - type: object required: - reference @@ -4915,50 +5350,84 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF - UpiAccountInfo: + ThbAccountInfo: type: object required: - - vpa - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - UPI - vpa: + - THB_ACCOUNT + countries: + type: array + items: + type: string + enum: + - TH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER + bankName: type: string - description: Virtual Payment Address for UPI payments - example: somecustomers@okbank - PaymentUpiAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentThbAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/UpiAccountInfo' - NgnAccountInfo: + - $ref: '#/components/schemas/ThbAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF + VndAccountInfo: type: object required: - - accountNumber - - bankName - accountType + - countries + - paymentRails + - bankName + - accountNumber properties: accountType: type: string enum: - - NGN_ACCOUNT - accountNumber: - type: string - description: Nigerian bank account number - example: '0123456789' - minLength: 10 - maxLength: 10 - pattern: ^[0-9]{10}$ + - VND_ACCOUNT + countries: + type: array + items: + type: string + enum: + - VN + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string - description: Name of the bank - example: First Bank of Nigeria - PaymentNgnAccountInfo: + description: The bank name of the bank + accountNumber: + type: string + description: The account number of the bank + PaymentVndAccountInfo: allOf: - $ref: '#/components/schemas/BasePaymentAccountInfo' - - $ref: '#/components/schemas/NgnAccountInfo' + - $ref: '#/components/schemas/VndAccountInfo' - type: object required: - reference @@ -5118,12 +5587,21 @@ components: PaymentAccountType: type: string enum: - - CLABE - - US_ACCOUNT - - PIX - - IBAN - - UPI + - USD_ACCOUNT + - BRL_ACCOUNT + - MXN_ACCOUNT + - DKK_ACCOUNT + - INR_ACCOUNT - NGN_ACCOUNT + - CAD_ACCOUNT + - GBP_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - MYR_ACCOUNT + - PHP_ACCOUNT + - SGD_ACCOUNT + - THB_ACCOUNT + - VND_ACCOUNT - SPARK_WALLET - LIGHTNING - SOLANA_WALLET @@ -5131,24 +5609,41 @@ components: - POLYGON_WALLET - BASE_WALLET description: Type of payment account or wallet - example: US_ACCOUNT - ClabeAccountInfo: + example: USD_ACCOUNT + UsdAccountInfo: type: object required: - - clabeNumber - accountType + - countries + - paymentRails + - accountNumber + - routingNumber properties: accountType: type: string enum: - - CLABE - clabeNumber: + - USD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - US + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW + accountNumber: type: string - description: 18-digit CLABE number (Mexican banking standard) - example: '123456789012345678' - minLength: 18 - maxLength: 18 - pattern: ^[0-9]{18}$ + description: The account number of the bank + routingNumber: + type: string + description: The routing number of the bank PaymentInstructions: type: object required: @@ -5164,16 +5659,36 @@ components: example: true accountOrWalletInfo: oneOf: - - title: CLABE Account - $ref: '#/components/schemas/PaymentClabeAccountInfo' - - title: US Bank Account - $ref: '#/components/schemas/PaymentUsAccountInfo' - - title: PIX Account - $ref: '#/components/schemas/PaymentPixAccountInfo' - - title: IBAN Account - $ref: '#/components/schemas/PaymentIbanAccountInfo' - - title: UPI Account - $ref: '#/components/schemas/PaymentUpiAccountInfo' + - title: USD Bank Account + $ref: '#/components/schemas/PaymentUsdAccountInfo' + - title: BRL Account + $ref: '#/components/schemas/PaymentBrlAccountInfo' + - title: MXN Account + $ref: '#/components/schemas/PaymentMxnAccountInfo' + - title: DKK Account + $ref: '#/components/schemas/PaymentDkkAccountInfo' + - title: INR Account + $ref: '#/components/schemas/PaymentInrAccountInfo' + - title: NGN Account + $ref: '#/components/schemas/PaymentNgnAccountInfo' + - title: CAD Account + $ref: '#/components/schemas/PaymentCadAccountInfo' + - title: GBP Account + $ref: '#/components/schemas/PaymentGbpAccountInfo' + - title: HKD Account + $ref: '#/components/schemas/PaymentHkdAccountInfo' + - title: IDR Account + $ref: '#/components/schemas/PaymentIdrAccountInfo' + - title: MYR Account + $ref: '#/components/schemas/PaymentMyrAccountInfo' + - title: PHP Account + $ref: '#/components/schemas/PaymentPhpAccountInfo' + - title: SGD Account + $ref: '#/components/schemas/PaymentSgdAccountInfo' + - title: THB Account + $ref: '#/components/schemas/PaymentThbAccountInfo' + - title: VND Account + $ref: '#/components/schemas/PaymentVndAccountInfo' - title: Spark Wallet $ref: '#/components/schemas/PaymentSparkWalletInfo' - title: Lightning Invoice @@ -5189,11 +5704,21 @@ components: discriminator: propertyName: accountType mapping: - CLABE: '#/components/schemas/PaymentClabeAccountInfo' - US_ACCOUNT: '#/components/schemas/PaymentUsAccountInfo' - PIX: '#/components/schemas/PaymentPixAccountInfo' - IBAN: '#/components/schemas/PaymentIbanAccountInfo' - UPI: '#/components/schemas/PaymentUpiAccountInfo' + USD_ACCOUNT: '#/components/schemas/PaymentUsdAccountInfo' + BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' + MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' + DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' + NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' + CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' + GBP_ACCOUNT: '#/components/schemas/PaymentGbpAccountInfo' + HKD_ACCOUNT: '#/components/schemas/PaymentHkdAccountInfo' + IDR_ACCOUNT: '#/components/schemas/PaymentIdrAccountInfo' + MYR_ACCOUNT: '#/components/schemas/PaymentMyrAccountInfo' + PHP_ACCOUNT: '#/components/schemas/PaymentPhpAccountInfo' + SGD_ACCOUNT: '#/components/schemas/PaymentSgdAccountInfo' + THB_ACCOUNT: '#/components/schemas/PaymentThbAccountInfo' + VND_ACCOUNT: '#/components/schemas/PaymentVndAccountInfo' SPARK_WALLET: '#/components/schemas/PaymentSparkWalletInfo' LIGHTNING: '#/components/schemas/PaymentLightningInvoiceInfo' SOLANA_WALLET: '#/components/schemas/PaymentSolanaWalletInfo' @@ -5242,6 +5767,33 @@ components: - UNDER_REVIEW - INACTIVE description: Status of an external account + BeneficiaryVerificationStatus: + type: string + enum: + - MATCHED + - PARTIAL_MATCH + - NOT_MATCHED + - UNSUPPORTED + - CHECKED_BY_RECEIVING_FI + - PENDING + description: | + The result of verifying the beneficiary name against the account holder name. + + | Status | Description | + |--------|-------------| + | `MATCHED` | The beneficiary name is an exact match | + | `PARTIAL_MATCH` | The beneficiary name is a fuzzy match | + | `NOT_MATCHED` | The beneficiary name does not match | + | `UNSUPPORTED` | The payment rail does not support name verification | + | `CHECKED_BY_RECEIVING_FI` | Verification is deferred to the receiving financial institution (e.g. ACH) | + | `PENDING` | Verification is still in progress | + BeneficiaryVerifiedData: + type: object + properties: + fullName: + type: string + description: The verified full name of the account holder as returned by the payment rail + example: John Doe BaseExternalAccountInfo: type: object required: @@ -5271,29 +5823,6 @@ components: THB_ACCOUNT: '#/components/schemas/ThbExternalAccountInfo' USD_ACCOUNT: '#/components/schemas/UsdExternalAccountInfo' VND_ACCOUNT: '#/components/schemas/VndExternalAccountInfo' - GbpAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - GBP_ACCOUNT - sortCode: - type: string - description: UK bank sort code (6 digits, may include hyphens) - example: 20-00-00 - pattern: ^[0-9]{2}-?[0-9]{2}-?[0-9]{2}$ - accountNumber: - type: string - description: UK bank account number (8 digits) - example: '12345678' - minLength: 8 - maxLength: 8 - pattern: ^[0-9]{8}$ GbpBeneficiary: type: object required: @@ -5321,84 +5850,42 @@ components: description: The phone number of the beneficiary registrationNumber: type: string - description: The registration number of the beneficiary + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + BusinessBeneficiary: + type: object + required: + - beneficiaryType + - legalName + properties: + beneficiaryType: + type: string + enum: + - BUSINESS + legalName: + type: string + description: The legal name of the business + registrationNumber: + type: string + description: The registration number of the business + taxId: + type: string + description: The tax identification number of the business + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary countryOfResidence: type: string description: The country of residence of the beneficiary address: $ref: '#/components/schemas/Address' - BaseBeneficiary: - type: object - required: - - beneficiaryType - properties: - beneficiaryType: - $ref: '#/components/schemas/BeneficiaryType' - address: - $ref: '#/components/schemas/Address' - discriminator: - propertyName: beneficiaryType - mapping: - INDIVIDUAL: '#/components/schemas/IndividualBeneficiary' - BUSINESS: '#/components/schemas/BusinessBeneficiary' - IndividualBeneficiary: - allOf: - - $ref: '#/components/schemas/BaseBeneficiary' - - type: object - required: - - fullName - - birthDate - - nationality - - beneficiaryType - properties: - beneficiaryType: - type: string - enum: - - INDIVIDUAL - fullName: - type: string - description: Individual's full name - example: John Michael Doe - birthDate: - type: string - format: date - description: Date of birth in ISO 8601 format (YYYY-MM-DD) - example: '1990-01-15' - nationality: - type: string - description: Country code (ISO 3166-1 alpha-2) - example: US - BusinessBeneficiary: - allOf: - - $ref: '#/components/schemas/BaseBeneficiary' - - type: object - required: - - legalName - - beneficiaryType - properties: - beneficiaryType: - type: string - enum: - - BUSINESS - legalName: - type: string - description: Legal name of the business - example: Acme Corporation, Inc. - registrationNumber: - type: string - description: Business registration number - example: BRN-123456789 - taxId: - type: string - description: Tax identification number - example: EIN-987654321 - BeneficiaryType: - type: string - enum: - - INDIVIDUAL - - BUSINESS - description: Whether the beneficiary is an individual or a business entity - example: INDIVIDUAL GbpExternalAccountInfo: allOf: - $ref: '#/components/schemas/BaseExternalAccountInfo' @@ -5418,25 +5905,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/GbpBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - PhpAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - PHP_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: BDO Unibank - accountNumber: - type: string - description: Bank account number - example: '001234567890' PhpBeneficiary: type: object required: @@ -5489,33 +5957,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/PhpBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - SgdAccountInfo: - type: object - required: - - accountType - - bankName - - swiftCode - - accountNumber - properties: - accountType: - type: string - enum: - - SGD_ACCOUNT - bankName: - type: string - description: Name of the beneficiary's bank - example: DBS Bank Ltd - swiftCode: - type: string - description: SWIFT/BIC code (8 or 11 characters) - example: DBSSSGSG - minLength: 8 - maxLength: 11 - pattern: ^[A-Z]{4}[A-Z]{2}[A-Z0-9]{2}([A-Z0-9]{3})?$ - accountNumber: - type: string - description: Bank account number - example: '0123456789' SgdBeneficiary: type: object required: @@ -5634,22 +6075,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/BrlBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - DkkAccountInfo: - type: object - required: - - accountType - - iban - properties: - accountType: - type: string - enum: - - DKK_ACCOUNT - iban: - type: string - description: The IBAN of the bank - swiftBic: - type: string - description: The SWIFT BIC of the bank DkkBeneficiary: type: object required: @@ -5702,23 +6127,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/DkkBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - HkdAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - HKD_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank HkdBeneficiary: type: object required: @@ -5771,23 +6179,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/HkdBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - IdrAccountInfo: - type: object - required: - - accountType - - sortCode - - accountNumber - properties: - accountType: - type: string - enum: - - IDR_ACCOUNT - sortCode: - type: string - description: The sort code of the bank - accountNumber: - type: string - description: The account number of the bank IdrBeneficiary: type: object required: @@ -5840,19 +6231,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/IdrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - InrAccountInfo: - type: object - required: - - accountType - - vpa - properties: - accountType: - type: string - enum: - - INR_ACCOUNT - vpa: - type: string - description: The VPA of the bank InrBeneficiary: type: object required: @@ -5905,23 +6283,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/InrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - MxnAccountInfo: - 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}$ MxnBeneficiary: type: object required: @@ -5974,23 +6335,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/MxnBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - MyrAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - MYR_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank MyrBeneficiary: type: object required: @@ -6043,23 +6387,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/MyrBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - ThbAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - THB_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank ThbBeneficiary: type: object required: @@ -6112,23 +6439,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/ThbBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - UsdAccountInfo: - type: object - required: - - accountType - - accountNumber - - routingNumber - properties: - accountType: - type: string - enum: - - USD_ACCOUNT - accountNumber: - type: string - description: The account number of the bank - routingNumber: - type: string - description: The routing number of the bank UsdBeneficiary: type: object required: @@ -6183,23 +6493,6 @@ components: mapping: INDIVIDUAL: '#/components/schemas/UsdBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' - VndAccountInfo: - type: object - required: - - accountType - - bankName - - accountNumber - properties: - accountType: - type: string - enum: - - VND_ACCOUNT - bankName: - type: string - description: The bank name of the bank - accountNumber: - type: string - description: The account number of the bank VndBeneficiary: type: object required: @@ -6276,27 +6569,6 @@ components: - VND_ACCOUNT description: Type of external account or wallet example: GBP_ACCOUNT - BrlAccountInfo: - type: object - required: - - accountType - - pixKey - - pixKeyType - - taxId - properties: - accountType: - type: string - enum: - - BRL_ACCOUNT - pixKey: - type: string - description: The PIX key of the bank - pixKeyType: - type: string - description: The type of PIX key of the bank - taxId: - type: string - description: The tax ID of the bank account BrlBeneficiary: type: object required: @@ -6425,6 +6697,12 @@ components: type: boolean description: Whether this account is the default UMA deposit account for the customer. If true, incoming UMA payments to this customer's UMA address will be automatically deposited into this account instead of the primary internal account. False if not provided. Note that at most, one external account can be set as the default UMA deposit account for a customer. If there is no default UMA deposit account, incoming UMA payments will be deposited into the primary internal account for the customer. example: false + beneficiaryVerificationStatus: + $ref: '#/components/schemas/BeneficiaryVerificationStatus' + description: The result of verifying the beneficiary name against the account holder name + beneficiaryVerifiedData: + $ref: '#/components/schemas/BeneficiaryVerifiedData' + description: Verified beneficiary data returned by the payment rail, if available accountInfo: $ref: '#/components/schemas/ExternalAccountInfoOneOf' ExternalAccountCreateRequest: @@ -6553,13 +6831,7 @@ components: description: Optional memo or description for the payment example: 'Payment for invoice #1234' counterpartyInformation: - type: object - description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. - additionalProperties: true - example: - FULL_NAME: John Sender - BIRTH_DATE: '1985-06-15' - NATIONALITY: DE + $ref: '#/components/schemas/CounterpartyInformation' discriminator: propertyName: type mapping: @@ -6818,10 +7090,6 @@ components: type: string description: The ID of the quote that was used to trigger this payment example: Quote:019542f5-b3e7-1d02-0000-000000000006 - originalTransactionId: - type: string - description: ID of the original transaction that this transaction is retrying, if applicable - example: Transaction:019542f5-b3e7-1d02-0000-000000000003 paymentInstructions: type: array description: Payment instructions for executing the payment. @@ -6925,6 +7193,14 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + CounterpartyInformation: + type: object + description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. + additionalProperties: true + example: + FULL_NAME: John Sender + BIRTH_DATE: '1985-06-15' + NATIONALITY: DE CurrencyPreference: type: object required: @@ -7329,7 +7605,9 @@ components: example: 1000 immediatelyExecute: type: boolean - description: Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. + description: |- + Whether to immediately execute the quote after creation. If true, the quote will be executed and the transaction will be created at the current exchange rate. It should only be used if you don't want to lock and view rate details before executing the quote. If you are executing a pre-existing quote, use the `/quotes/{quoteId}/execute` endpoint instead. This is false by default. + This can only be used for quotes with a `source` which is either an internal account, or has direct pull functionality (e.g. ACH pull with an external account). example: false description: type: string diff --git a/openapi/components/schemas/common/BasePaymentAccountInfo.yaml b/openapi/components/schemas/common/BasePaymentAccountInfo.yaml index 0549480e..9c1adb77 100644 --- a/openapi/components/schemas/common/BasePaymentAccountInfo.yaml +++ b/openapi/components/schemas/common/BasePaymentAccountInfo.yaml @@ -7,12 +7,21 @@ properties: discriminator: propertyName: accountType mapping: - CLABE: ./PaymentClabeAccountInfo.yaml - US_ACCOUNT: ./PaymentUsAccountInfo.yaml - PIX: ./PaymentPixAccountInfo.yaml - IBAN: ./PaymentIbanAccountInfo.yaml - UPI: ./PaymentUpiAccountInfo.yaml + USD_ACCOUNT: ./PaymentUsdAccountInfo.yaml + BRL_ACCOUNT: ./PaymentBrlAccountInfo.yaml + MXN_ACCOUNT: ./PaymentMxnAccountInfo.yaml + DKK_ACCOUNT: ./PaymentDkkAccountInfo.yaml + INR_ACCOUNT: ./PaymentInrAccountInfo.yaml NGN_ACCOUNT: ./PaymentNgnAccountInfo.yaml + CAD_ACCOUNT: ./PaymentCadAccountInfo.yaml + GBP_ACCOUNT: ./PaymentGbpAccountInfo.yaml + HKD_ACCOUNT: ./PaymentHkdAccountInfo.yaml + IDR_ACCOUNT: ./PaymentIdrAccountInfo.yaml + MYR_ACCOUNT: ./PaymentMyrAccountInfo.yaml + PHP_ACCOUNT: ./PaymentPhpAccountInfo.yaml + SGD_ACCOUNT: ./PaymentSgdAccountInfo.yaml + THB_ACCOUNT: ./PaymentThbAccountInfo.yaml + VND_ACCOUNT: ./PaymentVndAccountInfo.yaml SPARK_WALLET: ./PaymentSparkWalletInfo.yaml LIGHTNING: ./PaymentLightningInvoiceInfo.yaml SOLANA_WALLET: ./PaymentSolanaWalletInfo.yaml diff --git a/openapi/components/schemas/common/BrlAccountInfo.yaml b/openapi/components/schemas/common/BrlAccountInfo.yaml index 278a83b8..0b81154a 100644 --- a/openapi/components/schemas/common/BrlAccountInfo.yaml +++ b/openapi/components/schemas/common/BrlAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - pixKey - pixKeyType - taxId @@ -9,6 +11,18 @@ properties: type: string enum: - BRL_ACCOUNT + countries: + type: array + items: + type: string + enum: + - BR + paymentRails: + type: array + items: + type: string + enum: + - PIX pixKey: type: string description: The PIX key of the bank diff --git a/openapi/components/schemas/common/BusinessBeneficiary.yaml b/openapi/components/schemas/common/BusinessBeneficiary.yaml new file mode 100644 index 00000000..901d8f85 --- /dev/null +++ b/openapi/components/schemas/common/BusinessBeneficiary.yaml @@ -0,0 +1,29 @@ +type: object +required: +- beneficiaryType +- legalName +properties: + beneficiaryType: + type: string + enum: + - BUSINESS + legalName: + type: string + description: The legal name of the business + registrationNumber: + type: string + description: The registration number of the business + taxId: + type: string + description: The tax identification number of the business + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/CadAccountInfo.yaml b/openapi/components/schemas/common/CadAccountInfo.yaml index 5504fe99..d64ecd24 100644 --- a/openapi/components/schemas/common/CadAccountInfo.yaml +++ b/openapi/components/schemas/common/CadAccountInfo.yaml @@ -1,14 +1,28 @@ type: object required: + - accountType + - countries + - paymentRails - bankCode - branchCode - accountNumber - - accountType properties: accountType: type: string enum: - CAD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - CA + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankCode: type: string description: Canadian financial institution number (3 digits) diff --git a/openapi/components/schemas/common/ClabeAccountInfo.yaml b/openapi/components/schemas/common/ClabeAccountInfo.yaml deleted file mode 100644 index 6f70a2f4..00000000 --- a/openapi/components/schemas/common/ClabeAccountInfo.yaml +++ /dev/null @@ -1,16 +0,0 @@ -type: object -required: - - clabeNumber - - accountType -properties: - accountType: - type: string - enum: - - CLABE - clabeNumber: - type: string - description: 18-digit CLABE number (Mexican banking standard) - example: '123456789012345678' - minLength: 18 - maxLength: 18 - pattern: ^[0-9]{18}$ diff --git a/openapi/components/schemas/common/DkkAccountInfo.yaml b/openapi/components/schemas/common/DkkAccountInfo.yaml index b80d6541..5555d2b6 100644 --- a/openapi/components/schemas/common/DkkAccountInfo.yaml +++ b/openapi/components/schemas/common/DkkAccountInfo.yaml @@ -1,12 +1,27 @@ type: object required: - accountType +- countries +- paymentRails - iban properties: accountType: type: string enum: - DKK_ACCOUNT + countries: + type: array + items: + type: string + enum: + - DK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT iban: type: string description: The IBAN of the bank diff --git a/openapi/components/schemas/common/GbpAccountInfo.yaml b/openapi/components/schemas/common/GbpAccountInfo.yaml index 9726bb6c..2624ed6a 100644 --- a/openapi/components/schemas/common/GbpAccountInfo.yaml +++ b/openapi/components/schemas/common/GbpAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - sortCode - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - GBP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - GB + paymentRails: + type: array + items: + type: string + enum: + - FASTER_PAYMENTS sortCode: type: string description: UK bank sort code (6 digits, may include hyphens) diff --git a/openapi/components/schemas/common/HkdAccountInfo.yaml b/openapi/components/schemas/common/HkdAccountInfo.yaml index c3f2c7dd..bc312f82 100644 --- a/openapi/components/schemas/common/HkdAccountInfo.yaml +++ b/openapi/components/schemas/common/HkdAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - HKD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - HK + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string description: The bank name of the bank diff --git a/openapi/components/schemas/common/IbanAccountInfo.yaml b/openapi/components/schemas/common/IbanAccountInfo.yaml deleted file mode 100644 index 51a2c9d6..00000000 --- a/openapi/components/schemas/common/IbanAccountInfo.yaml +++ /dev/null @@ -1,23 +0,0 @@ -type: object -required: - - iban - - swiftBic - - accountType -properties: - accountType: - type: string - enum: - - IBAN - iban: - type: string - description: International Bank Account Number - example: DE89370400440532013000 - minLength: 15 - maxLength: 34 - swiftBic: - type: string - description: SWIFT/BIC code (8 or 11 characters) - 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/IdrAccountInfo.yaml b/openapi/components/schemas/common/IdrAccountInfo.yaml index 2e601516..a21b46fd 100644 --- a/openapi/components/schemas/common/IdrAccountInfo.yaml +++ b/openapi/components/schemas/common/IdrAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - sortCode - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - IDR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - ID + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER sortCode: type: string description: The sort code of the bank diff --git a/openapi/components/schemas/common/InrAccountInfo.yaml b/openapi/components/schemas/common/InrAccountInfo.yaml index ef09dec1..bece63e9 100644 --- a/openapi/components/schemas/common/InrAccountInfo.yaml +++ b/openapi/components/schemas/common/InrAccountInfo.yaml @@ -1,12 +1,27 @@ type: object required: - accountType +- countries +- paymentRails - vpa properties: accountType: type: string enum: - INR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - IN + paymentRails: + type: array + items: + type: string + enum: + - UPI + - IMPS vpa: type: string description: The VPA of the bank diff --git a/openapi/components/schemas/common/MxnAccountInfo.yaml b/openapi/components/schemas/common/MxnAccountInfo.yaml index d5444dea..4398d06d 100644 --- a/openapi/components/schemas/common/MxnAccountInfo.yaml +++ b/openapi/components/schemas/common/MxnAccountInfo.yaml @@ -1,12 +1,26 @@ type: object required: - accountType +- countries +- paymentRails - clabeNumber properties: accountType: type: string enum: - MXN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MX + paymentRails: + type: array + items: + type: string + enum: + - SPEI clabeNumber: type: string description: The CLABE number of the bank diff --git a/openapi/components/schemas/common/MyrAccountInfo.yaml b/openapi/components/schemas/common/MyrAccountInfo.yaml index 490f59e1..9fc45627 100644 --- a/openapi/components/schemas/common/MyrAccountInfo.yaml +++ b/openapi/components/schemas/common/MyrAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - MYR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - MY + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string description: The bank name of the bank diff --git a/openapi/components/schemas/common/NgnAccountInfo.yaml b/openapi/components/schemas/common/NgnAccountInfo.yaml index cd9eb309..9d15c172 100644 --- a/openapi/components/schemas/common/NgnAccountInfo.yaml +++ b/openapi/components/schemas/common/NgnAccountInfo.yaml @@ -1,13 +1,27 @@ type: object required: + - accountType + - countries + - paymentRails - accountNumber - bankName - - accountType properties: accountType: type: string enum: - NGN_ACCOUNT + countries: + type: array + items: + type: string + enum: + - NG + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER accountNumber: type: string description: Nigerian bank account number diff --git a/openapi/components/schemas/common/PaymentAccountType.yaml b/openapi/components/schemas/common/PaymentAccountType.yaml index 1b5f6af5..4377774e 100644 --- a/openapi/components/schemas/common/PaymentAccountType.yaml +++ b/openapi/components/schemas/common/PaymentAccountType.yaml @@ -1,11 +1,20 @@ type: string enum: - - CLABE - - US_ACCOUNT - - PIX - - IBAN - - UPI + - USD_ACCOUNT + - BRL_ACCOUNT + - MXN_ACCOUNT + - DKK_ACCOUNT + - INR_ACCOUNT - NGN_ACCOUNT + - CAD_ACCOUNT + - GBP_ACCOUNT + - HKD_ACCOUNT + - IDR_ACCOUNT + - MYR_ACCOUNT + - PHP_ACCOUNT + - SGD_ACCOUNT + - THB_ACCOUNT + - VND_ACCOUNT - SPARK_WALLET - LIGHTNING - SOLANA_WALLET @@ -13,4 +22,4 @@ enum: - POLYGON_WALLET - BASE_WALLET description: Type of payment account or wallet -example: US_ACCOUNT +example: USD_ACCOUNT diff --git a/openapi/components/schemas/common/PaymentPixAccountInfo.yaml b/openapi/components/schemas/common/PaymentBrlAccountInfo.yaml similarity index 59% rename from openapi/components/schemas/common/PaymentPixAccountInfo.yaml rename to openapi/components/schemas/common/PaymentBrlAccountInfo.yaml index f8e0b0bc..96cfe5f2 100644 --- a/openapi/components/schemas/common/PaymentPixAccountInfo.yaml +++ b/openapi/components/schemas/common/PaymentBrlAccountInfo.yaml @@ -1,3 +1,3 @@ allOf: - $ref: ./BasePaymentAccountInfo.yaml - - $ref: ./PixAccountInfo.yaml + - $ref: ./BrlAccountInfo.yaml diff --git a/openapi/components/schemas/common/PaymentUsAccountInfo.yaml b/openapi/components/schemas/common/PaymentCadAccountInfo.yaml similarity index 90% rename from openapi/components/schemas/common/PaymentUsAccountInfo.yaml rename to openapi/components/schemas/common/PaymentCadAccountInfo.yaml index 526d5d06..c8c8fda1 100644 --- a/openapi/components/schemas/common/PaymentUsAccountInfo.yaml +++ b/openapi/components/schemas/common/PaymentCadAccountInfo.yaml @@ -1,6 +1,6 @@ allOf: - $ref: ./BasePaymentAccountInfo.yaml - - $ref: ./UsAccountInfo.yaml + - $ref: ./CadAccountInfo.yaml - type: object required: - reference diff --git a/openapi/components/schemas/common/PaymentIbanAccountInfo.yaml b/openapi/components/schemas/common/PaymentDkkAccountInfo.yaml similarity index 90% rename from openapi/components/schemas/common/PaymentIbanAccountInfo.yaml rename to openapi/components/schemas/common/PaymentDkkAccountInfo.yaml index d5c67fb1..83f48626 100644 --- a/openapi/components/schemas/common/PaymentIbanAccountInfo.yaml +++ b/openapi/components/schemas/common/PaymentDkkAccountInfo.yaml @@ -1,6 +1,6 @@ allOf: - $ref: ./BasePaymentAccountInfo.yaml - - $ref: ./IbanAccountInfo.yaml + - $ref: ./DkkAccountInfo.yaml - type: object required: - reference diff --git a/openapi/components/schemas/common/PaymentClabeAccountInfo.yaml b/openapi/components/schemas/common/PaymentGbpAccountInfo.yaml similarity index 90% rename from openapi/components/schemas/common/PaymentClabeAccountInfo.yaml rename to openapi/components/schemas/common/PaymentGbpAccountInfo.yaml index 29f6d4a2..883c3b27 100644 --- a/openapi/components/schemas/common/PaymentClabeAccountInfo.yaml +++ b/openapi/components/schemas/common/PaymentGbpAccountInfo.yaml @@ -1,6 +1,6 @@ allOf: - $ref: ./BasePaymentAccountInfo.yaml - - $ref: ./ClabeAccountInfo.yaml + - $ref: ./GbpAccountInfo.yaml - type: object required: - reference diff --git a/openapi/components/schemas/common/PaymentHkdAccountInfo.yaml b/openapi/components/schemas/common/PaymentHkdAccountInfo.yaml new file mode 100644 index 00000000..077fa3e2 --- /dev/null +++ b/openapi/components/schemas/common/PaymentHkdAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./HkdAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentIdrAccountInfo.yaml b/openapi/components/schemas/common/PaymentIdrAccountInfo.yaml new file mode 100644 index 00000000..a7413a99 --- /dev/null +++ b/openapi/components/schemas/common/PaymentIdrAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./IdrAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentUpiAccountInfo.yaml b/openapi/components/schemas/common/PaymentInrAccountInfo.yaml similarity index 59% rename from openapi/components/schemas/common/PaymentUpiAccountInfo.yaml rename to openapi/components/schemas/common/PaymentInrAccountInfo.yaml index af4b9900..084e54bc 100644 --- a/openapi/components/schemas/common/PaymentUpiAccountInfo.yaml +++ b/openapi/components/schemas/common/PaymentInrAccountInfo.yaml @@ -1,3 +1,3 @@ allOf: - $ref: ./BasePaymentAccountInfo.yaml - - $ref: ./UpiAccountInfo.yaml + - $ref: ./InrAccountInfo.yaml diff --git a/openapi/components/schemas/common/PaymentInstructions.yaml b/openapi/components/schemas/common/PaymentInstructions.yaml index 313d0cb1..a8d294f7 100644 --- a/openapi/components/schemas/common/PaymentInstructions.yaml +++ b/openapi/components/schemas/common/PaymentInstructions.yaml @@ -14,16 +14,36 @@ properties: example: true accountOrWalletInfo: oneOf: - - title: CLABE Account - $ref: ../common/PaymentClabeAccountInfo.yaml - - title: US Bank Account - $ref: ../common/PaymentUsAccountInfo.yaml - - title: PIX Account - $ref: ../common/PaymentPixAccountInfo.yaml - - title: IBAN Account - $ref: ../common/PaymentIbanAccountInfo.yaml - - title: UPI Account - $ref: ../common/PaymentUpiAccountInfo.yaml + - title: USD Bank Account + $ref: ../common/PaymentUsdAccountInfo.yaml + - title: BRL Account + $ref: ../common/PaymentBrlAccountInfo.yaml + - title: MXN Account + $ref: ../common/PaymentMxnAccountInfo.yaml + - title: DKK Account + $ref: ../common/PaymentDkkAccountInfo.yaml + - title: INR Account + $ref: ../common/PaymentInrAccountInfo.yaml + - title: NGN Account + $ref: ../common/PaymentNgnAccountInfo.yaml + - title: CAD Account + $ref: ../common/PaymentCadAccountInfo.yaml + - title: GBP Account + $ref: ../common/PaymentGbpAccountInfo.yaml + - title: HKD Account + $ref: ../common/PaymentHkdAccountInfo.yaml + - title: IDR Account + $ref: ../common/PaymentIdrAccountInfo.yaml + - title: MYR Account + $ref: ../common/PaymentMyrAccountInfo.yaml + - title: PHP Account + $ref: ../common/PaymentPhpAccountInfo.yaml + - title: SGD Account + $ref: ../common/PaymentSgdAccountInfo.yaml + - title: THB Account + $ref: ../common/PaymentThbAccountInfo.yaml + - title: VND Account + $ref: ../common/PaymentVndAccountInfo.yaml - title: Spark Wallet $ref: ../common/PaymentSparkWalletInfo.yaml - title: Lightning Invoice @@ -39,11 +59,21 @@ properties: discriminator: propertyName: accountType mapping: - CLABE: ../common/PaymentClabeAccountInfo.yaml - US_ACCOUNT: ../common/PaymentUsAccountInfo.yaml - PIX: ../common/PaymentPixAccountInfo.yaml - IBAN: ../common/PaymentIbanAccountInfo.yaml - UPI: ../common/PaymentUpiAccountInfo.yaml + USD_ACCOUNT: ../common/PaymentUsdAccountInfo.yaml + BRL_ACCOUNT: ../common/PaymentBrlAccountInfo.yaml + MXN_ACCOUNT: ../common/PaymentMxnAccountInfo.yaml + DKK_ACCOUNT: ../common/PaymentDkkAccountInfo.yaml + INR_ACCOUNT: ../common/PaymentInrAccountInfo.yaml + NGN_ACCOUNT: ../common/PaymentNgnAccountInfo.yaml + CAD_ACCOUNT: ../common/PaymentCadAccountInfo.yaml + GBP_ACCOUNT: ../common/PaymentGbpAccountInfo.yaml + HKD_ACCOUNT: ../common/PaymentHkdAccountInfo.yaml + IDR_ACCOUNT: ../common/PaymentIdrAccountInfo.yaml + MYR_ACCOUNT: ../common/PaymentMyrAccountInfo.yaml + PHP_ACCOUNT: ../common/PaymentPhpAccountInfo.yaml + SGD_ACCOUNT: ../common/PaymentSgdAccountInfo.yaml + THB_ACCOUNT: ../common/PaymentThbAccountInfo.yaml + VND_ACCOUNT: ../common/PaymentVndAccountInfo.yaml SPARK_WALLET: ../common/PaymentSparkWalletInfo.yaml LIGHTNING: ../common/PaymentLightningInvoiceInfo.yaml SOLANA_WALLET: ../common/PaymentSolanaWalletInfo.yaml diff --git a/openapi/components/schemas/common/PaymentMxnAccountInfo.yaml b/openapi/components/schemas/common/PaymentMxnAccountInfo.yaml new file mode 100644 index 00000000..f24e22bb --- /dev/null +++ b/openapi/components/schemas/common/PaymentMxnAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./MxnAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentMyrAccountInfo.yaml b/openapi/components/schemas/common/PaymentMyrAccountInfo.yaml new file mode 100644 index 00000000..294d7a69 --- /dev/null +++ b/openapi/components/schemas/common/PaymentMyrAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./MyrAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentPhpAccountInfo.yaml b/openapi/components/schemas/common/PaymentPhpAccountInfo.yaml new file mode 100644 index 00000000..89638673 --- /dev/null +++ b/openapi/components/schemas/common/PaymentPhpAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./PhpAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentSgdAccountInfo.yaml b/openapi/components/schemas/common/PaymentSgdAccountInfo.yaml new file mode 100644 index 00000000..dd47c842 --- /dev/null +++ b/openapi/components/schemas/common/PaymentSgdAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./SgdAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentThbAccountInfo.yaml b/openapi/components/schemas/common/PaymentThbAccountInfo.yaml new file mode 100644 index 00000000..23131b6f --- /dev/null +++ b/openapi/components/schemas/common/PaymentThbAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./ThbAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentUsdAccountInfo.yaml b/openapi/components/schemas/common/PaymentUsdAccountInfo.yaml new file mode 100644 index 00000000..097a79e2 --- /dev/null +++ b/openapi/components/schemas/common/PaymentUsdAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./UsdAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentVndAccountInfo.yaml b/openapi/components/schemas/common/PaymentVndAccountInfo.yaml new file mode 100644 index 00000000..89c58845 --- /dev/null +++ b/openapi/components/schemas/common/PaymentVndAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./VndAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PhpAccountInfo.yaml b/openapi/components/schemas/common/PhpAccountInfo.yaml index 3be3ffae..8f1a74a7 100644 --- a/openapi/components/schemas/common/PhpAccountInfo.yaml +++ b/openapi/components/schemas/common/PhpAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - PHP_ACCOUNT + countries: + type: array + items: + type: string + enum: + - PH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank diff --git a/openapi/components/schemas/common/PixAccountInfo.yaml b/openapi/components/schemas/common/PixAccountInfo.yaml deleted file mode 100644 index fb37639a..00000000 --- a/openapi/components/schemas/common/PixAccountInfo.yaml +++ /dev/null @@ -1,29 +0,0 @@ -type: object -required: - - pixKey - - pixKeyType - - taxId - - accountType -properties: - accountType: - type: string - enum: - - PIX - pixKey: - type: string - description: PIX key for Brazilian instant payments - example: '55119876543210' - pixKeyType: - type: string - enum: - - CPF - - CNPJ - - EMAIL - - PHONE - - RANDOM - description: Type of PIX key being used - example: PHONE - taxId: - type: string - description: Tax ID of the account holder - example: '1234567890' diff --git a/openapi/components/schemas/common/SgdAccountInfo.yaml b/openapi/components/schemas/common/SgdAccountInfo.yaml index 8a0b5517..6923a923 100644 --- a/openapi/components/schemas/common/SgdAccountInfo.yaml +++ b/openapi/components/schemas/common/SgdAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - swiftCode - accountNumber @@ -9,6 +11,20 @@ properties: type: string enum: - SGD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - SG + paymentRails: + type: array + items: + type: string + enum: + - PAYNOW + - FAST + - BANK_TRANSFER bankName: type: string description: Name of the beneficiary's bank diff --git a/openapi/components/schemas/common/ThbAccountInfo.yaml b/openapi/components/schemas/common/ThbAccountInfo.yaml index 6ff0eb90..307ac918 100644 --- a/openapi/components/schemas/common/ThbAccountInfo.yaml +++ b/openapi/components/schemas/common/ThbAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - THB_ACCOUNT + countries: + type: array + items: + type: string + enum: + - TH + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string description: The bank name of the bank diff --git a/openapi/components/schemas/common/UpiAccountInfo.yaml b/openapi/components/schemas/common/UpiAccountInfo.yaml deleted file mode 100644 index dc579b61..00000000 --- a/openapi/components/schemas/common/UpiAccountInfo.yaml +++ /dev/null @@ -1,13 +0,0 @@ -type: object -required: - - vpa - - accountType -properties: - accountType: - type: string - enum: - - UPI - vpa: - type: string - description: Virtual Payment Address for UPI payments - example: somecustomers@okbank diff --git a/openapi/components/schemas/common/UsAccountInfo.yaml b/openapi/components/schemas/common/UsAccountInfo.yaml deleted file mode 100644 index e5673516..00000000 --- a/openapi/components/schemas/common/UsAccountInfo.yaml +++ /dev/null @@ -1,33 +0,0 @@ -type: object -required: - - accountNumber - - routingNumber - - accountCategory - - accountType -properties: - accountType: - type: string - enum: - - US_ACCOUNT - accountNumber: - type: string - description: US bank account number - example: '123456789' - routingNumber: - type: string - description: ACH routing number (9 digits) - example: '987654321' - minLength: 9 - maxLength: 9 - pattern: ^[0-9]{9}$ - accountCategory: - type: string - enum: - - CHECKING - - SAVINGS - description: Type of account (checking or savings) - example: CHECKING - bankName: - type: string - description: Name of the bank - example: Chase Bank diff --git a/openapi/components/schemas/common/UsdAccountInfo.yaml b/openapi/components/schemas/common/UsdAccountInfo.yaml index 25edd0eb..b6638bec 100644 --- a/openapi/components/schemas/common/UsdAccountInfo.yaml +++ b/openapi/components/schemas/common/UsdAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - accountNumber - routingNumber properties: @@ -8,6 +10,21 @@ properties: type: string enum: - USD_ACCOUNT + countries: + type: array + items: + type: string + enum: + - US + paymentRails: + type: array + items: + type: string + enum: + - ACH + - WIRE + - RTP + - FEDNOW accountNumber: type: string description: The account number of the bank diff --git a/openapi/components/schemas/common/VndAccountInfo.yaml b/openapi/components/schemas/common/VndAccountInfo.yaml index 584a0661..4901b33d 100644 --- a/openapi/components/schemas/common/VndAccountInfo.yaml +++ b/openapi/components/schemas/common/VndAccountInfo.yaml @@ -1,6 +1,8 @@ type: object required: - accountType +- countries +- paymentRails - bankName - accountNumber properties: @@ -8,6 +10,18 @@ properties: type: string enum: - VND_ACCOUNT + countries: + type: array + items: + type: string + enum: + - VN + paymentRails: + type: array + items: + type: string + enum: + - BANK_TRANSFER bankName: type: string description: The bank name of the bank diff --git a/openapi/components/schemas/external_accounts/BaseBeneficiary.yaml b/openapi/components/schemas/external_accounts/BaseBeneficiary.yaml index 27bd7e85..7e37692a 100644 --- a/openapi/components/schemas/external_accounts/BaseBeneficiary.yaml +++ b/openapi/components/schemas/external_accounts/BaseBeneficiary.yaml @@ -10,4 +10,4 @@ discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ./IndividualBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/BeneficiaryOneOf.yaml b/openapi/components/schemas/external_accounts/BeneficiaryOneOf.yaml index f7c7e1e5..7620a6a8 100644 --- a/openapi/components/schemas/external_accounts/BeneficiaryOneOf.yaml +++ b/openapi/components/schemas/external_accounts/BeneficiaryOneOf.yaml @@ -2,9 +2,9 @@ oneOf: - title: Individual Beneficiary $ref: ./IndividualBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ./IndividualBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml index ddfd3557..ba4f3ba4 100644 --- a/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BrlExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/BrlBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/BrlBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/BusinessBeneficiary.yaml b/openapi/components/schemas/external_accounts/BusinessBeneficiary.yaml deleted file mode 100644 index bb6ae236..00000000 --- a/openapi/components/schemas/external_accounts/BusinessBeneficiary.yaml +++ /dev/null @@ -1,23 +0,0 @@ -allOf: - - $ref: ./BaseBeneficiary.yaml - - type: object - required: - - legalName - - beneficiaryType - properties: - beneficiaryType: - type: string - enum: - - BUSINESS - legalName: - type: string - description: Legal name of the business - example: Acme Corporation, Inc. - registrationNumber: - type: string - description: Business registration number - example: BRN-123456789 - taxId: - type: string - description: Tax identification number - example: EIN-987654321 diff --git a/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml index 2a06b867..9d6f0e79 100644 --- a/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/DkkExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/DkkBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/DkkBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml index 53a6851a..000ffee0 100644 --- a/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/GbpExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/GbpBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/GbpBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml index 95a14095..ba02b912 100644 --- a/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/HkdExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/HkdBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/HkdBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml index 97057199..e4437b38 100644 --- a/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/IdrExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/IdrBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/IdrBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml index a2d8c817..c31c94cf 100644 --- a/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/InrExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/InrBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/InrBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml index 9effce05..3bb82b0f 100644 --- a/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/MxnExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/MxnBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/MxnBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml index a0d4af0c..d364bde3 100644 --- a/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/MyrExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/MyrBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/MyrBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml index 605d3f18..6226f5f5 100644 --- a/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/PhpExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/PhpBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/PhpBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml index 3965a0a9..c12c56b3 100644 --- a/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/SgdExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/SgdBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/SgdBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml index ed7328ec..4d148997 100644 --- a/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/ThbExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/ThbBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/ThbBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml index 68ce09ff..d595cdcb 100644 --- a/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/UsdExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/UsdBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/UsdBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml diff --git a/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml index 5ccce3e3..72bc949e 100644 --- a/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/VndExternalAccountInfo.yaml @@ -10,9 +10,9 @@ allOf: - title: Individual Beneficiary $ref: ../common/VndBeneficiary.yaml - title: Business Beneficiary - $ref: ./BusinessBeneficiary.yaml + $ref: ../common/BusinessBeneficiary.yaml discriminator: propertyName: beneficiaryType mapping: INDIVIDUAL: ../common/VndBeneficiary.yaml - BUSINESS: ./BusinessBeneficiary.yaml + BUSINESS: ../common/BusinessBeneficiary.yaml From 2f5f5fa7f737c65d25a166b7bccda671ce44150f Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Fri, 20 Feb 2026 10:57:04 -0800 Subject: [PATCH 6/8] fix: update stainless config for currency-based account schemas Update stale references to old payment-method-based schema names (UsAccountExternalAccountInfo, PaymentClabeAccountInfo, etc.) and remove BaseBeneficiary transform that no longer matches bundled output. Co-authored-by: Cursor --- .stainless/stainless.yml | 52 +++++++++++++++++++++------------------- mintlify/openapi.yaml | 18 ++++++++++++++ openapi.yaml | 18 ++++++++++++++ 3 files changed, 63 insertions(+), 25 deletions(-) diff --git a/.stainless/stainless.yml b/.stainless/stainless.yml index a1586e41..2640ac13 100644 --- a/.stainless/stainless.yml +++ b/.stainless/stainless.yml @@ -109,16 +109,19 @@ resources: subresources: external_accounts: models: - us_account_info: '#/components/schemas/UsAccountExternalAccountInfo' - clabe_account_info: '#/components/schemas/ClabeAccountExternalAccountInfo' - pix_account_info: '#/components/schemas/PixAccountExternalAccountInfo' - iban_account_info: '#/components/schemas/IbanAccountExternalAccountInfo' - upi_account_info: '#/components/schemas/UpiAccountExternalAccountInfo' - ngn_account_info: '#/components/schemas/NgnAccountExternalAccountInfo' - cad_account_info: '#/components/schemas/CadAccountExternalAccountInfo' - gbp_account_info: '#/components/schemas/GbpAccountExternalAccountInfo' - php_account_info: '#/components/schemas/PhpAccountExternalAccountInfo' - sgd_account_info: '#/components/schemas/SgdAccountExternalAccountInfo' + usd_account_info: '#/components/schemas/UsdExternalAccountInfo' + brl_account_info: '#/components/schemas/BrlExternalAccountInfo' + mxn_account_info: '#/components/schemas/MxnExternalAccountInfo' + dkk_account_info: '#/components/schemas/DkkExternalAccountInfo' + inr_account_info: '#/components/schemas/InrExternalAccountInfo' + gbp_account_info: '#/components/schemas/GbpExternalAccountInfo' + hkd_account_info: '#/components/schemas/HkdExternalAccountInfo' + idr_account_info: '#/components/schemas/IdrExternalAccountInfo' + myr_account_info: '#/components/schemas/MyrExternalAccountInfo' + php_account_info: '#/components/schemas/PhpExternalAccountInfo' + sgd_account_info: '#/components/schemas/SgdExternalAccountInfo' + thb_account_info: '#/components/schemas/ThbExternalAccountInfo' + vnd_account_info: '#/components/schemas/VndExternalAccountInfo' spark_wallet_info: '#/components/schemas/SparkWalletExternalAccountInfo' solana_wallet_info: '#/components/schemas/SolanaWalletExternalAccountInfo' tron_wallet_info: '#/components/schemas/TronWalletExternalAccountInfo' @@ -483,12 +486,21 @@ openapi: stripping the accountType discriminator, which causes TS2312 errors args: target: - - "$.components.schemas.PaymentClabeAccountInfo.allOf[0]" - - "$.components.schemas.PaymentUsAccountInfo.allOf[0]" - - "$.components.schemas.PaymentPixAccountInfo.allOf[0]" - - "$.components.schemas.PaymentIbanAccountInfo.allOf[0]" - - "$.components.schemas.PaymentUpiAccountInfo.allOf[0]" + - "$.components.schemas.PaymentUsdAccountInfo.allOf[0]" + - "$.components.schemas.PaymentBrlAccountInfo.allOf[0]" + - "$.components.schemas.PaymentMxnAccountInfo.allOf[0]" + - "$.components.schemas.PaymentDkkAccountInfo.allOf[0]" + - "$.components.schemas.PaymentInrAccountInfo.allOf[0]" - "$.components.schemas.PaymentNgnAccountInfo.allOf[0]" + - "$.components.schemas.PaymentCadAccountInfo.allOf[0]" + - "$.components.schemas.PaymentGbpAccountInfo.allOf[0]" + - "$.components.schemas.PaymentHkdAccountInfo.allOf[0]" + - "$.components.schemas.PaymentIdrAccountInfo.allOf[0]" + - "$.components.schemas.PaymentMyrAccountInfo.allOf[0]" + - "$.components.schemas.PaymentPhpAccountInfo.allOf[0]" + - "$.components.schemas.PaymentSgdAccountInfo.allOf[0]" + - "$.components.schemas.PaymentThbAccountInfo.allOf[0]" + - "$.components.schemas.PaymentVndAccountInfo.allOf[0]" - "$.components.schemas.PaymentSparkWalletInfo.allOf[0]" - "$.components.schemas.PaymentLightningInvoiceInfo.allOf[0]" - "$.components.schemas.PaymentSolanaWalletInfo.allOf[0]" @@ -520,16 +532,6 @@ openapi: - "$.components.schemas.ExternalAccountDetailsDestination.allOf[0]" keys: [ "$ref" ] - # ── beneficiaryType: remove from base schema ── - - command: remove - reason: >- - Remove beneficiaryType $ref from base schema so the inline - single-value enums in each beneficiary variant become the sole definition - args: - target: - - "$.components.schemas.BaseBeneficiary.properties" - keys: [ "beneficiaryType" ] - codeflow: detect_breaking_changes: true release_environment: npm diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index aaeca601..212e82dc 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -7576,6 +7576,22 @@ components: - SENDING - RECEIVING description: The side of the quote which should be locked and specified in the `lockedCurrencyAmount`. For example, if I want to send exactly $5 MXN from my wallet, I would set this to "sending", and the `lockedCurrencyAmount` to 500 (in cents). If I want the receiver to receive exactly $10 USD, I would set this to "receiving" and the `lockedCurrencyAmount` to 10000 (in cents). + PurposeOfPayment: + type: string + description: The purpose of the payment. This may be required when sending to certain geographies such as India. + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - TAX_PAYMENT + - LOAN_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - OTHER QuoteRequest: type: object required: @@ -7613,6 +7629,8 @@ components: type: string description: Optional description/memo for the transfer example: 'Invoice #1234 payment' + purposeOfPayment: + $ref: '#/components/schemas/PurposeOfPayment' senderCustomerInfo: type: object additionalProperties: true diff --git a/openapi.yaml b/openapi.yaml index aaeca601..212e82dc 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -7576,6 +7576,22 @@ components: - SENDING - RECEIVING description: The side of the quote which should be locked and specified in the `lockedCurrencyAmount`. For example, if I want to send exactly $5 MXN from my wallet, I would set this to "sending", and the `lockedCurrencyAmount` to 500 (in cents). If I want the receiver to receive exactly $10 USD, I would set this to "receiving" and the `lockedCurrencyAmount` to 10000 (in cents). + PurposeOfPayment: + type: string + description: The purpose of the payment. This may be required when sending to certain geographies such as India. + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - TAX_PAYMENT + - LOAN_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - OTHER QuoteRequest: type: object required: @@ -7613,6 +7629,8 @@ components: type: string description: Optional description/memo for the transfer example: 'Invoice #1234 payment' + purposeOfPayment: + $ref: '#/components/schemas/PurposeOfPayment' senderCustomerInfo: type: object additionalProperties: true From 66e48c5bb969044fb264345a19a5337f52ba66df Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Sun, 22 Feb 2026 18:39:42 -0800 Subject: [PATCH 7/8] chore: regenerate bundled OpenAPI spec after rebase Co-authored-by: Cursor --- mintlify/openapi.yaml | 255 +++++++++++++++++++++++++++--------------- openapi.yaml | 255 +++++++++++++++++++++++++++--------------- 2 files changed, 334 insertions(+), 176 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index 212e82dc..d04d0386 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -1304,7 +1304,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '400': description: Bad request - Invalid parameters content: @@ -1398,7 +1398,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '400': description: Bad request - Invalid parameters content: @@ -2062,7 +2062,7 @@ paths: type: array description: List of transactions matching the criteria items: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' hasMore: type: boolean description: Indicates if more results are available beyond this page @@ -2112,7 +2112,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '401': description: Unauthorized content: @@ -6783,6 +6783,32 @@ components: Optional Plaid account ID if the customer selected a specific account. If not provided, the default account will be used. example: plaid_account_id_123 + IncomingTransaction: + allOf: + - $ref: '#/components/schemas/Transaction' + - type: object + required: + - type + - receivedAmount + properties: + type: + type: string + enum: + - INCOMING + source: + $ref: '#/components/schemas/TransactionSourceOneOf' + receivedAmount: + $ref: '#/components/schemas/CurrencyAmount' + description: Amount received in the recipient's currency + reconciliationInstructions: + $ref: '#/components/schemas/ReconciliationInstructions' + description: Included for all transactions except those with "CREATED" status + rateDetails: + $ref: '#/components/schemas/IncomingRateDetails' + description: Details about the rate and fees for the transaction. + failureReason: + $ref: '#/components/schemas/IncomingTransactionFailureReason' + description: If the transaction failed, this field provides the reason for failure. Transaction: type: object required: @@ -6870,6 +6896,7 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' + REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' UmaAddressTransactionSource: allOf: - $ref: '#/components/schemas/BaseTransactionSource' @@ -6887,6 +6914,27 @@ components: description: UMA address of the sender example: $sender@uma.domain.com description: UMA address source details + RealtimeFundingTransactionSource: + allOf: + - $ref: '#/components/schemas/BaseTransactionSource' + - type: object + required: + - currency + - sourceType + properties: + sourceType: + type: string + enum: + - REALTIME_FUNDING + customerId: + type: string + description: The customer on whose behalf the transaction was initiated. + example: Customer:019542f5-b3e7-1d02-0000-000000000009 + currency: + type: string + description: Currency code for the funding source + example: USDC + description: Transaction was funded using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). TransactionSourceType: type: string enum: @@ -6901,86 +6949,14 @@ components: $ref: '#/components/schemas/AccountTransactionSource' - title: UMA Address Source $ref: '#/components/schemas/UmaAddressTransactionSource' + - title: Real-time Funding Source + $ref: '#/components/schemas/RealtimeFundingTransactionSource' discriminator: propertyName: sourceType mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - ReconciliationInstructions: - type: object - required: - - reference - properties: - reference: - type: string - description: Unique reference code that must be included with the payment to match it with the correct incoming transaction - example: UMA-Q12345-REF - IncomingRateDetails: - description: Details about the rate and fees for an incoming transaction. - type: object - required: - - gridApiMultiplier - - gridApiFixedFee - - gridApiVariableFeeRate - - gridApiVariableFeeAmount - properties: - gridApiMultiplier: - type: number - format: double - description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. - exclusiveMinimum: 0 - example: 0.925 - gridApiFixedFee: - type: integer - format: int64 - description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). - minimum: 0 - example: 10 - gridApiVariableFeeRate: - type: number - format: double - description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. - exclusiveMinimum: 0 - example: 0.003 - gridApiVariableFeeAmount: - type: number - format: int64 - description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. - minimum: 0 - example: 30 - IncomingTransactionFailureReason: - type: string - enum: - - LNURLP_FAILED - - PAY_REQUEST_FAILED - - PAYMENT_APPROVAL_WEBHOOK_ERROR - - PAYMENT_APPROVAL_TIMED_OUT - - OFFRAMP_FAILED - - MISSING_MANDATORY_PAYEE_DATA - - QUOTE_EXPIRED - - QUOTE_EXECUTION_FAILED - description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. - IncomingTransaction: - allOf: - - $ref: '#/components/schemas/Transaction' - - type: object - required: - - receivedAmount - properties: - source: - $ref: '#/components/schemas/TransactionSourceOneOf' - receivedAmount: - $ref: '#/components/schemas/CurrencyAmount' - description: Amount received in the recipient's currency - reconciliationInstructions: - $ref: '#/components/schemas/ReconciliationInstructions' - description: Included for all transactions except those with "CREATED" status - rateDetails: - $ref: '#/components/schemas/IncomingRateDetails' - description: Details about the rate and fees for the transaction. - failureReason: - $ref: '#/components/schemas/IncomingTransactionFailureReason' - description: If the transaction failed, this field provides the reason for failure. + REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' Refund: type: object required: @@ -7063,10 +7039,14 @@ components: - $ref: '#/components/schemas/Transaction' - type: object required: + - type - sentAmount - - paymentInstructions - source properties: + type: + type: string + enum: + - OUTGOING source: $ref: '#/components/schemas/TransactionSourceOneOf' sentAmount: @@ -7119,12 +7099,26 @@ components: - CREATED - PENDING - PROCESSING + - SENT - COMPLETED - REJECTED - FAILED - REFUNDED - EXPIRED - description: Status of a payment transaction + description: | + Status of a payment transaction. + + | Status | Description | + |--------|-------------| + | `CREATED` | Initial lookup has been created | + | `PENDING` | Quote has been created | + | `PROCESSING` | Funding has been received and payment initiated | + | `SENT` | Cross border settlement has been initiated | + | `COMPLETED` | Cross border payment has been received, converted and payment has been sent to the offramp network | + | `REJECTED` | Receiving institution or wallet rejected payment, payment has been refunded | + | `FAILED` | An error occurred during payment | + | `REFUNDED` | Payment was unable to complete and refunded | + | `EXPIRED` | Quote has expired | AccountTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -7158,6 +7152,7 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' UmaAddressTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -7175,11 +7170,27 @@ components: description: UMA address of the recipient example: $receiver@uma.domain.com description: UMA address destination details + ExternalAccountDetailsTransactionDestination: + allOf: + - $ref: '#/components/schemas/BaseTransactionDestination' + - type: object + required: + - externalAccountDetails + - destinationType + properties: + destinationType: + type: string + enum: + - EXTERNAL_ACCOUNT_DETAILS + externalAccountDetails: + $ref: '#/components/schemas/ExternalAccountCreateRequest' + description: Transaction destination where external account details were provided inline at quote creation rather than using a pre-registered external account. TransactionDestinationType: type: string enum: - ACCOUNT - UMA_ADDRESS + - EXTERNAL_ACCOUNT_DETAILS description: Type of transaction destination example: ACCOUNT TransactionDestinationOneOf: @@ -7188,11 +7199,14 @@ components: $ref: '#/components/schemas/AccountTransactionDestination' - title: UMA Address Destination $ref: '#/components/schemas/UmaAddressTransactionDestination' + - title: External Account Details Destination + $ref: '#/components/schemas/ExternalAccountDetailsTransactionDestination' discriminator: propertyName: destinationType mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' CounterpartyInformation: type: object description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. @@ -7201,6 +7215,71 @@ components: FULL_NAME: John Sender BIRTH_DATE: '1985-06-15' NATIONALITY: DE + ReconciliationInstructions: + type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to match it with the correct incoming transaction + example: UMA-Q12345-REF + IncomingRateDetails: + description: Details about the rate and fees for an incoming transaction. + type: object + required: + - gridApiMultiplier + - gridApiFixedFee + - gridApiVariableFeeRate + - gridApiVariableFeeAmount + properties: + gridApiMultiplier: + type: number + format: double + description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. + exclusiveMinimum: 0 + example: 0.925 + gridApiFixedFee: + type: integer + format: int64 + description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). + minimum: 0 + example: 10 + gridApiVariableFeeRate: + type: number + format: double + description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. + exclusiveMinimum: 0 + example: 0.003 + gridApiVariableFeeAmount: + type: number + format: int64 + description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. + minimum: 0 + example: 30 + IncomingTransactionFailureReason: + type: string + enum: + - LNURLP_FAILED + - PAY_REQUEST_FAILED + - PAYMENT_APPROVAL_WEBHOOK_ERROR + - PAYMENT_APPROVAL_TIMED_OUT + - OFFRAMP_FAILED + - MISSING_MANDATORY_PAYEE_DATA + - QUOTE_EXPIRED + - QUOTE_EXECUTION_FAILED + description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. + TransactionOneOf: + oneOf: + - title: Incoming Transaction + $ref: '#/components/schemas/IncomingTransaction' + - title: Outgoing Transaction + $ref: '#/components/schemas/OutgoingTransaction' + discriminator: + propertyName: type + mapping: + INCOMING: '#/components/schemas/IncomingTransaction' + OUTGOING: '#/components/schemas/OutgoingTransaction' CurrencyPreference: type: object required: @@ -7323,7 +7402,7 @@ components: accountId: type: string description: Source account identifier - example: InternalAccount:85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + example: InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 customerId: type: string description: Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner. @@ -7479,7 +7558,7 @@ components: Quote: type: object required: - - quoteId + - id - status - expiresAt - createdAt @@ -7493,7 +7572,7 @@ components: - feesIncluded - transactionId properties: - quoteId: + id: type: string description: Unique identifier for this quote example: Quote:019542f5-b3e7-1d02-0000-000000000006 @@ -7688,11 +7767,11 @@ components: BulkCustomerImportJob: type: object required: - - jobId + - id - status - progress properties: - jobId: + id: type: string description: Unique identifier for the bulk import job example: Job:019542f5-b3e7-1d02-0000-000000000006 @@ -7941,7 +8020,7 @@ components: type: object required: - timestamp - - webhookId + - id - type properties: timestamp: @@ -7949,7 +8028,7 @@ components: format: date-time description: ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) example: '2025-08-15T14:32:00Z' - webhookId: + id: type: string description: Unique identifier for this webhook delivery (can be used for idempotency) example: Webhook:019542f5-b3e7-1d02-0000-000000000007 diff --git a/openapi.yaml b/openapi.yaml index 212e82dc..d04d0386 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -1304,7 +1304,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '400': description: Bad request - Invalid parameters content: @@ -1398,7 +1398,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '400': description: Bad request - Invalid parameters content: @@ -2062,7 +2062,7 @@ paths: type: array description: List of transactions matching the criteria items: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' hasMore: type: boolean description: Indicates if more results are available beyond this page @@ -2112,7 +2112,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/Transaction' + $ref: '#/components/schemas/TransactionOneOf' '401': description: Unauthorized content: @@ -6783,6 +6783,32 @@ components: Optional Plaid account ID if the customer selected a specific account. If not provided, the default account will be used. example: plaid_account_id_123 + IncomingTransaction: + allOf: + - $ref: '#/components/schemas/Transaction' + - type: object + required: + - type + - receivedAmount + properties: + type: + type: string + enum: + - INCOMING + source: + $ref: '#/components/schemas/TransactionSourceOneOf' + receivedAmount: + $ref: '#/components/schemas/CurrencyAmount' + description: Amount received in the recipient's currency + reconciliationInstructions: + $ref: '#/components/schemas/ReconciliationInstructions' + description: Included for all transactions except those with "CREATED" status + rateDetails: + $ref: '#/components/schemas/IncomingRateDetails' + description: Details about the rate and fees for the transaction. + failureReason: + $ref: '#/components/schemas/IncomingTransactionFailureReason' + description: If the transaction failed, this field provides the reason for failure. Transaction: type: object required: @@ -6870,6 +6896,7 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' + REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' UmaAddressTransactionSource: allOf: - $ref: '#/components/schemas/BaseTransactionSource' @@ -6887,6 +6914,27 @@ components: description: UMA address of the sender example: $sender@uma.domain.com description: UMA address source details + RealtimeFundingTransactionSource: + allOf: + - $ref: '#/components/schemas/BaseTransactionSource' + - type: object + required: + - currency + - sourceType + properties: + sourceType: + type: string + enum: + - REALTIME_FUNDING + customerId: + type: string + description: The customer on whose behalf the transaction was initiated. + example: Customer:019542f5-b3e7-1d02-0000-000000000009 + currency: + type: string + description: Currency code for the funding source + example: USDC + description: Transaction was funded using a real-time funding source (RTP, SEPA Instant, Spark, Stables, etc.). TransactionSourceType: type: string enum: @@ -6901,86 +6949,14 @@ components: $ref: '#/components/schemas/AccountTransactionSource' - title: UMA Address Source $ref: '#/components/schemas/UmaAddressTransactionSource' + - title: Real-time Funding Source + $ref: '#/components/schemas/RealtimeFundingTransactionSource' discriminator: propertyName: sourceType mapping: ACCOUNT: '#/components/schemas/AccountTransactionSource' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionSource' - ReconciliationInstructions: - type: object - required: - - reference - properties: - reference: - type: string - description: Unique reference code that must be included with the payment to match it with the correct incoming transaction - example: UMA-Q12345-REF - IncomingRateDetails: - description: Details about the rate and fees for an incoming transaction. - type: object - required: - - gridApiMultiplier - - gridApiFixedFee - - gridApiVariableFeeRate - - gridApiVariableFeeAmount - properties: - gridApiMultiplier: - type: number - format: double - description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. - exclusiveMinimum: 0 - example: 0.925 - gridApiFixedFee: - type: integer - format: int64 - description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). - minimum: 0 - example: 10 - gridApiVariableFeeRate: - type: number - format: double - description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. - exclusiveMinimum: 0 - example: 0.003 - gridApiVariableFeeAmount: - type: number - format: int64 - description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. - minimum: 0 - example: 30 - IncomingTransactionFailureReason: - type: string - enum: - - LNURLP_FAILED - - PAY_REQUEST_FAILED - - PAYMENT_APPROVAL_WEBHOOK_ERROR - - PAYMENT_APPROVAL_TIMED_OUT - - OFFRAMP_FAILED - - MISSING_MANDATORY_PAYEE_DATA - - QUOTE_EXPIRED - - QUOTE_EXECUTION_FAILED - description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. - IncomingTransaction: - allOf: - - $ref: '#/components/schemas/Transaction' - - type: object - required: - - receivedAmount - properties: - source: - $ref: '#/components/schemas/TransactionSourceOneOf' - receivedAmount: - $ref: '#/components/schemas/CurrencyAmount' - description: Amount received in the recipient's currency - reconciliationInstructions: - $ref: '#/components/schemas/ReconciliationInstructions' - description: Included for all transactions except those with "CREATED" status - rateDetails: - $ref: '#/components/schemas/IncomingRateDetails' - description: Details about the rate and fees for the transaction. - failureReason: - $ref: '#/components/schemas/IncomingTransactionFailureReason' - description: If the transaction failed, this field provides the reason for failure. + REALTIME_FUNDING: '#/components/schemas/RealtimeFundingTransactionSource' Refund: type: object required: @@ -7063,10 +7039,14 @@ components: - $ref: '#/components/schemas/Transaction' - type: object required: + - type - sentAmount - - paymentInstructions - source properties: + type: + type: string + enum: + - OUTGOING source: $ref: '#/components/schemas/TransactionSourceOneOf' sentAmount: @@ -7119,12 +7099,26 @@ components: - CREATED - PENDING - PROCESSING + - SENT - COMPLETED - REJECTED - FAILED - REFUNDED - EXPIRED - description: Status of a payment transaction + description: | + Status of a payment transaction. + + | Status | Description | + |--------|-------------| + | `CREATED` | Initial lookup has been created | + | `PENDING` | Quote has been created | + | `PROCESSING` | Funding has been received and payment initiated | + | `SENT` | Cross border settlement has been initiated | + | `COMPLETED` | Cross border payment has been received, converted and payment has been sent to the offramp network | + | `REJECTED` | Receiving institution or wallet rejected payment, payment has been refunded | + | `FAILED` | An error occurred during payment | + | `REFUNDED` | Payment was unable to complete and refunded | + | `EXPIRED` | Quote has expired | AccountTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -7158,6 +7152,7 @@ components: mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' UmaAddressTransactionDestination: allOf: - $ref: '#/components/schemas/BaseTransactionDestination' @@ -7175,11 +7170,27 @@ components: description: UMA address of the recipient example: $receiver@uma.domain.com description: UMA address destination details + ExternalAccountDetailsTransactionDestination: + allOf: + - $ref: '#/components/schemas/BaseTransactionDestination' + - type: object + required: + - externalAccountDetails + - destinationType + properties: + destinationType: + type: string + enum: + - EXTERNAL_ACCOUNT_DETAILS + externalAccountDetails: + $ref: '#/components/schemas/ExternalAccountCreateRequest' + description: Transaction destination where external account details were provided inline at quote creation rather than using a pre-registered external account. TransactionDestinationType: type: string enum: - ACCOUNT - UMA_ADDRESS + - EXTERNAL_ACCOUNT_DETAILS description: Type of transaction destination example: ACCOUNT TransactionDestinationOneOf: @@ -7188,11 +7199,14 @@ components: $ref: '#/components/schemas/AccountTransactionDestination' - title: UMA Address Destination $ref: '#/components/schemas/UmaAddressTransactionDestination' + - title: External Account Details Destination + $ref: '#/components/schemas/ExternalAccountDetailsTransactionDestination' discriminator: propertyName: destinationType mapping: ACCOUNT: '#/components/schemas/AccountTransactionDestination' UMA_ADDRESS: '#/components/schemas/UmaAddressTransactionDestination' + EXTERNAL_ACCOUNT_DETAILS: '#/components/schemas/ExternalAccountDetailsTransactionDestination' CounterpartyInformation: type: object description: Additional information about the counterparty, if available and relevant to the transaction and platform. Only applicable for transactions to/from UMA addresses. @@ -7201,6 +7215,71 @@ components: FULL_NAME: John Sender BIRTH_DATE: '1985-06-15' NATIONALITY: DE + ReconciliationInstructions: + type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to match it with the correct incoming transaction + example: UMA-Q12345-REF + IncomingRateDetails: + description: Details about the rate and fees for an incoming transaction. + type: object + required: + - gridApiMultiplier + - gridApiFixedFee + - gridApiVariableFeeRate + - gridApiVariableFeeAmount + properties: + gridApiMultiplier: + type: number + format: double + description: The underlying multiplier from the mSATS to the receiving currency, including variable fees. + exclusiveMinimum: 0 + example: 0.925 + gridApiFixedFee: + type: integer + format: int64 + description: The fixed fee charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). + minimum: 0 + example: 10 + gridApiVariableFeeRate: + type: number + format: double + description: The variable fee rate charged by the Grid product to execute the quote as a percentage of the receiving currency amount. + exclusiveMinimum: 0 + example: 0.003 + gridApiVariableFeeAmount: + type: number + format: int64 + description: The variable fee amount charged by the Grid product to execute the quote in the smallest unit of the receiving currency (eg. cents). This is the receiving amount times gridApiVariableFeeRate. + minimum: 0 + example: 30 + IncomingTransactionFailureReason: + type: string + enum: + - LNURLP_FAILED + - PAY_REQUEST_FAILED + - PAYMENT_APPROVAL_WEBHOOK_ERROR + - PAYMENT_APPROVAL_TIMED_OUT + - OFFRAMP_FAILED + - MISSING_MANDATORY_PAYEE_DATA + - QUOTE_EXPIRED + - QUOTE_EXECUTION_FAILED + description: Reason for failure of an incoming transaction. This is used to provide more context on why a transaction failed. If the transaction is not in a failed state, this field is omitted. + TransactionOneOf: + oneOf: + - title: Incoming Transaction + $ref: '#/components/schemas/IncomingTransaction' + - title: Outgoing Transaction + $ref: '#/components/schemas/OutgoingTransaction' + discriminator: + propertyName: type + mapping: + INCOMING: '#/components/schemas/IncomingTransaction' + OUTGOING: '#/components/schemas/OutgoingTransaction' CurrencyPreference: type: object required: @@ -7323,7 +7402,7 @@ components: accountId: type: string description: Source account identifier - example: InternalAccount:85dcbd6-dced-4ec4-b756-3c3a9ea3d965 + example: InternalAccount:e85dcbd6-dced-4ec4-b756-3c3a9ea3d965 customerId: type: string description: Required when funding from an FBO account to identify the customer on whose behalf the transaction is being initiated. Otherwise, will default to the customerId of the account owner. @@ -7479,7 +7558,7 @@ components: Quote: type: object required: - - quoteId + - id - status - expiresAt - createdAt @@ -7493,7 +7572,7 @@ components: - feesIncluded - transactionId properties: - quoteId: + id: type: string description: Unique identifier for this quote example: Quote:019542f5-b3e7-1d02-0000-000000000006 @@ -7688,11 +7767,11 @@ components: BulkCustomerImportJob: type: object required: - - jobId + - id - status - progress properties: - jobId: + id: type: string description: Unique identifier for the bulk import job example: Job:019542f5-b3e7-1d02-0000-000000000006 @@ -7941,7 +8020,7 @@ components: type: object required: - timestamp - - webhookId + - id - type properties: timestamp: @@ -7949,7 +8028,7 @@ components: format: date-time description: ISO8601 timestamp when the webhook was sent (can be used to prevent replay attacks) example: '2025-08-15T14:32:00Z' - webhookId: + id: type: string description: Unique identifier for this webhook delivery (can be used for idempotency) example: Webhook:019542f5-b3e7-1d02-0000-000000000007 From c450d20d5a0ec1b456eb541181ededd4fbd0a30f Mon Sep 17 00:00:00 2001 From: Aaryaman Bhute Date: Mon, 23 Feb 2026 13:33:08 -0800 Subject: [PATCH 8/8] feat: add EUR account, beneficiary, external account, and payment instruction schemas Co-authored-by: Cursor --- .stainless/stainless.yml | 1 + mintlify/openapi.yaml | 124 ++++++++++++++++++ openapi.yaml | 124 ++++++++++++++++++ .../common/BasePaymentAccountInfo.yaml | 1 + .../schemas/common/EurAccountInfo.yaml | 49 +++++++ .../schemas/common/EurBeneficiary.yaml | 32 +++++ .../schemas/common/PaymentAccountType.yaml | 1 + .../schemas/common/PaymentEurAccountInfo.yaml | 13 ++ .../schemas/common/PaymentInstructions.yaml | 3 + .../BaseExternalAccountInfo.yaml | 1 + .../EurExternalAccountInfo.yaml | 18 +++ .../ExternalAccountInfoOneOf.yaml | 3 + .../ExternalAccountType.yaml | 1 + 13 files changed, 371 insertions(+) create mode 100644 openapi/components/schemas/common/EurAccountInfo.yaml create mode 100644 openapi/components/schemas/common/EurBeneficiary.yaml create mode 100644 openapi/components/schemas/common/PaymentEurAccountInfo.yaml create mode 100644 openapi/components/schemas/external_accounts/EurExternalAccountInfo.yaml diff --git a/.stainless/stainless.yml b/.stainless/stainless.yml index 2640ac13..6caeba56 100644 --- a/.stainless/stainless.yml +++ b/.stainless/stainless.yml @@ -490,6 +490,7 @@ openapi: - "$.components.schemas.PaymentBrlAccountInfo.allOf[0]" - "$.components.schemas.PaymentMxnAccountInfo.allOf[0]" - "$.components.schemas.PaymentDkkAccountInfo.allOf[0]" + - "$.components.schemas.PaymentEurAccountInfo.allOf[0]" - "$.components.schemas.PaymentInrAccountInfo.allOf[0]" - "$.components.schemas.PaymentNgnAccountInfo.allOf[0]" - "$.components.schemas.PaymentCadAccountInfo.allOf[0]" diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index d04d0386..9ee68593 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -4791,6 +4791,7 @@ components: BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + EUR_ACCOUNT: '#/components/schemas/PaymentEurAccountInfo' INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' @@ -4933,6 +4934,68 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF + EurAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - iban + properties: + accountType: + type: string + enum: + - EUR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - AT + - BE + - CY + - DE + - EE + - ES + - FI + - FR + - GR + - HR + - IE + - IT + - LT + - LU + - LV + - MT + - NL + - PT + - SI + - SK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + PaymentEurAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/EurAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF InrAccountInfo: type: object required: @@ -5591,6 +5654,7 @@ components: - BRL_ACCOUNT - MXN_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - INR_ACCOUNT - NGN_ACCOUNT - CAD_ACCOUNT @@ -5667,6 +5731,8 @@ components: $ref: '#/components/schemas/PaymentMxnAccountInfo' - title: DKK Account $ref: '#/components/schemas/PaymentDkkAccountInfo' + - title: EUR Account + $ref: '#/components/schemas/PaymentEurAccountInfo' - title: INR Account $ref: '#/components/schemas/PaymentInrAccountInfo' - title: NGN Account @@ -5708,6 +5774,7 @@ components: BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + EUR_ACCOUNT: '#/components/schemas/PaymentEurAccountInfo' INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' @@ -5815,6 +5882,7 @@ components: BASE_WALLET: '#/components/schemas/BaseWalletExternalAccountInfo' BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountInfo' HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' @@ -6127,6 +6195,58 @@ components: mapping: INDIVIDUAL: '#/components/schemas/DkkBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' + EurBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + EurExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/EurAccountInfo' + - 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' HkdBeneficiary: type: object required: @@ -6559,6 +6679,7 @@ components: - BASE_WALLET - BRL_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - HKD_ACCOUNT - IDR_ACCOUNT - INR_ACCOUNT @@ -6608,6 +6729,8 @@ components: $ref: '#/components/schemas/BrlExternalAccountInfo' - title: DKK Account $ref: '#/components/schemas/DkkExternalAccountInfo' + - title: EUR Account + $ref: '#/components/schemas/EurExternalAccountInfo' - title: GBP Account $ref: '#/components/schemas/GbpExternalAccountInfo' - title: HKD Account @@ -6647,6 +6770,7 @@ components: mapping: BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountInfo' GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' diff --git a/openapi.yaml b/openapi.yaml index d04d0386..9ee68593 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -4791,6 +4791,7 @@ components: BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + EUR_ACCOUNT: '#/components/schemas/PaymentEurAccountInfo' INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' @@ -4933,6 +4934,68 @@ components: type: string description: Unique reference code that must be included with the payment to properly credit it example: UMA-Q12345-REF + EurAccountInfo: + type: object + required: + - accountType + - countries + - paymentRails + - iban + properties: + accountType: + type: string + enum: + - EUR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - AT + - BE + - CY + - DE + - EE + - ES + - FI + - FR + - GR + - HR + - IE + - IT + - LT + - LU + - LV + - MT + - NL + - PT + - SI + - SK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank + PaymentEurAccountInfo: + allOf: + - $ref: '#/components/schemas/BasePaymentAccountInfo' + - $ref: '#/components/schemas/EurAccountInfo' + - type: object + required: + - reference + properties: + reference: + type: string + description: Unique reference code that must be included with the payment to properly credit it + example: UMA-Q12345-REF InrAccountInfo: type: object required: @@ -5591,6 +5654,7 @@ components: - BRL_ACCOUNT - MXN_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - INR_ACCOUNT - NGN_ACCOUNT - CAD_ACCOUNT @@ -5667,6 +5731,8 @@ components: $ref: '#/components/schemas/PaymentMxnAccountInfo' - title: DKK Account $ref: '#/components/schemas/PaymentDkkAccountInfo' + - title: EUR Account + $ref: '#/components/schemas/PaymentEurAccountInfo' - title: INR Account $ref: '#/components/schemas/PaymentInrAccountInfo' - title: NGN Account @@ -5708,6 +5774,7 @@ components: BRL_ACCOUNT: '#/components/schemas/PaymentBrlAccountInfo' MXN_ACCOUNT: '#/components/schemas/PaymentMxnAccountInfo' DKK_ACCOUNT: '#/components/schemas/PaymentDkkAccountInfo' + EUR_ACCOUNT: '#/components/schemas/PaymentEurAccountInfo' INR_ACCOUNT: '#/components/schemas/PaymentInrAccountInfo' NGN_ACCOUNT: '#/components/schemas/PaymentNgnAccountInfo' CAD_ACCOUNT: '#/components/schemas/PaymentCadAccountInfo' @@ -5815,6 +5882,7 @@ components: BASE_WALLET: '#/components/schemas/BaseWalletExternalAccountInfo' BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountInfo' HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' INR_ACCOUNT: '#/components/schemas/InrExternalAccountInfo' @@ -6127,6 +6195,58 @@ components: mapping: INDIVIDUAL: '#/components/schemas/DkkBeneficiary' BUSINESS: '#/components/schemas/BusinessBeneficiary' + EurBeneficiary: + type: object + required: + - beneficiaryType + - fullName + properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: '#/components/schemas/Address' + EurExternalAccountInfo: + allOf: + - $ref: '#/components/schemas/BaseExternalAccountInfo' + - $ref: '#/components/schemas/EurAccountInfo' + - 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' HkdBeneficiary: type: object required: @@ -6559,6 +6679,7 @@ components: - BASE_WALLET - BRL_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - HKD_ACCOUNT - IDR_ACCOUNT - INR_ACCOUNT @@ -6608,6 +6729,8 @@ components: $ref: '#/components/schemas/BrlExternalAccountInfo' - title: DKK Account $ref: '#/components/schemas/DkkExternalAccountInfo' + - title: EUR Account + $ref: '#/components/schemas/EurExternalAccountInfo' - title: GBP Account $ref: '#/components/schemas/GbpExternalAccountInfo' - title: HKD Account @@ -6647,6 +6770,7 @@ components: mapping: BRL_ACCOUNT: '#/components/schemas/BrlExternalAccountInfo' DKK_ACCOUNT: '#/components/schemas/DkkExternalAccountInfo' + EUR_ACCOUNT: '#/components/schemas/EurExternalAccountInfo' GBP_ACCOUNT: '#/components/schemas/GbpExternalAccountInfo' HKD_ACCOUNT: '#/components/schemas/HkdExternalAccountInfo' IDR_ACCOUNT: '#/components/schemas/IdrExternalAccountInfo' diff --git a/openapi/components/schemas/common/BasePaymentAccountInfo.yaml b/openapi/components/schemas/common/BasePaymentAccountInfo.yaml index 9c1adb77..f532dea4 100644 --- a/openapi/components/schemas/common/BasePaymentAccountInfo.yaml +++ b/openapi/components/schemas/common/BasePaymentAccountInfo.yaml @@ -11,6 +11,7 @@ discriminator: BRL_ACCOUNT: ./PaymentBrlAccountInfo.yaml MXN_ACCOUNT: ./PaymentMxnAccountInfo.yaml DKK_ACCOUNT: ./PaymentDkkAccountInfo.yaml + EUR_ACCOUNT: ./PaymentEurAccountInfo.yaml INR_ACCOUNT: ./PaymentInrAccountInfo.yaml NGN_ACCOUNT: ./PaymentNgnAccountInfo.yaml CAD_ACCOUNT: ./PaymentCadAccountInfo.yaml diff --git a/openapi/components/schemas/common/EurAccountInfo.yaml b/openapi/components/schemas/common/EurAccountInfo.yaml new file mode 100644 index 00000000..b386378a --- /dev/null +++ b/openapi/components/schemas/common/EurAccountInfo.yaml @@ -0,0 +1,49 @@ +type: object +required: +- accountType +- countries +- paymentRails +- iban +properties: + accountType: + type: string + enum: + - EUR_ACCOUNT + countries: + type: array + items: + type: string + enum: + - AT + - BE + - CY + - DE + - EE + - ES + - FI + - FR + - GR + - HR + - IE + - IT + - LT + - LU + - LV + - MT + - NL + - PT + - SI + - SK + paymentRails: + type: array + items: + type: string + enum: + - SEPA + - SEPA_INSTANT + iban: + type: string + description: The IBAN of the bank + swiftBic: + type: string + description: The SWIFT BIC of the bank diff --git a/openapi/components/schemas/common/EurBeneficiary.yaml b/openapi/components/schemas/common/EurBeneficiary.yaml new file mode 100644 index 00000000..c3b5722d --- /dev/null +++ b/openapi/components/schemas/common/EurBeneficiary.yaml @@ -0,0 +1,32 @@ +type: object +required: +- beneficiaryType +- fullName +properties: + beneficiaryType: + type: string + enum: + - INDIVIDUAL + fullName: + type: string + description: The full name of the beneficiary + birthDate: + type: string + description: The birth date of the beneficiary + nationality: + type: string + description: The nationality of the beneficiary + email: + type: string + description: The email of the beneficiary + phoneNumber: + type: string + description: The phone number of the beneficiary + registrationNumber: + type: string + description: The registration number of the beneficiary + countryOfResidence: + type: string + description: The country of residence of the beneficiary + address: + $ref: ./Address.yaml diff --git a/openapi/components/schemas/common/PaymentAccountType.yaml b/openapi/components/schemas/common/PaymentAccountType.yaml index 4377774e..5167f5d2 100644 --- a/openapi/components/schemas/common/PaymentAccountType.yaml +++ b/openapi/components/schemas/common/PaymentAccountType.yaml @@ -4,6 +4,7 @@ enum: - BRL_ACCOUNT - MXN_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - INR_ACCOUNT - NGN_ACCOUNT - CAD_ACCOUNT diff --git a/openapi/components/schemas/common/PaymentEurAccountInfo.yaml b/openapi/components/schemas/common/PaymentEurAccountInfo.yaml new file mode 100644 index 00000000..7a5403ce --- /dev/null +++ b/openapi/components/schemas/common/PaymentEurAccountInfo.yaml @@ -0,0 +1,13 @@ +allOf: + - $ref: ./BasePaymentAccountInfo.yaml + - $ref: ./EurAccountInfo.yaml + - type: object + required: + - reference + properties: + reference: + type: string + description: >- + Unique reference code that must be included with the payment to properly + credit it + example: UMA-Q12345-REF diff --git a/openapi/components/schemas/common/PaymentInstructions.yaml b/openapi/components/schemas/common/PaymentInstructions.yaml index a8d294f7..a478f9f9 100644 --- a/openapi/components/schemas/common/PaymentInstructions.yaml +++ b/openapi/components/schemas/common/PaymentInstructions.yaml @@ -22,6 +22,8 @@ properties: $ref: ../common/PaymentMxnAccountInfo.yaml - title: DKK Account $ref: ../common/PaymentDkkAccountInfo.yaml + - title: EUR Account + $ref: ../common/PaymentEurAccountInfo.yaml - title: INR Account $ref: ../common/PaymentInrAccountInfo.yaml - title: NGN Account @@ -63,6 +65,7 @@ properties: BRL_ACCOUNT: ../common/PaymentBrlAccountInfo.yaml MXN_ACCOUNT: ../common/PaymentMxnAccountInfo.yaml DKK_ACCOUNT: ../common/PaymentDkkAccountInfo.yaml + EUR_ACCOUNT: ../common/PaymentEurAccountInfo.yaml INR_ACCOUNT: ../common/PaymentInrAccountInfo.yaml NGN_ACCOUNT: ../common/PaymentNgnAccountInfo.yaml CAD_ACCOUNT: ../common/PaymentCadAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml index cc967a8c..cef853d4 100644 --- a/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml +++ b/openapi/components/schemas/external_accounts/BaseExternalAccountInfo.yaml @@ -18,6 +18,7 @@ discriminator: BASE_WALLET: ./BaseWalletExternalAccountInfo.yaml BRL_ACCOUNT: ./BrlExternalAccountInfo.yaml DKK_ACCOUNT: ./DkkExternalAccountInfo.yaml + EUR_ACCOUNT: ./EurExternalAccountInfo.yaml HKD_ACCOUNT: ./HkdExternalAccountInfo.yaml IDR_ACCOUNT: ./IdrExternalAccountInfo.yaml INR_ACCOUNT: ./InrExternalAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/EurExternalAccountInfo.yaml b/openapi/components/schemas/external_accounts/EurExternalAccountInfo.yaml new file mode 100644 index 00000000..3b6d5d44 --- /dev/null +++ b/openapi/components/schemas/external_accounts/EurExternalAccountInfo.yaml @@ -0,0 +1,18 @@ +allOf: +- $ref: ./BaseExternalAccountInfo.yaml +- $ref: ../common/EurAccountInfo.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/ExternalAccountInfoOneOf.yaml b/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml index b6030a15..b834c99b 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountInfoOneOf.yaml @@ -3,6 +3,8 @@ oneOf: $ref: ./BrlExternalAccountInfo.yaml - title: DKK Account $ref: ./DkkExternalAccountInfo.yaml +- title: EUR Account + $ref: ./EurExternalAccountInfo.yaml - title: GBP Account $ref: ./GbpExternalAccountInfo.yaml - title: HKD Account @@ -42,6 +44,7 @@ discriminator: mapping: BRL_ACCOUNT: ./BrlExternalAccountInfo.yaml DKK_ACCOUNT: ./DkkExternalAccountInfo.yaml + EUR_ACCOUNT: ./EurExternalAccountInfo.yaml GBP_ACCOUNT: ./GbpExternalAccountInfo.yaml HKD_ACCOUNT: ./HkdExternalAccountInfo.yaml IDR_ACCOUNT: ./IdrExternalAccountInfo.yaml diff --git a/openapi/components/schemas/external_accounts/ExternalAccountType.yaml b/openapi/components/schemas/external_accounts/ExternalAccountType.yaml index be9f55ab..ced71ff8 100644 --- a/openapi/components/schemas/external_accounts/ExternalAccountType.yaml +++ b/openapi/components/schemas/external_accounts/ExternalAccountType.yaml @@ -11,6 +11,7 @@ enum: - BASE_WALLET - BRL_ACCOUNT - DKK_ACCOUNT + - EUR_ACCOUNT - HKD_ACCOUNT - IDR_ACCOUNT - INR_ACCOUNT