Payments
J.P. Morgan Wallet™ enables you to access global payment methods for both low-value and high-value payments in multiple currencies and locations.
Before learning about payments in Wallet, make sure that you understand how virtual accounts work.
Payment types
You can use the Wallet API to perform several types of payments. We sort the payment types into three broad categories based on the movement of funds, which are described in the following sections.
Move funds into Wallet
These types of payments physically move funds from an external Demand Deposit Account (DDA) into your Wallet DDA and are available to view in DDA statements, Wallet reports, and queries.
- PayIn: Fund your Wallet DDA from a source funding DDA.
- PayInto: Transfer funds from a source funding DDA to a counterparty's Virtual Transaction Account (VTA). Essentially, perform a PayIn and a PayTo in a single request.
- PayInto Collection: Transfer funds from a counterparty's DDA to a VTA in your Wallet program.
- PayInto Receipt: Receive funds from an external account into a counterparty's VTA (not initiated by you).
Move funds within Wallet
These types of payments virtually move funds between virtual accounts in a single Wallet program—that is, the funds stay within the same DDA. These transactions are available to view in Wallet reports and queries.
- PayTo: Allocate funds from your Wallet DDA to a counterparty's Virtual Transaction Account (VTA).
- Virtual-to-Virtual (V2V): Transfer funds between VTAs within your virtual account structure.
Move funds out of Wallet
These types of payments physically move funds from a Wallet DDA to an external DDA and are available to view in DDA statements, Wallet reports, and queries.
- PayOut: Transfer funds from your Wallet DDA to a counterparty's external DDA. You can optionally specify the debited VTA. PayOut transactions have different requirements depending on the payment rail:
- US ACH: Send low-value funds to an external account through US Automated Clearing House.
- US Wire: Send high-value funds to an external account in the US through a wire transfer.
- US RTP: Send low-value funds to an external account in the US near real-time.
- UK BACS: Send low-value funds to an external account through UK Bankers' Automated Clearing System.
- UK Wire: Send high-value funds to an external account in the UK through a wire transfer.
- UK FPS: Send low-value funds to an external account in the UK near real-time.
- EU SEPA: Send low-value funds to an external account through EU Single Euro Payments Area.
- EU Wire: Send high-value funds to an external account in the EU through a wire transfer.
- SEPA Instant: Send low-value funds to an external account in the EU near real-time.
- PayPal / Venmo: Send funds to a PayPal or Venmo account.
- Push to Debit Card: Send funds to a debit card.
- PayOut Collection: Allow a counterparty to pull funds from a VTA into an external account. Also known as a Received Direct Debit Transfer (RDDT).
Reconciliation
If a transaction is rejected, or if you or a counterparty request a reversal/return of funds, Wallet must reconcile the accounts and try to return the funds to the original account that they were sent from. These types of transactions are known as "reconciliation."
If Wallet throws an exception when processing the transaction, it creates a new RETURNCREDIT transaction that either returns the funds to the original VTA or returns the funds to the DEFAULT (reconciliation) VTA.
- Matched returns: If a PayOut is not successfully completed, Wallet tries to match the funds back to the original VTA from which they were sent.
- Credit reversal: If a counterparty sends funds from their physical bank account to a VTA using a PRN, and then requests a reversal of the transaction, Wallet tries to deduct the funds from the VTA.
- Positive Pay: Approve or deny a request from a counterparty to direct debit a VTA using a PRN.
Common elements
The different payment types share many common elements in their requests, responses, and notifications. The following sections describe elements that are common to most payment types, and the individual pages for each payment type describe specific nuances and requirements.
Some common elements are:
- Debtor account: DDA to debit.
- Debtor agent: Financial institution that holds the debtor account.
- Ultimate debtor: VTA to debit.
- Creditor account: DDA to credit.
- Creditor agent: Financial institution that holds the creditor account.
- Ultimate creditor: VTA to credit.
Depending on the payment type, some or all of these elements might be required.
Payment methods
When you initiate a payment using the Wallet API, you must provide a payment method in the paymentInformation.paymentMethod body parameter. It must be one of the following values:
| Value | Description | Transactions used in |
|---|---|---|
BOOK |
Transfer funds between J.P. Morgan accounts. |
|
DD |
Initiate a direct debit into or out of J.P. Morgan accounts. |
|
TRF |
Transfer funds into or out of J.P. Morgan accounts. |
|
Payment rails
When you send funds from your Wallet DDA to an external bank account, you must choose a payment rail to use. Each payment rail has different capabilities and limitations—choose an appropriate payment rail according to your use case.
The following table lists the payment rails that Wallet supports in each region. For more information about each of the payment rails, see Move funds out of Wallet.
| Payment rail | NAMR - New York | NAMR - Other | EMEA | APAC |
|---|---|---|---|---|
| Low-value domestic (ACH / BACS / SEPA) | ✓ | ✓ | ✓ | ✓ |
| Low-value cross-currency (FX ACH / FX BACS / FX SEPA) | ✓ | ✗ | ✓ | ✓ |
| High-value domestic (Wire) | ✓ | ✓ | ✓ | ✗ |
| High-value cross-currency (FX Wire) | ✗ | ✗ | ✓ | ✗ |
| Real-time / instant (domestic) | ✓ | ✓ | ✓ | ✗ |
| Alternative methods (PayPal / Venmo / Push to Card) | ✓ | ✓ | ✗ | ✗ |
Requested execution date
The requested execution date is the date that you request that Wallet executes the transaction. The range of allowed values depends on the payment type.
For most payment types, the corresponding body parameter is paymentInformation.requestedExecutionDate. For PayInto Collection, the corresponding body parameter is paymentInformation.requestedCollectionDate.
If you set the requested execution date to a date in the past, Wallet rolls that date to the current business day. If you set the requested execution date to a date in the future, Wallet waits to execute the request until that date.
If the requested execution date is not a business day, Wallet rolls the date to the following business day.
In the following table, "T" is the date that you send the request. For example, "T-7" means "seven business days before the date that you send the request."
| Payment type | Allowed execution dates |
|---|---|
| PayIn | T-1 to T |
| PayInto | T-1 to T |
| PayInto Collection: US ACH | T-7 to T+90 |
| PayInto Collection: EU SEPA | T+1 to T+14 |
| PayOut: US ACH | T-7 to T+90 |
| PayOut: US RTP | T |
| PayOut: UK BACS | T-7 to T+90 |
| PayOut: UK FPS | T |
| PayOut: EU SEPA | T-7 to T+90 |
| PayOut: EU SEPA Instant | T |
| PayOut: Wire | T-7 to T+90 |
| PayOut: PayPal/Venmo | T-1 to T |
| PayOut: Push to Debit Card | T-1 to T |
| PayTo | T-1 to T |
| V2V | T-1 to T |
Transaction timing
Processing times for payment transactions depend on the transaction type.
Internal transactions
Wallet processes transactions that move funds internally (PayIn, PayTo, PayInto, and V2V) in up to five seconds.
External transactions
Processing times for transactions that involve external accounts (PayInto Collection, PayInto Receipt, PayOut, and PayOut Collection) depend on the payment rail.
Instant payment rails like US RTP, UK FPS, and SEPA Instant are processed in seconds. However, other payment rails take longer, sometimes multiple business days.
US
The following table lists the different transaction timings for US payment rails.
| Transaction event | ACH | ACH FX | Wire | Wire FX | RTP |
|---|---|---|---|---|---|
| Soft posting debit | Same day | Same day | Near real-time | Same day | Same day |
| Hard posting debit | Same business day | Settlement day | Near real-time | Same business day | Settlement day |
| Soft posting credit | Same business day | Settlement day | Near real-time | Same business day | Settlement day |
| Hard posting credit | Same business day | Settlement day | Near real-time | Same business day | Settlement day |
| Statement timing | Same business day | Settlement day | Same business day | Same business day | Settlement day |
| Funds availability (debtor) | Same business day | Settlement day | Near real-time | Same business day | Settlement day |
| Funds availability (creditor) | Same business day | Settlement day | Near real-time | Same business day | Settlement day |
Non-US
The following table lists the different transaction timings for non-US payment rails.
| Transaction event | UK BACS | UK BACS FX | UK FPS | EU SEPA | EU SEPA FX | SEPA Instant | Wire | Wire FX |
|---|---|---|---|---|---|---|---|---|
| Soft posting debit | Same day | Same day | Near real-time | Same day | Same day | Near real-time | Same day | Same day |
| Hard posting debit | Settlement day | Settlement day | Near real-time | Settlement day | Settlement day | Near real-time | Same business day | Settlement day |
| Soft posting credit | Settlement day | Settlement day | Near real-time | Settlement day | Settlement day | Near real-time | Same business day | Settlement day |
| Hard posting credit | Settlement day | Settlement day | Near real-time | Settlement day | Settlement day | Near real-time | Same business day | Settlement day |
| Statement timing | Settlement day | Settlement day | Same business day | Settlement day | Settlement day | Same business day | Same business day | Settlement day |
| Funds availability (debtor) | Settlement day | Settlement day | Near real-time | Settlement day | Settlement day | Near real-time | Same business day | Settlement day |
| Funds availability (creditor) | Settlement day | Settlement day | Near real-time | Settlement day | Settlement day | Near real-time | Same business day | Settlement day |
Example: UK BACS
To illustrate how non-instant transactions are processed, see the following UK BACS examples. BACS transactions are processed in three business days.
BACS standard settlement cycle:
- Day 1: Transaction submitted, processing starts
- Day 2: Processing continues
- Day 3: Settlement (funds credited/debited, statement updated)
BACS transactions do not process on weekends, so if you initiate a transaction on a Saturday, it will not start processing until the following Monday (assuming it's not a holiday):
BACS transaction initiated on Saturday:
- Saturday: Transaction submitted
- Sunday: No processing
- Monday (day 1): Processing starts
- Tuesday (day 2): Processing continues
- Wednesday (day 3): Settlement (funds credited/debited, statement updated)
If you initiate a BACS transaction on a Thursday, it will start processing that day, but will not finish processing until the following Monday (assuming it's not a holiday):
BACS transaction initiated on Thursday:
- Thursday (day 1): Transaction submitted, processing starts
- Friday (day 2): Processing continues
- Saturday: No processing
- Sunday: No processing
- Monday (day 3): Settlement (funds credited/debited, statement updated)
The following tables list the timing of when debits and credits are posted and funds are available depending on the payment rail.
Service level codes
When you send a PayOut request, you must set the paymentTypeInformation.serviceLevel body parameter to the payment rail that you will use. Depending on the payment rail, you must set either the serviceLevel.code parameter or the serviceLevel.proprietary parameter.
The following table lists the service level codes for each payment rail.
| Payment rail | Body parameter | Service level code |
|---|---|---|
| US ACH | serviceLevel.code |
NURG |
| US ACH FX | serviceLevel.proprietary |
NURGFX |
| US RTP | serviceLevel.code |
INST |
| US alternative methods (PayPal, Venmo) | serviceLevel.proprietary |
NURGPW |
| UK BACS | serviceLevel.proprietary |
NURGSC |
| UK BACS FX | serviceLevel.proprietary |
NURGFX |
| UK FPS | serviceLevel.code |
INST |
| EU SEPA | serviceLevel.code |
SEPA |
| EU SEPA FX | serviceLevel.proprietary |
SEPAFX |
| EU SEPA Instant | serviceLevel.code |
INST |
| Wire | serviceLevel.code |
URGP |
| Wire FX | serviceLevel.proprietary |
URGPFX |
Standard Entry Class codes
A Standard Entry Class (SEC) code describes how the recipient of a US ACH payment authorized the transaction. It is mandatory for all ACH payments to include an SEC code.
You can include an SEC code in the localInstrument.code field for the following types of payments:
The following table lists the supported SEC codes:
| SEC code | Name |
|---|---|
CCD |
Corporate Credit or Debit Entry |
PPD |
Prearranged Payment and Deposit |
TEL |
Telephone-Initiated Entry |
WEB |
Internet Initiated / Mobile Entry |
Clearing system identification codes
In PayOut transactions for certain payment rails, you must include the clearing system identification codes for both the debtor agent and the creditor agent in either clearingSystemIdentification.code or clearingSystemIdentification.proprietary.
The following table lists the clearing system identification codes for each payment rail.
| Clearing system | Parameter | Code |
|---|---|---|
| US ACH | clearingSystemIdentification.code |
USABA |
| US Wire | clearingSystemIdentification.code |
USABA |
| US RTP | clearingSystemIdentification.code |
USABA |
| UK BACS | clearingSystemIdentification.code |
GBDSC |
| UK Wire | clearingSystemIdentification.proprietary |
GBP ROUTING |
| UK FPS | clearingSystemIdentification.code |
GBDSC |
| EU Wire | clearingSystemIdentification.proprietary |
EUR ROUTING |
Transaction status codes
After you submit a request to initiate a payment, the response that Wallet returns contains the status of the transaction, which will be one of the following codes.
| Status code | Name | Description |
|---|---|---|
ACSC |
AcceptedSettlementCompleted | Settlement on the debtor's account is complete. This status is for transaction status reasons, not for financial information, and can only be used after bilateral agreement. |
ACSP |
AcceptedSettlementInProcess | All preceding checks such as technical validation and customer profile validation were successful and Wallet accepted payment initiation for execution. |
ACTC |
AcceptedTechnicalValidation | Authentication and syntactical and semantical validation were successful. |
ACWP |
AcceptedWithoutPosting | Wallet accepted the payment request included in the credit transfer without posting it to the creditor's account. |
CANC |
Cancelled | Wallet successfully cancelled payment initiation after receiving a cancellation request. Only for use in the context of the Wallet API. |
PDNG |
Pending | Payment initiation or the individual transaction is pending. Wallet will perform further checks and status updates. |
RCVD |
Received | The receiving agent received the payment initiation. |
RJCT |
Rejected | Wallet rejected the payment initiation or the individual transaction. |
TP3: Pay on behalf of a third party
A Third Party Payment Processor (TP3) is a non-bank company that helps businesses accept payments from customers. A TP3 acts as an intermediary between the customer and the business, transferring funds from the customer's account to the business's account.
Examples of transactions that TP3s execute include credit card payments, ACH transactions, and debit/prepaid card transactions. TP3s are involved in areas such as payroll, mortgage payments, conventional retail, and online merchants.
TP3s can use J.P. Morgan Wallet™ to create virtual account structures that streamlines their processes. When making payments on behalf of customers, Wallet has additional requirements that differ by payment rail.
The following payment rails support TP3 transactions:
TP3 transactions use the PayOut endpoint. For the specification, see the API reference.
Foreign Exchange
Wallet enables you to execute Foreign Exchange (FX) PayOuts—sending funds from a Wallet account in one country to an external account in another country, converting the funds to a currency supported by the creditor account.
The following payment rails support FX transactions:
For more information about FX PayOuts, see the following documents: