Skip to main content
Jp Morgan Wallet

Push to Debit Card

Overview

The J.P. Morgan Wallet™ Push to Debit Card feature allows clients with a USD Wallet program in New York, or any of the other 14 Chase Affiliate Banks, to send a USD payment to a recipient’s US bank account using the account’s Mastercard or VISA debit card number. With Push to Debit Card, you can make payouts anytime - 24 hours/day, 365 days/year. You receive electronic notification of payment completion or rejection within 90 seconds, and a completed payment is irrevocable. Funds are available in the recipient’s account within 30 minutes of transaction initiation.

Recipients don’t have to wait for a business banking day to be paid. Clients can satisfy their customers' growing demand to get paid fast and reliably without being required to provide a bank account and routing number. The Push to Debit Card service is secure, Payment Card Industry (PCI)-compliant, and processed using established and ubiquitous VISA and Mastercard card networks.

The high-level business flow is as follows.

  1. You collect the debit card number and expiration date using your PCI-compliant solution.
  2. You initiate a USD-USD Push to Debit Card payout request using our PCI-compliant API endpoint.
  3. We tokenize the card number and securely lock the actual and tokenized card data.
  4. We validate the request to your Wallet program.
  5. We send a payment message to the Visa card network containing the actual card number.
  6. The Visa network sends a payout with the actual card number to the recipient's US bank that issued the Mastercard or Visa debit card.
  7. The receiving US bank posts the amount to the recipient's bank account linked to the debit card.
  8. The recipient gets access to the funds deposited to the bank account within 30 minutes.

For the full technical specifications, see the API reference.

Supported use cases

Push to Debit Card supports Business to Consumer (B2C) as well as Business to Business (B2B) paying on behalf of a third party (TP3). For example:

  • e-Commerce businesses that need to pay their marketplace sellers 
  • e-Commerce marketplace sellers that need to pay their suppliers
  • Transportation/delivery companies that need to pay their drivers
  • Higher education institutions that need to pay their students and teachers
  • Insurance companies that need to pay their insureds
  • Airlines that need to pay their passengers and frequent flyer participants
  • Companies that need to pay rebates, rewards, due compensation, and incentives

Key information

The following table describes important information about Push to Debit Card.

Information about Push to Debit Card
Production endpoint https://api-mtls.merchant.jpmorgan.com/tsapi/v3/jpmwallet/payments/advanced-batch
Client testing endpoint https://apigatewaycat-pci.jpmorgan.com/tsapi/v3/jpmwallet/payments/advanced-batch
Supported branches New York branch, or any of Chase's US affiliate banks
Supported currencies USD
Supported account types Demand Deposit Account (DDA)
Payment type

Issued Credit Transfer (ICDT)

Note: Incoming credit receipts are not supported.

Payment flows
  • Domestic, same currency: USD to USD
  • Domestic, Foreign Exchange (FX): Not supported
  • Cross-border, same currency: Not supported
  • Cross-border, FX: Not supported
Transaction limit $125,000 (you can request a lower limit)
Cut-off time N/A
Returns, recalls, and reversals Not supported. If you need the recipient to return money that has already been paid out, you must do that outside of the Push to Debit Card flow.
Service level code Must be NURGPC

Requirements

Push to Debit Card requests must adhere to the following requirements.

  • You must send requests to the correct PCI-compliant Pay to Debit Card endpoint. If you attempt to send a Pay to Debit Card request to a non-PCI-compliant payout endpoint, the payment is rejected immediately with the error Unsupported API. We do not store any information from the request.
  • The card in the creditor account must be a debit card issued by a US bank. If the card in the creditor account was not issued by a US bank, or if it’s a credit card, the transaction is rejected.
  • The requested execution date must be either the date that you submit the request, or the previous date, in YYYY-MM-DD format. If the date is in the past, Wallet processes the payment immediately.
  • To comply with card network data schema rules, certain data fields are limited in size. The data in Push to Debit Card payment requests must meet size requirements, or the payment is rejected. For more information, see the API reference.

Card tokenization

You must have your own PCI-compliant solution to securely collect your customers' debit card numbers and expiration date information. Wallet does not provide an iFrame solution for this capability.

You use a J.P. Morgan PCI-compliant endpoint to transmit an individual Push to Debit Card payout instruction containing the actual card number and expiration date information.

We use a PCI-compliant process to tokenize the actual card number to an alias number, except the last four digits. We securely lock both the actual and tokenized card number pair in a vault until just before the payment is released out to the card network. When the payment is released, the tokenized number is replaced with the actual number.

