Fund Wallet account (PayIn)
Overview
A PayIn transaction physically transfers funds from a source funding Demand Deposit Account (DDA) to your J.P. Morgan Wallet™ DDA so you can allocate funds to your counterparties.
Specifically, you transfer funds from a source funding DDA to the PayIn Settlement Virtual Transaction Account (VTA) that we set up when we established your Wallet program. From there, you can execute a PayTo transaction to transfer the funds to a counterparty's VTA.
For an overview of payment types in Wallet, see Payments.
Use cases
The following are examples of use cases where you might execute a PayIn transaction:
- Merchant services platform: Needs to collect funds when a customer pays at one of their terminals. It transfers the funds to its source funding DDA and sends them to its Wallet DDA using a PayIn transaction. It keeps a portion of the funds and pays out the rest to the counterparty's DDA.
- Video game company: Needs to collect funds from its players when they buy in-game currency. It transfers the funds to its source funding DDA, executes a PayIn transaction to fund its Wallet DDA, and allocates the funds appropriately.
- Marketplace platform: Needs to collect funds from customers and pay out funds to sellers. When a customer buys something, the platform collects funds from the customer into its source funding DDA and executes a PayIn transaction to transfer the funds to its Wallet DDA. It keeps a portion of the funds and allocates the rest to the seller appropriately.
Key information
The following table describes important information about PayIn.
| 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 | PayIn | |
| Payment flows |
|
|
| 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 PayIn 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
PayIn transactions appear on your daily TRANSACTION ACTIVITY reports.
The following table is an example of what a PayIn transaction on a TRANSACTION ACTIVITY report might look like.
| CLIENT ID | 0001318690 |
|---|---|
| PROGRAM ID | 1000000032 |
| BUSINESS PROCESSING DATE | 3/2/2026 |
| BANK NAME | JPM Luxembourg |
| WALLET DDA NUMBER | XXXXXXXXXX |
| WALLET CURRENCY | EUR |
| RECEIVED DATE | 10/25/2022 |
| REQUESTED VALUE DATE | 3/2/2026 |
| VALUE DATE | 3/2/2026 |
| CLIENT TXN ID | SMOKE-875d7dIROh |
| TXN TYPE | PAYIN |
| DEBTOR ACCOUNT | XXXXXXXXXX |
| DEBTOR NAME | EWALLET ORIGINATOR |
| DEBTOR AGENT | J.P. MORGAN SE - LUXEMBOURG BRANCH |
| DEBTOR AGENT ID | CHASLULXXXX |
| DEBIT AMOUNT | 0.14 |
| DEBIT CURRENCY | EUR |
| CREDITOR ACCOUNT | XXXXXXXXXX |
| CREDITOR NAME | EWALLET RECEIVER |
| CREDITOR AGENT | J.P. MORGAN SE - LUXEMBOURG BRANCH |
| CREDITOR AGENT ID | CHASLULXXXX |
| CREDIT AMOUNT | 0.14 |
| CREDIT CURRENCY | EUR |
| STATUS | COMPLETED |
| PRN | XXXXXXXXXX |
| BATCH ID | SMOKE-Juk6ujFfeq |
| MATCHED REFERENCE ID | WALH66GLNVY8N83 |
Notes
Note the following points about PayIn transactions.
- PayIn transactions are available to view in DDA statements, Wallet reports, and queries.
- You can only initiate one transaction per request.
Important parameters
The following sections list important parameters in the PayIn 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.
| Parameter | Required / Optional | Description |
|---|---|---|
programId |
Required | Your Wallet program ID. |
transactionType |
Required | The type of the transaction. Set to PAYIN. |
Body parameters
Note the following important body parameters for PayIn.
groupHeader
The groupHeader object contains information about the batch of transactions.
| Parameter | Required / Optional | Description |
|---|---|---|
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 |
controlSum |
Optional | Sum of the transaction amounts in this batch. |
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.
{
"groupHeader": {
"messageIdentification": "GZPIN458515109-01234567890123456789",
"creationDateTime": "2021-08-21T21:08:05-05:00",
"numberOfTransactions": 1,
"controlSum": 1.00
}
}paymentInformation
The paymentInformation object contains parameters related to the payment.
| 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.
{
"paymentInformation": {
"paymentInformationIdentification": "batch-id-12345",
"numberOfTransactions": 1,
"controlSum": 1.00,
"paymentMethod": "BOOK",
"requestedExecutionDate": "2021-08-21"
}
}paymentInformation.debtorAccount
The paymentInformation.debtorAccount object contains information about the bank account of the debtor.
| 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. Must be in your Wallet transfer group. 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.
{
"paymentInformation": {
"debtorAccount": {
"currency": "USD",
"name": "SOURCE FUNDING DDA",
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
}
}
}paymentInformation.debtorAgent
The paymentInformation.debtorAgent object contains information about the bank branch where the debtor account is located.
| Field | Required / Optional | Description |
|---|---|---|
financialInstitutionIdentification.bic |
Required | SWIFT BIC of the bank branch branch where the source funding DDA is located. Must be the same branch as the Wallet DDA. Maximum 11 characters. |
The following code snippet is an example of the paymentInformation.debtorAgent object.
{
"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.
| 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 branch as the source funding DDA. Maximum 11 characters. |
paymentIdentification.endToEndIdentification |
Required | Unique ID for tracing requests and responses for this transaction. Maximum 16 characters. |
The following code snippet is an example of the paymentInformation.creditTransferTransactionInformation object.
{
"paymentInformation": {
"creditTransferTransactionInformation": [
{
"paymentIdentification": {
"endToEndIdentification": "your-id-12345"
},
"amount": {
"instructedAmount": {
"amount": 1.00,
"currency": "USD"
}
},
"creditorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditorAccount": {
"currency": "USD",
"name": "WALLET DDA",
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
}
}
]
}
}Examples
Request with minimum required data (non-TP3)
The following example shows a request with the minimum data required to execute a PayIn transaction from a source funding DDA to a Wallet DDA.
{
"groupHeader": {
"messageIdentification": "GZPIN458515109-01234567890123456789",
"creationDateTime": "2021-08-21T21:08:05-05:00",
"numberOfTransactions": 1
},
"paymentInformation": {
"paymentInformationIdentification": "batch-id-12345",
"paymentMethod": "BOOK",
"requestedExecutionDate": "2021-08-21",
"debtorAccount": {
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
},
"debtorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditTransferTransactionInformation": [
{
"paymentIdentification": {
"endToEndIdentification": "your-id-12345"
},
"amount": {
"instructedAmount": {
"amount": 1.00,
"currency": "USD"
}
},
"creditorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditorAccount": {
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
}
}
]
}
}Request with optional data
The following example shows a request to execute a PayIn transaction from a source funding DDA to a Wallet DDA with optional parameters.
{
"groupHeader": {
"messageIdentification": "GZPIN458515109-01234567890123456789",
"creationDateTime": "2021-08-21T21:08:05-05:00",
"numberOfTransactions": 1,
"controlSum": 1.00
},
"paymentInformation": {
"paymentInformationIdentification": "batch-id-12345",
"numberOfTransactions": 1,
"controlSum": 1.00,
"paymentMethod": "BOOK",
"requestedExecutionDate": "2021-08-21",
"debtorAccount": {
"currency": "USD",
"name": "SOURCE FUNDING DDA",
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
},
"debtorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditTransferTransactionInformation": [
{
"paymentIdentification": {
"endToEndIdentification": "your-id-12345"
},
"amount": {
"instructedAmount": {
"amount": 1.00,
"currency": "USD"
}
},
"creditorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditorAccount": {
"currency": "USD",
"name": "WALLET DDA",
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
}
}
}
]
}
}Response
The following is the synchronous response to the previous example request.
{
"groupHeader": {
"messageIdentification": "16d56e7e-acca-4af3-a5e2-bbf3b159e099",
"creationDateTime": "2023-05-16T15:31:00.000+0000"
},
"originalGroupInformationAndStatus": {
"originalMessageIdentification": "SK230516113058",
"originalMessageNameIdentification": "API-PAYIN",
"originalCreationDateTime": "2023-05-16T15:30:58.000+0000",
"originalNumberOfTransactions": 1,
"originalControlSum": 1,
"groupStatus": "ACTC",
"statusReasonInformation": [],
"numberOfTransactionsPerStatus": [
{
"detailedNumberOfTransactions": "1",
"detailedStatus": "ACTC",
"detailedControlSum": 1
}
]
},
"originalPaymentInformationAndStatus": {
"originalPaymentInformationIdentification": "PayInSK230516113058",
"paymentInformationStatus": "ACTC",
"statusReasonInformation": [],
"numberOfTransactionsPerStatus": [
{
"detailedNumberOfTransactions": "1",
"detailedStatus": "ACTC",
"detailedControlSum": 1
}
],
"transactionInformationAndStatus": [
{
"originalEndToEndIdentification": "SK230516113058",
"transactionStatus": "ACTC",
"statusReasonInformation": [],
"acceptanceDateTime": "2023-05-16T15:31:00.590+0000",
"accountServicerReference": "81505595-b8ea-44b0-becb-d79f53c5537d",
"originalTransactionReference": {
"amount": {
"instructedAmount": {
"amount": 1,
"currency": "USD"
}
},
"requestedExecutionDate": "2023-05-16",
"paymentMethod": "BOOK",
"debtorAccount": {
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
},
"currency": "USD",
"name": "SOURCE FUNDING DDA"
},
"debtorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditorAgent": {
"financialInstitutionIdentification": {
"bic": "CHASUS33XXX"
}
},
"creditorAccount": {
"identification": {
"other": {
"identification": "XXXXXXXXXX"
}
},
"currency": "USD",
"name": "WALLET DDA"
}
}
}
]
}
}Notification
The following is the asynchronous notification that Wallet sends after completing the previous example request.
{
"groupHeader": {
"messageIdentification": "ea44f561-993c-45b5-ad39-b0f1c431db1a",
"creationDateTime": "2023-05-16T15:31:22.097+0000"
},
"originalGroupInformationAndStatus": {
"originalMessageIdentification": "SK230516113058",
"originalMessageNameIdentification": "API-PAYIN",
"originalNumberOfTransactions": 1
},
"originalPaymentInformationAndStatus": {
"originalPaymentInformationIdentification": "PayInSK230516113058",
"transactionInformationAndStatus": [
{
"originalEndToEndIdentification": "SK230516113058",
"transactionStatus": "ACSC",
"statusReasonInformation": [
{
"additionalInformation": [
"/eventType/PaymentComplete"
]
}
],
"acceptanceDateTime": "2023-05-16T15:31:05.434+0000",
"accountServicerReference": "WAL0ZGGKCBG5PRX",
"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"
}
}
}
]
}
}