Skip to main content
Jp Morgan Wallet

Fund a virtual account (PayInto)

Overview

A PayInto transaction transfers funds from a source funding Demand Deposit Account (DDA) to a counterparty's Virtual Transaction Account (VTA).

A PayInto transaction is a combination of a PayIn and a PayTo in one request:

  1. The PayIn transaction physically transfers funds from the source funding DDA to the J.P. Morgan Wallet™ DDA and is available to view in DDA statements, Wallet reports, and queries.
  2. The PayTo transaction virtually transfers funds from the PayIn Settlement VTA to the counterparty's VTA and is available to view in Wallet reports and queries.

For an overview of payment types in Wallet, see Payments.

Use cases

The following are examples of use cases where you might execute a PayInto transaction:

  • Merchant services platform: Needs to allocate funds to pay its merchants. When a customer pays at one of its terminals, it transfers the funds to its source funding DDA. It keeps a portion of the funds, and executes a PayInto transaction to transfer the rest from the source funding DDA to the merchant's VTA. Finally, it pays out the funds to the merchant's DDA.

  • Video game company: Needs to allocate funds representing in-game currency for its players. When a player buys in-game currency, the company transfers the funds to its source funding DDA. Then, it executes a PayInto transaction to transfer the funds from the source funding DDA to the player's VTA.

  • Marketplace platform: Needs to allocate funds to pay its sellers. When a customer buys something, the platform transfers the funds to its source funding DDA. It keeps a portion of the funds, and executes a PayInto transaction to transfer the rest from the source funding DDA to the seller's VTA. Finally, it pays out the funds to the seller's DDA.

Key information

The following table describes important information about PayInto.

Key information for PayInto
Production endpoint v3.x: Not supported v2.x: https://apigateway.jpmorgan.com/tsapi/v2/jpmwallet/payments/batch
Client testing endpoint v3.x: Not supported v2.x: https://apigatewaycat.jpmorgan.com/tsapi/v2/jpmwallet/payments/batch
API reference v3.x: N/A v2.x: Initiate one or many PayIn, PayTo, PayInto or v2v transfers
Supported branches All Wallet-supported J.P. Morgan Chase Bank branches (see Reference - Supported branches and their Business Identifier Codes)
Supported currencies All Wallet-supported currencies (see Reference - Supported account currencies by branch)
Supported account types Demand Deposit Account (DDA)
Payment type PayInto
Payment flows
  • Domestic, same currency: All Wallet-supported currencies
  • Domestic, Foreign Exchange (FX): Not supported
  • Cross-border, same currency: Not supported
  • Cross-border, FX: Not supported
Transaction limit No limit
Cut-off time End of business day for physical settlement. Virtual accounting is available 24x7.
Settlement period One business day
Returns, recalls, and reversals Wallet processes returns automatically based on reconciliation or clearing events.
Service level code N/A

Prerequisites

When we establish your Wallet program, we work with you to create a transfer group that contains DDAs that you can use to fund your Wallet DDA. If the source funding DDA is not in the transfer group, Wallet rejects the PayInto request.

Both the source funding DDA and the Wallet DDA must be at the same J.P. Morgan branch and use the same currency.

For more information, ask your J.P. Morgan representative.

Reporting

PayInto transactions are not available to view in Wallet reports. However, the PayIn and PayTo transactions that make up a PayInto transaction are available to view in Wallet reports.

Notes

Note the following points about PayInto transactions.

  • You can only initiate one transaction per request.
  • You must include the ultimate creditor in the request body because you must specify the specific VTA that Wallet should credit.

Important parameters

The following sections list important parameters in the PayInto request along with their requirements.

Not all parameters are listed here—for a complete list, see the API reference.

Header parameters

Include the following parameters in the header.

Header parameters for PayInto request
Parameter Required / Optional Description
programId Required Your Wallet program ID.
transactionType Required The type of the transaction. Set to PAYINTO.

Body parameters

Note the following important body parameters for PayInto.

groupHeader

The groupHeader object contains information about the batch of transactions.

PayInto: groupHeader
Parameter Required / Optional Description
controlSum Optional Sum of the transaction amounts in this batch.
creationDateTime Required Date and time when the batch was created. Must be in local time with the time zone offset to UTC in the following format: YYYY-MM-DDThh:mm:ss±hh:mm
messageIdentification Required Unique ID of the batch of transactions. Maximum 35 characters.
numberOfTransactions Required Total number of transactions in the batch. Must be 1.

The following code snippet is an example of the groupHeader object.

PayInto: groupHeader
{
    "groupHeader": {
        "messageIdentification": "SK230516142636",
        "creationDateTime": "2023-05-16T18:26:36.000+0000",
        "numberOfTransactions": 1,
        "controlSum": 1.00
    }
}

