From 03a91be829a1eaba538a367b330a0ffd4363b7e1 Mon Sep 17 00:00:00 2001 From: "Peter.Rojs" Date: Wed, 29 Jul 2026 17:31:02 +0000 Subject: [PATCH] Add USD account bank, account type and wire routing fields --- mintlify/openapi.yaml | 71 ++++++++++++++----- .../payment-flow/send-payment.mdx | 5 ++ mintlify/snippets/external-accounts.mdx | 6 ++ openapi.yaml | 71 ++++++++++++++----- .../schemas/common/UsdAccountInfoBase.yaml | 40 +++++++++++ .../schemas/transfers/TransferOutRequest.yaml | 2 + 6 files changed, 159 insertions(+), 36 deletions(-) diff --git a/mintlify/openapi.yaml b/mintlify/openapi.yaml index ecfdd1a2b..3bdc4bafc 100644 --- a/mintlify/openapi.yaml +++ b/mintlify/openapi.yaml @@ -13578,10 +13578,43 @@ components: minLength: 9 maxLength: 9 pattern: ^[0-9]{9}$ + bankName: + type: string + description: The name of the financial institution holding the account + example: Chase Bank + minLength: 1 + maxLength: 140 + bankAccountType: + type: string + description: Whether the account is a checking or a savings account + enum: + - CHECKING + - SAVINGS + example: CHECKING + intermediaryBankName: + type: string + description: The name of the intermediary financial institution, for accounts reachable only through a correspondent bank. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: JPMorgan Chase Bank + minLength: 1 + maxLength: 140 + intermediaryRoutingNumber: + type: string + description: The ABA routing number of the intermediary financial institution. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: '021000021' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]{9}$ + fiToFiInformation: + type: string + description: Bank-to-bank instructions carried alongside the payment. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: /BNF/Invoice 4471 + maxLength: 210 example: accountType: USD_ACCOUNT accountNumber: '1234567890' routingNumber: '021000021' + bankName: Chase Bank + bankAccountType: CHECKING UsdAccountInfo: allOf: - $ref: '#/components/schemas/UsdAccountInfoBase' @@ -20682,6 +20715,24 @@ components: description: The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail. allOf: - $ref: '#/components/schemas/PaymentRail' + PurposeOfPayment: + type: string + description: The purpose of the payment. This may be required when sending to certain geographies (e.g. India). + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - TAX_PAYMENT + - LOAN_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - FAMILY_SUPPORT + - SALARY_PAYMENT + - OTHER TransferOutRequest: type: object required: @@ -20704,6 +20755,8 @@ components: maxLength: 80 description: 'Free-form information about the payment that travels with it to the recipient. The field this populates depends on the payment rail: for ACH it populates the Addenda record, for FedNow and RTP it populates the remittanceInformation field, and for wires it populates the OBI (Originator to Beneficiary Information) / beneficiary information.' example: '12345' + purposeOfPayment: + $ref: '#/components/schemas/PurposeOfPayment' CurrencyPreference: type: object required: @@ -21059,24 +21112,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 (e.g. India). - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - TAX_PAYMENT - - LOAN_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - FAMILY_SUPPORT - - SALARY_PAYMENT - - OTHER QuoteRequest: type: object required: diff --git a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx index 548095f84..12a4ec0cd 100644 --- a/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx +++ b/mintlify/payouts-and-b2b/payment-flow/send-payment.mdx @@ -90,6 +90,11 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/transfer-out' \ `remittanceInformation` is optional. Use it to send a reference that travels with the payment to the recipient (max 80 characters). This populates the ACH Addenda record, FedNow/RTP remittance information, or wire OBI field depending on the payment rail. + + `purposeOfPayment` is optional and accepts the same values as on a quote. Some destinations + require it, and some rails carry it on the payment itself. + + ```json Success (201 Created) { diff --git a/mintlify/snippets/external-accounts.mdx b/mintlify/snippets/external-accounts.mdx index 461760d5e..82f756c17 100644 --- a/mintlify/snippets/external-accounts.mdx +++ b/mintlify/snippets/external-accounts.mdx @@ -79,6 +79,12 @@ curl -X POST 'https://api.lightspark.com/grid/2025-10-13/customers/external-acco Category must be `CHECKING` or `SAVINGS`. Routing number must be 9 digits. + + + Three further fields apply to the `WIRE` rail and are ignored on ACH, RTP and FedNow: + `intermediaryBankName` and `intermediaryRoutingNumber`, for a beneficiary bank reachable only + through a correspondent, and `fiToFiInformation` for bank-to-bank instructions. + diff --git a/openapi.yaml b/openapi.yaml index ecfdd1a2b..3bdc4bafc 100644 --- a/openapi.yaml +++ b/openapi.yaml @@ -13578,10 +13578,43 @@ components: minLength: 9 maxLength: 9 pattern: ^[0-9]{9}$ + bankName: + type: string + description: The name of the financial institution holding the account + example: Chase Bank + minLength: 1 + maxLength: 140 + bankAccountType: + type: string + description: Whether the account is a checking or a savings account + enum: + - CHECKING + - SAVINGS + example: CHECKING + intermediaryBankName: + type: string + description: The name of the intermediary financial institution, for accounts reachable only through a correspondent bank. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: JPMorgan Chase Bank + minLength: 1 + maxLength: 140 + intermediaryRoutingNumber: + type: string + description: The ABA routing number of the intermediary financial institution. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: '021000021' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]{9}$ + fiToFiInformation: + type: string + description: Bank-to-bank instructions carried alongside the payment. Used on the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: /BNF/Invoice 4471 + maxLength: 210 example: accountType: USD_ACCOUNT accountNumber: '1234567890' routingNumber: '021000021' + bankName: Chase Bank + bankAccountType: CHECKING UsdAccountInfo: allOf: - $ref: '#/components/schemas/UsdAccountInfoBase' @@ -20682,6 +20715,24 @@ components: description: The payment rail to use for the transfer. Must be one of the rails supported by the destination account. If not specified, the system will select a default rail. allOf: - $ref: '#/components/schemas/PaymentRail' + PurposeOfPayment: + type: string + description: The purpose of the payment. This may be required when sending to certain geographies (e.g. India). + enum: + - GIFT + - SELF + - GOODS_OR_SERVICES + - EDUCATION + - HEALTH_OR_MEDICAL + - REAL_ESTATE_PURCHASE + - TAX_PAYMENT + - LOAN_PAYMENT + - UTILITY_BILL + - DONATION + - TRAVEL + - FAMILY_SUPPORT + - SALARY_PAYMENT + - OTHER TransferOutRequest: type: object required: @@ -20704,6 +20755,8 @@ components: maxLength: 80 description: 'Free-form information about the payment that travels with it to the recipient. The field this populates depends on the payment rail: for ACH it populates the Addenda record, for FedNow and RTP it populates the remittanceInformation field, and for wires it populates the OBI (Originator to Beneficiary Information) / beneficiary information.' example: '12345' + purposeOfPayment: + $ref: '#/components/schemas/PurposeOfPayment' CurrencyPreference: type: object required: @@ -21059,24 +21112,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 (e.g. India). - enum: - - GIFT - - SELF - - GOODS_OR_SERVICES - - EDUCATION - - HEALTH_OR_MEDICAL - - REAL_ESTATE_PURCHASE - - TAX_PAYMENT - - LOAN_PAYMENT - - UTILITY_BILL - - DONATION - - TRAVEL - - FAMILY_SUPPORT - - SALARY_PAYMENT - - OTHER QuoteRequest: type: object required: diff --git a/openapi/components/schemas/common/UsdAccountInfoBase.yaml b/openapi/components/schemas/common/UsdAccountInfoBase.yaml index 77ad361d0..e9a77eaf6 100644 --- a/openapi/components/schemas/common/UsdAccountInfoBase.yaml +++ b/openapi/components/schemas/common/UsdAccountInfoBase.yaml @@ -20,7 +20,47 @@ properties: minLength: 9 maxLength: 9 pattern: ^[0-9]{9}$ + bankName: + type: string + description: The name of the financial institution holding the account + example: Chase Bank + minLength: 1 + maxLength: 140 + bankAccountType: + type: string + description: Whether the account is a checking or a savings account + enum: + - CHECKING + - SAVINGS + example: CHECKING + intermediaryBankName: + type: string + description: >- + The name of the intermediary financial institution, for accounts reachable + only through a correspondent bank. Used on the WIRE rail; ignored on ACH, + RTP and FEDNOW. + example: JPMorgan Chase Bank + minLength: 1 + maxLength: 140 + intermediaryRoutingNumber: + type: string + description: >- + The ABA routing number of the intermediary financial institution. Used on + the WIRE rail; ignored on ACH, RTP and FEDNOW. + example: '021000021' + minLength: 9 + maxLength: 9 + pattern: ^[0-9]{9}$ + fiToFiInformation: + type: string + description: >- + Bank-to-bank instructions carried alongside the payment. Used on the WIRE + rail; ignored on ACH, RTP and FEDNOW. + example: /BNF/Invoice 4471 + maxLength: 210 example: accountType: USD_ACCOUNT accountNumber: '1234567890' routingNumber: '021000021' + bankName: Chase Bank + bankAccountType: CHECKING diff --git a/openapi/components/schemas/transfers/TransferOutRequest.yaml b/openapi/components/schemas/transfers/TransferOutRequest.yaml index 1678b4070..54687325f 100644 --- a/openapi/components/schemas/transfers/TransferOutRequest.yaml +++ b/openapi/components/schemas/transfers/TransferOutRequest.yaml @@ -26,3 +26,5 @@ properties: remittanceInformation field, and for wires it populates the OBI (Originator to Beneficiary Information) / beneficiary information. example: '12345' + purposeOfPayment: + $ref: ../quotes/PurposeOfPayment.yaml