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