You can view the masked card number, with only the last three digits visible, on transaction notifications, transaction query results, and on your Wallet daily transaction activity report. The last digits of the masked card number are from the actual card number. Clients never receive an actual card number or tokenized card number. Masking example: xxxxxxxxxxxxx123

Reporting

Push to Debit Card transactions appear on your daily transaction activity reports. The Creditor account row displays the masked, tokenized card number with only the last three digits visible. The Settlement method row displays P2C indicating a Push to Debit Card transaction.

The following table is an example of what a daily transaction activity report with Push to Debit Card transactions might look like.

Daily transaction activity report example
Creditor account XXXXXXXXXXXXX003 XXXXXXXXXXXXX003
Creditor name Creditor's account name Creditor's account name
Creditor virtual account VTA1-ID-upTo35characters-1234567890 VTA2-ID-upTo35characters-1234567890
Ultimate creditor name Ultimate Creditor Name Ultimate Creditor Name
Creditor agent JPMORGAN CHASE BANK N.A. JPMORGAN CHASE BANK N.A.
Creditor agent ID CHASUS33XXX CHASUS33XXX
Credit amount 12 12
Credit currency USD USD
Status REJECTED COMPLETED
Settlement method P2C P2C
PRN 1234567890 1234567890
Remittance info Remittance information: AaBbCc123/-?:().,'+ @{} Remittance information: AaBbCc123/-?:().,'+ @{}

Important fields

The following sections list important fields in the Push to Debit Card JSON request body along with their requirements. Not all fields are listed here - for a complete list, see the API reference.

paymentInformation

The paymentInformation object contains the bulk of the fields related to the Push to Debit Card request.

paymentInformation fields
Field Required / Optional Requirements
paymentInformation.paymentMethod Required Must be TRF.
paymentInformation.requestedExecutionDate Required Must be either the date that you submit the request, or the previous date, in YYYY-MM-DD format. If the date is in the past, Wallet processes the payment immediately.
paymentInformation.paymentTypeInformation.serviceLevel.proprietary Required Must be NURGPC.

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