paymentInformation

The paymentInformation object contains parameters related to the payment.

Important parameters in paymentInformation object
Parameter Required / Optional Description
controlSum Optional Sum of the transaction amounts in the batch.
numberOfTransactions Optional Total number of transactions in the batch. Must be 1.
paymentInformationIdentification Required Unique ID of the payment. Maximum 35 characters.
paymentMethod Required Set to BOOK. For more information about payment methods, see Payments - Payment methods.
requestedExecutionDate Required Date when the transaction should be executed in YYYY-MM-DD format. Must be either the date that you submit the request (T) or the previous day (T-1).

The following code snippet is an example of the paymentInformation object.

PayInto: paymentInformation
{
    "paymentInformation": {
        "paymentInformationIdentification": "PayIntoSK230516142636",
        "numberOfTransactions": 1,
        "controlSum": 1.00,
        "paymentMethod": "BOOK",
        "requestedExecutionDate": "2023-05-16"
    }
}

paymentInformation.debtorAccount

The paymentInformation.debtorAccount object contains information about the bank account of the debtor.

PayInto: paymentInformation.debtorAccount
Parameter Required / Optional Description
currency Optional but recommended Currency of the source funding DDA in three-character ISO 4217 format. Must be the same as the currency of the Wallet DDA.
identification.other.identification Required ID of the source funding DDA. Maximum 34 characters.
name Optional but recommended Name of the source funding DDA. Maximum 140 characters.

The following code snippet is an example of the paymentInformation.debtorAccount object.

PayInto: paymentInformation.debtorAccount
{
    "paymentInformation": {
        "debtorAccount": {
            "currency": "USD",
            "name": "SOURCE FUNDING ACCOUNT",
            "identification": {
                "other": {
                    "identification": "XXXXXXXXXX"
                }
            }
        }
    }
}

paymentInformation.debtorAgent

The paymentInformation.debtorAgent object contains information about the bank branch where the debtor account is located.

PayInto: paymentInformation.debtorAgent
Field Required / Optional Description
financialInstitutionIdentification.bic Required SWIFT BIC of the bank branch where the source funding DDA is located. Must be the same as the bank branch where the Wallet DDA is located. Maximum 11 characters.

The following code snippet is an example of the paymentInformation.debtorAgent object.

PayInto: paymentInformation.debtorAgent
{
    "paymentInformation": {
        "debtorAgent": {
            "financialInstitutionIdentification": {
                "bic": "CHASUS33XXX"
            }
        }
    }
}

paymentInformation.creditTransferTransactionInformation

The paymentInformation.creditTransferTransactionInformation object contains information about the transaction such as the creditor, the ultimate debtor, and the ultimate creditor.

PayInto: paymentInformation.creditTransferTransactionInformation
Parameter Required / Optional Description
amount.instructedAmount.amount Conditionally required Amount of funds to be transferred from the source funding DDA to the Wallet DDA, in the currency of the source funding DDA. Maximum 18 digits with six decimal places. Required if amount.instructedAmount is present.
amount.instructedAmount.currency Conditionally required Currency of the funds in the source funding DDA. Must be the same as the currency of the funds in the Wallet DDA. Required if amount.instructedAmount is present.
creditorAccount.currency Optional but recommended Currency of the Wallet DDA in three-character ISO 4217 format. Must be the same as the currency of the source funding DDA.
creditorAccount.identification.other.identification Required ID of the Wallet DDA. Maximum 34 characters.
creditorAccount.name Optional but recommended Name of the Wallet DDA. Maximum 140 characters.
creditorAgent.financialInstitutionIdentification.bic Required SWIFT BIC of the bank branch where the Wallet DDA is located. Must be the same bank branch as that of the source funding DDA. Maximum 11 characters.
paymentIdentification.endToEndIdentification Required Unique ID for tracing requests and responses for this transaction. Maximum 16 characters.
paymentIdentification.instructionIdentification Optional Unique ID of the request. Maximum 35 characters.
ultimateCreditor.identification.organisationIdentification.other.identification Required ID of the counterparty's VTA to credit.
ultimateCreditor.identification.organisationIdentification.other.schemeName.proprietary Required Set to virtualAccountIdentification.

The following code snippet is an example of the paymentInformation.creditTransferTransactionInformation object.

