Direct Pay
Direct Pay is a fast and secure payment service that allows your consumers access to real-time person-to-person (P2P) payments, business-to-consumer (B2C) payments, funds disbursements, insurance claim payouts, and other funds transfer solutions using the existing Visa and Mastercard transaction processing infrastructure.
Rather than using traditional methods such as a check or money order, with Direct Pay, you provide a service to your consumers to “Pull” and “Push” money from and to another consumer or business. No goods or services are involved.
Before you begin
Direct Pay is an enhancement to Visa and Mastercard card transactions and requires additional setup by J.P. Morgan to activate this feature.
This card-based funds transfer service is only available for use by specific types of merchants (that is, merchant category codes (MCC)) for specific purposes (defined by the funds transfer type) which differ by payment brand.
There are two types of Direct Pay transactions:
- Pull funds — Debit or take funds from a funding source.
- Push funds — Credit or give funds to a receiving target account.
MCC and funds transfer type requirements
The following table lists the supported MCC per funds transfer type for Visa:
| directPaymentType | fundsTransferType | Supported MCC |
|---|---|---|
| PULL_FUNDS | ACCOUNT_TO_ACCOUNT | 4829, 6012, 6211, 8220 |
| PULL_FUNDS | FUNDS_TRANSFER | 4829, 6012, 6051, 6540, 7995, 8220 |
| PULL_FUNDS | PAYROLL_DISBURSEMENT | 4829, 6540, 8931 |
| PULL_FUNDS | PERSON_TO_PERSON | 4829, 6012 |
| PULL_FUNDS | PREPAID_CARD | 4829, 6012, 6051, 6540 |
| PULL_FUNDS | WALLET_TRANSFER | 4829, 6012, 6051,6540, 7995 |
| PUSH_FUNDS | ACCOUNT_TO_ACCOUNT | 4829, 6012, 6211, 8220 |
| PUSH_FUNDS | FUNDS_DISBURSEMENT Note: Requires |
All |
| PUSH_FUNDS | FUNDS_TRANSFER | 4829, 6012, 6051, 6540, 8220 |
| PUSH_FUNDS | GAMBLING_PAY Note: Requires |
7800, 7801, 7802, 7995, 9406 |
| PUSH_FUNDS | GOVERNMENT_DISBURSEMENT Note: Requires |
9211, 9222, 9311, 9399, 9402, 9405 |
| PUSH_FUNDS | LOYALTY_PAY Note: Requires |
All |
| PUSH_FUNDS | MERCHANT_DISBURSEMENT Note: Requires |
4829, 6012 |
| PUSH_FUNDS | ONLINE_GAMBLING_PAY Note: Requires |
7800, 7801, 7802, 7995, 9406 |
| PUSH_FUNDS | PAYROLL_DISBURSEMENT Note: Requires |
8931 |
| PUSH_FUNDS | PERSON_TO_PERSON | 4829, 6012 |
| PUSH_FUNDS | PREPAID_CARD | 6012, 6051, 6540 |
| PUSH_FUNDS | WALLET_TRANSFER | 4829, 6012, 6051 |
The following table lists supported merchant and funds transfer types for Mastercard:
| directPaymentType |
fundsTransferType |
Supported MCCs |
|---|---|---|
| PULL_FUNDS | ACCOUNT_TO_ACCOUNT | 4829 |
| PULL_FUNDS | FUNDS_TRANSFER | 4829 |
| PULL_FUNDS | PAYROLL_DISBURSEMENT | 4829 |
| PULL_FUNDS | PERSON_TO_PERSON | 4829 |
| PULL_FUNDS | PREPAID_CARD | 4829 |
| PULL_FUNDS | WALLET_TRANSFER | 4829, 6540 |
| PUSH_FUNDS | ACCOUNT_TO_ACCOUNT | 4829, 6211, 8220 |
| PUSH_FUNDS | FUNDS_DISBURSEMENT Note: Requires |
All |
| PUSH_FUNDS | FUNDS_TRANSFER | 4829, 6012, 6051, 6540, 8220 |
| PUSH_FUNDS | GAMBLING_PAY Note: Requires |
7800, 7801, 7802, 7995, 9406 |
| PUSH_FUNDS | GOVERNMENT_DISBURSEMENT Note: Requires |
9211, 9222, 9311, 9399, 9402, 9405 |
| PUSH_FUNDS | LOYALTY_PAY Note: Requires |
All |
| PUSH_FUNDS | MERCHANT_DISBURSEMENT Note: Requires |
4829, 6012 |
| PUSH_FUNDS | ONLINE_GAMBLING_PAY Note: Requires |
7800, 7801, 7802, 7995, 9406 |
| PUSH_FUNDS | PAYROLL_DISBURSEMENT Note: Requires |
8931 |
| PUSH_FUNDS | PERSON_TO_PERSON | 4829 |
| PUSH_FUNDS | PREPAID_CARD | 6012, 6051, 6540 |
| PUSH_FUNDS | WALLET_TRANSFER | 4829, 6012, 6051 |
Required fields
Pull funds
The following are the required fields and valid values for pull funds:
| Field name | Description |
|---|---|
fundsTransferType |
The intended use of a payment using Direct Pay by the merchant. Determines the data carried in the message, the limits and economics that may apply to the transaction, and may be used by the sending and/or receiving issuer to make an authorization decision. Valid values:
|
directPaymentType |
Specifies whether you want to pull funds from a funding source or push funds to a receiving target. Valid value: PULL_FUNDS |
Push funds
The following are the required fields and valid values for push funds:
| Field name | Description |
|---|---|
fundsTransferType |
The intended use of a payment using Direct Pay by the merchant. Determines the data carried in the message, the limits and economics that may apply to the transaction, and may be used by the sending and/or receiving issuer to make an authorization decision. Valid values:
|
directPaymentType |
Specifies whether you want to pull funds from a funding source or push funds to a receiving target. Valid value: PUSH_FUNDS |
transactionReferenceNumber |
Your assigned transaction identifier. |
accountNumber |
The funding source account identifier (for example, a device primary account number (DPAN), a token, or the actual account number). Required when the payment method is Mastercard. |
fundingSource |
The source of the funds that are used in the transaction by the consumer. Valid values:
|
The following table lists fields available for use with Direct Pay transactions:
| Attribute | Direct Pay type |
Required (Y/N) |
Definition | ||
|---|---|---|---|---|---|
fundsTransferType |
Both | Y | The intended use of a payment using Direct Pay by the merchant. It determines the data carried in the message, the limits and economics that may apply to the transaction and may be used by the sending and/or receiving issuer to make an authorization decision. | ||
Pull funds valid values:
|
Push funds valid values:
|
||||
transactionReason |
Both | N | The purpose of the payment based on the standard values defined for the respective market. Valid values are: | ||
|
|
|
|||
directPaymentType |
Both | Y | Indicator that specifies whether you want to pull funds from a funding source or push funds to a receiving target. Pull funds value: PULL_FUNDS Push funds value: PUSH_FUNDS |
||
serviceFeeAmount |
Pull funds only | N | Optional service fee charged by merchant for use of service. | ||
currencyConversionFeeAmount |
Pull funds only | N | Optional currency conversion fee amount charged by merchant. | ||
sender.transactionReferenceNumber |
Both | Pull — N Push — Y |
Identifies a transaction as assigned by a third-party such as the payment gateway, partner bank, facilitator, aggregator, etc. | ||
sender.accountNumber |
Push funds only | Y (When payment method is Mastercard) | The number assigned to a monetary instrument (such as a card, direct debit account (DDA) or other payment account identifier provided for an alternative method of payment or local payment solution) sent to the merchant acquirer to facilitate payment for the exchange of goods and services in a financial transaction. These payment account identifiers can be a secure placeholder, such as a device primary account number (DPAN), a token, or the actual account identifier. | ||
sender.taxId |
Both | N | An identifier assigned by a government agency that is used by a Tax Authority to administer tax laws or by another government body to administer social and government programs. | ||
sender.taxIdType |
Both | N | A code that classifies the type of Tax Government Identifier (SSN, ITIN, EIN). | ||
sender.firstName |
Both | N | The part of an individual's full name considered a personal name or given name and generally positioned before the last name or family name. Name must not contain any of the following:
|
||
sender.middleName |
Both | N | Given name between first name and last name/surname. Name must not contain any of the following:
|
||
sender.lastName |
Both | N | Last name or surname. Name must not contain any of the following:
|
||
sender.city |
Both | N | A portion of a party's address which is the geographic area that is a municipality with legal power granted by a state/province charter. Must not contain any of the following:
|
||
sender.state |
Both | N | Classifies a geographic area that represents a first level, legal and political subdivision of a country as defined in ISO 3166-2 specification (for example, CA, TX, FL). | ||
sender.postalCode |
Both | N | The postal code of the address. | ||
sender.countryCode |
Both | N | The country code of the address based on Alpha-3 ISO standards. | ||
sender.addressTypeCode |
Both | N | The classification given to the various addresses captured for a sender, such as Doing Business As Address, Legal Entity Address, and Tax Address. | ||
sender.fundingSource |
Both | Pull — N Push — Y |
Identifies the source of funds. Valid values are:
|
||
sender.birthDate |
Both | N | The year, month and day on which the individual was born. Format: mmddyyyy | ||
sender.accountIdType |
Push funds only | Y (When payment method is Mastercard) | An identifier used to categorize or classify different types of accounts, such as bank accounts, customer accounts, or other financial accounts. Valid value is BAN. | ||
sender.accountId |
Push funds only | Y (When payment method is Mastercard) | The account number or unique identifier that was used to fund the money transfer (for example, it will hold the values for BAN, Email, RTN + Bank Account, Phone Number, IBAN, Wallet ID, Social Network ID that was used to fund the transfer). | ||
sender.bankIdentificationCode |
Push funds only | Y (When payment method is Mastercard) | The bank identification code. | ||
directPayProviderName |
Push funds only | Y (When payment method is Mastercard) | The Third Party Payment Provider (TP3) name which is an entity on whose behalf clients conduct financial transactions, essentially acting as the ultimate debtor. | ||
paymentGatewayIdentifier |
Push funds only | Y (When payment method is Mastercard) | The identifier assigned by the acceptor or the acquirer to the terminal, payment gateway, or other acceptance device used to capture account data to affect a transaction at the acceptor location. For electronic commerce, phone/mail order, or other card-not-present environments, the value must uniquely identify each payment gateway or other device used to capture account data to effect a transaction at the acceptor location. | ||
The following is an example of a Direct Pay pull funds transaction:
HTTP method: POST
Endpoint: /payments
Scenario: Direct Pay pull funds request
{
"directPay": {
"fundsTransferType": "ACCOUNT_TO_ACCOUNT",
"transactionReason": "CREDIT_CARD_PAYMENT",
"directPaymentType": "PULL_FUNDS",
"serviceFeeAmount": 123,
"sender": {
"transactionReferenceNumber": "1234567890123456",
"accountNumber": "5214XXXXXX94",
"fundingSource": "CREDIT_CARD",
"taxId": "123456789",
"taxIdType": "SSN",
"firstName": "John",
"middleName": "D",
"lastName": "Doe",
"address": {
"line1": "1234 Main Street",
"line2": "",
"city": "BEDFORD",
"state": "NH",
"countryCode": "USA",
"postalCode": "03109"
}
},
"birthDate": "1975-06-15"
}
}The following is an example of a Direct Pay push funds transaction:
HTTP method: POST
Endpoint: /payments
Scenario: Direct Pay push funds request
{
"directPay": {
"fundsTransferType": "ACCOUNT_TO_ACCOUNT",
"transactionReason": "CREDIT_CARD_PAYMENT",
"directPaymentType": "PUSH_FUNDS",
"sender": {
"transactionReferenceNumber": "1234567890123456",
"accountNumber": "5214XXXXXX94",
"fundingSource": "DEBIT_CARD",
"taxId": "123456789",
"taxIdType": "SSN",
"firstName": "John",
"middleName": "D",
"lastName": "Doe",
"address": {
"line1": "1234 Main Street",
"line2": "",
"city": "BEDFORD",
"state": "NH",
"countryCode": "USA",
"postalCode": "03109"
},
"birthDate": "1975-06-15"
}
}
}Transaction limits
Pull funds
The following table lists transaction limits on a Direct Pay pull funds transaction:
| fundsTransferType | Visa (US and Canada) | Mastercard (US and Canada) |
|---|---|---|
| ACCOUNT_TO_ACCOUNT | $50,000 | US: $50,000 Canada: $25,000 |
| FUNDS_TRANSFER | $50,000 | US: $50,000 Canada: $25,000 |
| PAYROLL_DISBURSEMENT | $125,000 | $125,000 |
| PERSON_TO_PERSON | $50,000 | $10,000 |
| PREPAID_CARD | $50,000 | $25,000 |
| WALLET_TRANSFER | $50,000 | $25,000 |
Push funds
The following table lists transaction limits on a Direct Pay push funds transaction:
| fundsTransferType | Visa (US and Canada) | Mastercard (US and Canada) |
|---|---|---|
| ACCOUNT_TO_ACCOUNT | $50,000 | US: $50,000 Canada: $25,000 |
| FUNDS_DISBURSEMENT | $125,000 | $125,000 |
| FUNDS_TRANSFER | $50,000 | US: $50,000 Canada: $25,000 |
| GAMBLING_PAY | $125,000 | US: $50,000 Canada: $10,000 |
| GOVERNMENT_DISBURSEMENT | $125,000 | $125,000 |
| LOYALTY_PAY | $125,000 | $125,000 |
| MERCHANT_DISBURSEMENT | $125,000 | $125,000 |
| ONLINE_GAMBLING_PAY | $125,000 | US: $50,000 Canada: $10,000 |
| PAYROLL_DISBURSEMENT | $125,000 | $125,000 |
| PERSON_TO_PERSON | $50,000 | $10,000 |
| PREPAID_CARD | $50,000 | $50,000 |
| WALLET_TRANSFER | $50,000 | US: $50,000 Canada: $25,000 |