paymentInformation object
"paymentInformation": {
    "paymentInformationIdentification": "P2C{{$randomInt}}",
    "numberOfTransactions": 1,
    "controlSum": 0.02,
    "paymentMethod": "TRF",
    "requestedExecutionDate": "2025-08-08",
    "paymentTypeInformation": {
        "serviceLevel": {
            "proprietary": "NURGPC"
        }
    },

debtor

The paymentInformation.debtor object contains fields for the debtor's name and address.

paymentInformation.debtor fields
Field Required / Optional Requirements
paymentInformation.debtor.name Required Must be 1-30 characters. No special characters.
paymentInformation.debtor.postalAddress.addressType Optional Must be 1-4 characters.
paymentInformation.debtor.postalAddress.streetName Optional Must be 1-35 characters. No special characters.
paymentInformation.debtor.postalAddress.buildingNumber Optional Must be 1-16 characters. No special characters.
paymentInformation.debtor.postalAddress.postCode Optional Must be 5-9 characters for US. No special characters.
paymentInformation.debtor.postalAddress.townName Optional Must be 1-25 characters. No special characters.
paymentInformation.debtor.postalAddress.countrySubDivision Optional Must be two characters.
paymentInformation.debtor.postalAddress.country Optional Must be US.

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

paymentInformation.debtor object
"debtor": {
    "name": "Debtor Name",
    "postalAddress": {
        "addressType": "ADDR",
        "streetName": "WASHINGTON BLVD",
        "buildingNumber": "575",
        "postCode": "07310",
        "townName": "JERSEY CITY",
        "countrySubDivision": "NJ",
        "country": "US"
    }
},

debtorAccount

The paymentInformation.debtorAccount object contains fields for your Wallet DDA number and the currency of the funds to be transferred.

paymentInformation.debtorAccount fields
Field Required / Optional Requirements
paymentInformation.debtorAccount.identification.other.identification Required Your Wallet DDA number.
paymentInformation.debtorAccount.currency Required Must be USD.

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

paymentInformation.debtorAccount object
"debtorAccount": {
    "identification": {
        "other": {
            "identification": "XXXXXXXX"
        }
    },
    "currency": "USD",
    "name": "Debtor Account Name"
},

debtorAgent

The paymentInformation.debtorAgent object contains fields for the BIC and country of the J.P. Morgan branch of the Wallet program.

paymentInformation.debtorAgent fields
Field Required / Optional Requirements
paymentInformation.debtorAgent.financialInstitutionIdentification.bic Required Must be CHASUS33.

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

paymentInformation.debtorAgent object
"debtorAgent": {
    "financialInstitutionIdentification": {
        "bic": "CHASUS33",
        "postalAddress": {
            "country": "US"
        }
    }
},

creditTransferTransactionInformation

The paymentInformation.creditTransferTransactionInformation object contains fields related to the end-to-end ID, transaction amount, ultimate debtor, and creditor information.

paymentIdentification

The paymentInformation.creditTransferTransactionInformation.paymentIdentification object contains the end-to-end ID of the transaction.

paymentInformation.creditTransferTransactionInformation.paymentIdentification fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.paymentIdentification.endToEndIdentification Required Maximum length is 16 characters.

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

paymentInformation.creditTransferTransactionInformation.paymentIdentification object
"paymentIdentification": {
    "endToEndIdentification": "P2CE2E{{randomInt}}"
},

amount

The paymentInformation.creditTransferTransactionInformation.amount object contains fields related to the transaction amount.

paymentInformation.creditTransferTransactionInformation.amount fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.amount.instructedAmount.amount Required Must be between 0.01 and your Wallet transaction limit. Default transaction limit is 125,000.
paymentInformation.creditTransferTransactionInformation.amount.instructedAmount.currency Required Must be USD.

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

paymentInformation.creditTransferTransactionInformation.amount object
"amount": {
    "instructedAmount": {
        "amount": 0.01,
        "currency": "USD"
    }
},

ultimateDebtor

The paymentInformation.creditTransferTransactionInformation.ultimateDebtor object contains fields related to the ultimate debtor. The name and address are required if you execute the transaction on behalf of a third party.

paymentInformation.creditTransferTransactionInformation.ultimateDebtor fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.name Required if transaction executed on behalf of third party Must be 1-20 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.addressType Optional Maximum length is four characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.streetName Required if transaction executed on behalf of third party Must be 1-35 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.buildingNumber Optional Must be 1-16 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.postCode Required if transaction executed on behalf of third party Must be 5-9 characters for US. No special characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.townName Required if transaction executed on behalf of third party Must be 1-25 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.countrySubDivision Required if transaction executed on behalf of third party Must be two characters.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.postalAddress.country Required if transaction executed on behalf of third party Must be US.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.identification.privateIdentification.other.identification Required The Virtual Transaction Account (VTA) ID within your Wallet program to debit.
paymentInformation.creditTransferTransactionInformation.ultimateDebtor.identification.privateIdentification.other.schemeName.proprietary Required Must be virtualAccountIdentification.

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

paymentInformation.creditTransferTransactionInformation.ultimateDebtor object
"ultimateDebtor": {
    "name": "Ult Dbtr Name",
    "postalAddress": {
        "addressType": "ADDR",
        "streetName": "WASHINGTON BLVD",
        "postCode": "07310",
        "townName": "JERSEY CITY",
        "countrySubDivision": "NJ",
        "country": "US"
    },
    "identification": {
        "privateIdentification": {
            "other": [
                {
                    "identification": "VAID00002",
                    "schemeName": {
                        "proprietary": "virtualAccountIdentification"
                    }
                }
            ]
        }
    }
},

creditorAgent

The paymentInformation.creditTransferTransactionInformation.creditorAgent object contains fields related to the J.P. Morgan branch of the Wallet program.

paymentInformation.creditTransferTransactionInformation.creditorAgent fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.creditorAgent.financialInstitutionIdentification.bic Required Can be either CHASUS33 or CHASEUSXXX.

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

paymentInformation.creditTransferTransactionInformation.creditorAgent object
"creditorAgent": {
    "financialInstitutionIdentification": {
        "bic": "CHASUS33",
        "postalAddress": {
            "country": "US"
        }
    }
},

creditor

The paymentInformation.creditTransferTransactionInformation.creditor object contains fields for the creditor's name and address. The postalAddress fields are optional, but provide them if you have them.

paymentInformation.creditTransferTransactionInformation.creditor fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.creditor.name Required Must be 1-30 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.streetName Optional, but provide if you have it Must be 1-35 characters for US. No special characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.buildingNumber Optional, but provide if you have it Must be 1-16 characters. No special characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.postCode Optional, but provide if you have it Must be 5-9 characters for US. No special characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.townName Optional, but provide if you have it Must be 1-25 characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.countrySubDivision Optional, but provide if you have it Must be two characters.
paymentInformation.creditTransferTransactionInformation.creditor.postalAddress.country Optional
Must be US.

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

paymentInformation.creditTransferTransactionInformation.creditor object
"creditor": {
    "name": "Creditor Name",
    "postalAddress": {
        "streetName": "Thorpe St",
        "buildingNumber": "1691",
        "postCode": "33611",
        "townName": "Tampa",
        "countrySubDivision": "FL",
        "country": "US"
    }
},

creditorAccount

The paymentInformation.creditTransferTransactionInformation.creditorAccount object contains fields related to the debit card to transfer the funds to.

paymentInformation.creditTransferTransactionInformation.creditorAccount fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.creditorAccount.identification.other.identification Required The actual debit card number. Must be 16 characters.
paymentInformation.creditTransferTransactionInformation.creditorAccount.expiryDate Required The actual debit card expiration date in MMYY format.
paymentInformation.creditTransferTransactionInformation.creditorAccount.type.code Required The creditor account type code. Must be CARD.
paymentInformation.creditTransferTransactionInformation.creditorAccount.currency Required Must be USD.

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

paymentInformation.creditTransferTransactionInformation.creditorAccount object
"creditorAccount": {
    "identification": {
        "other": {
            "identification": "XXXXXXXX"
        }
    },
    "expiryDate": "2603",
    "type": {
        "code": "CARD"
    },
    "currency": "USD"
},

remittanceInformation

The paymentInformation.creditTransferTransactionInformation.remittanceInformation object contains unstructured remittance information.

paymentInformation.creditTransferTransactionInformation.remittanceInformation fields
Field Required / Optional Requirements
paymentInformation.creditTransferTransactionInformation.remittanceInformation.unstructured Optional Must be 1-16 characters.

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

paymentInformation.creditTransferTransactionInformation.remittanceInformation object
"remittanceInformation": {
    "unstructured": [
        "RemittanceMax16"
    ]
}

Examples

The following examples show how to format a Push to Debit Card JSON request body for different use cases.

Pay counterparty directly with no ultimate debtor (minimum required data)

This example shows the minimum data required to pay a counterparty directly with no ultimate debtor (non-TP3). The example does not include the remittanceInformation field - see the examples with ultimate debtors for examples of that field.

Example request body: Minimum required data payment without ultimate debtor
{
  "groupHeader": {
    "messageIdentification": "202511120927040",
    "creationDateTime": "2025-11-12T09:27:03.546+0000",
    "numberOfTransactions": 1,
    "initiatingParty": {
      "name": "ewallet"
    },
    "controlSum": 9
  },
  "paymentInformation": {
    "paymentInformationIdentification": "202511120927040",
    "numberOfTransactions": 1,
    "controlSum": 9,
    "requestedExecutionDate": "2025-11-12",
    "paymentMethod": "TRF",
    "paymentTypeInformation": {
      "serviceLevel": {
        "proprietary": "NURGPC"
      }
    },
    "debtor": {
      "name": "Debtor Name"
    },
    "debtorAccount": {
      "currency": "USD",
      "identification": {
        "other": {
          "identification": "XXXXXXXXXX"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "CHASUS33"
      }
    },
    "creditTransferTransactionInformation": [
      {
        "paymentIdentification": {
          "endToEndIdentification": "202511120927040"
        },
        "amount": {
          "instructedAmount": {
            "currency": "USD",
            "amount": 9
          }
        },
        "creditor": {
          "name": "Creditor Name"
        },
        "ultimateDebtor": {
          "identification": {
            "privateIdentification": {
              "other": [
                {
                  "identification": "SANG-VA-04",
                  "schemeName": {
                    "proprietary": "virtualAccountIdentification"
                  }
                }
              ]
            }
          }
        },
        "creditorAccount": {
          "identification": {
            "other": {
              "identification": "XXXXXXXXXXXXXXXX"
            }
          },
          "type": {
            "code": "CARD"
          },
          "expiryDate": "2709"
        }
      }
    ]
  }
}

Pay on behalf of a third party with an ultimate debtor (minimum required data)

This example shows the minimum data required to pay on behalf of a third party (TP3) with an ultimate debtor. The example includes the remittanceInformation field.

Example request body: Minimum required data payment instruction with ultimate debtor
{
  "groupHeader": {
    "messageIdentification": "202511120927046",
    "creationDateTime": "2025-11-12T09:27:03.546+0000",
    "numberOfTransactions": 1,
    "initiatingParty": {
      "name": "ewallet"
    },
    "controlSum": 9
  },
  "paymentInformation": {
    "paymentInformationIdentification": "202511120927046",
    "numberOfTransactions": 1,
    "controlSum": 9,
    "requestedExecutionDate": "2025-11-12",
    "paymentMethod": "TRF",
    "paymentTypeInformation": {
      "serviceLevel": {
        "proprietary": "NURGPC"
      }
    },
    "debtor": {
      "name": "Debtor Name"
    },
    "debtorAccount": {
      "currency": "USD",
      "identification": {
        "other": {
          "identification": "XXXXXXXXXX"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "CHASUS33"
      }
    },
    "creditTransferTransactionInformation": [
      {
        "paymentIdentification": {
          "endToEndIdentification": "202511120927046"
        },
        "amount": {
          "instructedAmount": {
            "currency": "USD",
            "amount": 9
          }
        },
        "creditor": {
          "name": "Creditor Name"
        },
        "ultimateDebtor": {
          "name": "ultimateDebtorName",
          "postalAddress": {
            "streetName": "270 Park Ave",
            "postCode": "10017",
            "townName": "New York",
            "countrySubDivision": "NY",
            "country": "US"
          },
          "identification": {
            "privateIdentification": {
              "other": [
                {
                  "identification": "SANG-VA-04",
                  "schemeName": {
                    "proprietary": "virtualAccountIdentification"
                  }
                }
              ]
            }
          }
        },
        "creditorAccount": {
          "identification": {
            "other": {
              "identification": "XXXXXXXXXXXXXXXX"
            }
          },
          "type": {
            "code": "CARD"
          },
          "expiryDate": "2709"
        },
        "remittanceInformation": {
          "unstructured": [
            "Maximum 16 chars"
          ]
        }
      }
    ]
  }
}

Pay on behalf of a third party with an ultimate debtor (with optional data)

This example shows how to pay on behalf of a third party with an ultimate debtor, including both required and optional data. The examples includes the remittanceInformation field.

Example request body: Maximum data payment instruction with ultimate debtor and optional data
{
  "groupHeader": {
    "messageIdentification": "202511120927048",
    "creationDateTime": "2025-11-12T09:27:03.546+0000",
    "numberOfTransactions": 1,
    "initiatingParty": {
      "name": "ewallet"
    },
    "controlSum": 9
  },
  "paymentInformation": {
    "paymentInformationIdentification": "202511120927048",
    "numberOfTransactions": 1,
    "controlSum": 9,
    "requestedExecutionDate": "2025-11-12",
    "paymentMethod": "TRF",
    "paymentTypeInformation": {
      "serviceLevel": {
        "proprietary": "NURGPC"
      }
    },
    "debtor": {
      "name": "Debtor Name",
      "postalAddress": {
        "streetName": "789 Park st",
        "postCode": "10016",
        "townName": "New York",
        "countrySubDivision": "NY",
        "country": "US"
      }
    },
    "debtorAccount": {
      "currency": "USD",
      "identification": {
        "other": {
          "identification": "XXXXXXXXXX"
        }
      }
    },
    "debtorAgent": {
      "financialInstitutionIdentification": {
        "bic": "CHASUS33"
      }
    },
    "creditTransferTransactionInformation": [
      {
        "paymentIdentification": {
          "endToEndIdentification": "202511120927048"
        },
        "amount": {
          "instructedAmount": {
            "currency": "USD",
            "amount": 9
          }
        },
        "creditor": {
          "name": "Creditor Name",
          "postalAddress": {
            "streetName": "456 Avenue",
            "postCode": "10014",
            "townName": "New York",
            "countrySubDivision": "NY",
            "country": "US"
          }
        },
        "ultimateDebtor": {
          "name": "ultimateDebtorName",
          "postalAddress": {
            "streetName": "270 Park Ave",
            "postCode": "10017",
            "townName": "New York",
            "countrySubDivision": "NY",
            "country": "US"
          },
          "identification": {
            "privateIdentification": {
              "other": [
                {
                  "identification": "SANG-VA-04",
                  "schemeName": {
                    "proprietary": "virtualAccountIdentification"
                  }
                }
              ]
            }
          }
        },
        "creditorAccount": {
          "identification": {
            "other": {
              "identification": "XXXXXXXXXXXXXXXX"
            }
          },
          "type": {
            "code": "CARD"
          },
          "expiryDate": "2709"
        },
        "remittanceInformation": {
          "unstructured": [
            "Maximum 16 chars"
          ]
        }
      }
    ]
  }
}