PayInto: paymentInformation.creditTransferTransactionInformation
{
    "paymentInformation": {
        "creditTransferTransactionInformation": [
            {
                "paymentIdentification": {
                    "instructionIdentification": "SK230516142636",
                    "endToEndIdentification": "SK230516142636"
                },
                "amount": {
                    "instructedAmount": {
                        "amount": 1.00,
                        "currency": "USD"
                    }
                },
                "creditorAgent": {
                    "financialInstitutionIdentification": {
                        "bic": "CHASUS33XXX"
                    }
                },
                "creditorAccount": {
                    "currency": "USD",
                    "name": "WALLET DDA",
                    "identification": {
                        "other": {
                            "identification": "XXXXXXXXXX"
                        }
                    }
                },
                "ultimateCreditor": {
                    "identification": {
                        "organisationIdentification": {
                            "other": [
                                {
                                    "identification": "VAID00001",
                                    "schemeName": {
                                        "proprietary": "virtualAccountIdentification"
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        ]
    }
}

Examples

Request with minimum required data (non-TP3)

The following example shows a request with the minimum data required to execute a PayInto transaction from a source funding DDA to a counterparty's VTA.

PayInto: Request with minimum required data (non-TP3)
{
    "groupHeader": {
        "messageIdentification": "SK230516142636",
        "creationDateTime": "2023-05-16T18:26:36.000+0000",
        "numberOfTransactions": 1
    },
    "paymentInformation": {
        "paymentInformationIdentification": "PayIntoSK230516142636",
        "paymentMethod": "BOOK",
        "requestedExecutionDate": "2023-05-16",
        "debtorAccount": {
            "identification": {
                "other": {
                    "identification": "XXXXXXXXXX"
                }
            }
        },
        "debtorAgent": {
            "financialInstitutionIdentification": {
                "bic": "CHASUS33XXX"
            }
        },
        "creditTransferTransactionInformation": [
            {
                "paymentIdentification": {
                    "endToEndIdentification": "SK230516142636"
                },
                "amount": {
                    "instructedAmount": {
                        "amount": 1.00,
                        "currency": "USD"
                    }
                },
                "creditorAgent": {
                    "financialInstitutionIdentification": {
                        "bic": "CHASUS33XXX"
                    }
                },
                "creditorAccount": {
                    "identification": {
                        "other": {
                            "identification": "XXXXXXXXXX"
                        }
                    }
                },
                "ultimateCreditor": {
                    "identification": {
                        "organisationIdentification": {
                            "other": [
                                {
                                    "identification": "VAID00001",
                                    "schemeName": {
                                        "proprietary": "virtualAccountIdentification"
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        ]
    }
}

Request with optional data

The following example shows a request to execute a PayInto transaction from a source funding DDA to a counterparty's VTA with optional parameters.

Example request body: Initiate a PayInto transaction
{
    "groupHeader": {
        "messageIdentification": "SK230516142636",
        "creationDateTime": "2023-05-16T18:26:36.000+0000",
        "numberOfTransactions": 1,
        "controlSum": 1.00
    },
    "paymentInformation": {
        "paymentInformationIdentification": "PayIntoSK230516142636",
        "numberOfTransactions": 1,
        "controlSum": 1.00,
        "paymentMethod": "BOOK",
        "requestedExecutionDate": "2023-05-16",
        "debtorAccount": {
            "currency": "USD",
            "name": "SOURCE FUNDING ACCOUNT",
            "identification": {
                "other": {
                    "identification": "XXXXXXXXXX"
                }
            }
        },
        "debtorAgent": {
            "financialInstitutionIdentification": {
                "bic": "CHASUS33XXX"
            }
        },
        "creditTransferTransactionInformation": [
            {
                "paymentIdentification": {
                    "instructionIdentification": "SK230516142636",
                    "endToEndIdentification": "SK230516142636"
                },
                "amount": {
                    "instructedAmount": {
                        "amount": 1.00,
                        "currency": "USD"
                    }
                },
                "creditorAgent": {
                    "financialInstitutionIdentification": {
                        "bic": "CHASUS33XXX"
                    }
                },
                "creditorAccount": {
                    "currency": "USD",
                    "name": "WALLET DDA",
                    "identification": {
                        "other": {
                            "identification": "XXXXXXXXXX"
                        }
                    }
                },
                "ultimateCreditor": {
                    "identification": {
                        "organisationIdentification": {
                            "other": [
                                {
                                    "identification": "VAID00001",
                                    "schemeName": {
                                        "proprietary": "virtualAccountIdentification"
                                    }
                                }
                            ]
                        }
                    }
                }
            }
        ]
    }
}

Response

The following is the synchronous response to the previous example request.

Example response: Initiate a PayInto transaction
{
    "groupHeader": {
        "messageIdentification": "46aef2cf-9073-432d-941a-fcefbaf583a5",
        "creationDateTime": "2023-05-16T18:26:38.000+0000"
    },
    "originalGroupInformationAndStatus": {
        "originalMessageIdentification": "SK230516142636",
        "originalMessageNameIdentification": "API-PAYINTO",
        "originalCreationDateTime": "2023-05-16T18:26:36.000+0000",
        "originalNumberOfTransactions": 1,
        "originalControlSum": 1,
        "groupStatus": "ACTC",
        "statusReasonInformation": [],
        "numberOfTransactionsPerStatus": [
            {
                "detailedNumberOfTransactions": "1",
                "detailedStatus": "ACTC",
                "detailedControlSum": 1
            }
        ]
    },
    "originalPaymentInformationAndStatus": {
        "originalPaymentInformationIdentification": "PayIntoSK230516142636",
        "paymentInformationStatus": "ACTC",
        "statusReasonInformation": [],
        "numberOfTransactionsPerStatus": [
            {
                "detailedNumberOfTransactions": "1",
                "detailedStatus": "ACTC",
                "detailedControlSum": 1
            }
        ],
        "transactionInformationAndStatus": [
            {
                "originalInstructionIdentification": "SK230516142636",
                "originalEndToEndIdentification": "SK230516142636",
                "transactionStatus": "ACTC",
                "statusReasonInformation": [],
                "acceptanceDateTime": "2023-05-16T18:26:38.331+0000",
                "accountServicerReference": "a0991957-3148-42e5-85f3-0943838a26f1",
                "originalTransactionReference": {
                    "amount": {
                        "instructedAmount": {
                            "amount": 1,
                            "currency": "USD"
                        }
                    },
                    "requestedExecutionDate": "2023-05-16",
                    "paymentMethod": "BOOK",
                    "debtorAccount": {
                        "identification": {
                            "other": {
                                "identification": "XXXXXXXXXX"
                            }
                        },
                        "currency": "USD",
                        "name": "SOURCE FUNDING ACCOUNT"
                    },
                    "debtorAgent": {
                        "financialInstitutionIdentification": {
                            "bic": "CHASUS33XXX"
                        }
                    },
                    "creditorAgent": {
                        "financialInstitutionIdentification": {
                            "bic": "CHASUS33XXX"
                        }
                    },
                    "creditorAccount": {
                        "identification": {
                            "other": {
                                "identification": "XXXXXXXXXX"
                            }
                        },
                        "currency": "USD",
                        "name": "WALLET DDA"
                    },
                    "ultimateCreditor": {
                        "identification": {
                            "organisationIdentification": {
                                "other": [
                                    {
                                        "identification": "VAID00001",
                                        "schemeName": {
                                            "proprietary": "virtualAccountIdentification"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                }
            }
        ]
    }
}

Notification

The following is the asynchronous notification that Wallet sends after completing the previous example request.

Example notification: Initiate a PayInto transaction
{
    "groupHeader": {
        "messageIdentification": "ffaedb13-6e16-41a9-ad12-318a2604c481",
        "creationDateTime": "2023-05-16T18:26:59.628+0000"
    },
    "originalGroupInformationAndStatus": {
        "originalMessageIdentification": "SK230516142636",
        "originalMessageNameIdentification": "API-PAYTO",
        "originalNumberOfTransactions": 1
    },
    "originalPaymentInformationAndStatus": {
        "originalPaymentInformationIdentification": "PayIntoSK230516142636",
        "transactionInformationAndStatus": [
            {
                "originalInstructionIdentification": "SK230516142636",
                "originalEndToEndIdentification": "SK230516142636",
                "transactionStatus": "ACSC",
                "statusReasonInformation": [
                    {
                        "additionalInformation": [
                            "/eventType/PaymentComplete"
                        ]
                    }
                ],
                "acceptanceDateTime": "2023-05-16T18:26:42.252+0000",
                "originalTransactionReference": {
                    "amount": {
                        "instructedAmount": {
                            "amount": 1,
                            "currency": "USD"
                        }
                    },
                    "requestedExecutionDate": "2023-05-16",
                    "paymentMethod": "BOOK",
                    "debtorAccount": {
                        "identification": {
                            "other": {
                                "identification": "XXXXXXXXXX"
                            }
                        },
                        "currency": "USD"
                    },
                    "debtorAgent": {
                        "financialInstitutionIdentification": {
                            "bic": "CHASUS33XXX"
                        }
                    },
                    "creditorAgent": {
                        "financialInstitutionIdentification": {
                            "bic": "CHASUS33XXX"
                        }
                    },
                    "creditorAccount": {
                        "identification": {
                            "other": {
                                "identification": "XXXXXXXXXX"
                            }
                        },
                        "currency": "USD"
                    },
                    "ultimateCreditor": {
                        "identification": {
                            "organisationIdentification": {
                                "other": [
                                    {
                                        "identification": "VAID00001",
                                        "schemeName": {
                                            "proprietary": "virtualAccountIdentification"
                                        }
                                    }
                                ]
                            }
                        }
                    }
                }
            }
        ]
    }
}