Skip to main content
Online Payments

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:

  1. Pull funds — Debit or take funds from a funding source.
  2. Push funds — Credit or give funds to a receiving target account.
Tip

Implement pull and push funds transfers independently or in combination, depending on your use case. For example, possible scenarios include: push funds for a payroll disbursement, pull funds for a prepaid card top-up, or pull and push funds for a person-to-person transfer.

MCC and funds transfer type requirements

The following table lists the supported MCC per funds transfer type for Visa:

Visa supported MCC per funds transfer type
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 DEBIT_DEPOSIT_ACCOUNT as the fundingSource

All
PUSH_FUNDS FUNDS_TRANSFER 4829, 6012, 6051, 6540, 8220
PUSH_FUNDS

GAMBLING_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

7800, 7801, 7802, 7995, 9406
PUSH_FUNDS

GOVERNMENT_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

9211, 9222, 9311, 9399, 9402, 9405
PUSH_FUNDS

LOYALTY_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

All
PUSH_FUNDS

MERCHANT_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

4829, 6012
PUSH_FUNDS

ONLINE_GAMBLING_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

7800, 7801, 7802, 7995, 9406
PUSH_FUNDS

PAYROLL_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

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:

Mastercard supported merchant and funds transfer types
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 DEBIT_DEPOSIT_ACCOUNT as the fundingSource

All
PUSH_FUNDS FUNDS_TRANSFER 4829, 6012, 6051, 6540, 8220
PUSH_FUNDS

GAMBLING_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

7800, 7801, 7802, 7995, 9406
PUSH_FUNDS

GOVERNMENT_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

9211, 9222, 9311, 9399, 9402, 9405
PUSH_FUNDS

LOYALTY_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

All
PUSH_FUNDS

MERCHANT_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

4829, 6012
PUSH_FUNDS

ONLINE_GAMBLING_PAY

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

7800, 7801, 7802, 7995, 9406
PUSH_FUNDS

PAYROLL_DISBURSEMENT

Note: Requires DEBIT_DEPOSIT_ACCOUNT as the fundingSource

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:

Pull funds required fields
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: 

  • ACCOUNT_TO_ACCOUNT
  • FUNDS_TRANSFER
  • PAYROLL_DISBURSEMENT
  • PERSON_TO_PERSON
  • PREPAID_CARD
  • WALLET_TRANSFER
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:

Push funds required fields
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: 

  • ACCOUNT_TO_ACCOUNT
  • FUNDS_DISBURSEMENT
  • FUNDS_TRANSFER
  • GAMBLING_PAY
  • GOVERNMENT_DISBURSEMENT
  • LOYALTY_PAY
  • MERCHANT_DISBURSEMENT
  • ONLINE_GAMBLING_PAY
  • PAYROLL_DISBURSEMENT
  • PERSON_TO_PERSON
  • PREPAID_CARD
  • WALLET_TRANSFER
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: 

  • CASH
  • CREDIT_ACCOUNT
  • CREDIT_CARD
  • DEBIT_CARD
  • DEBIT_DEPOSIT_ACCOUNT
  • MOBILE_MONEY
  • PREPAID_CARD

The following table lists fields available for use with Direct Pay transactions:

Fields applicable to 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:

  • ACCOUNT_TO_ACCOUNT
  • FUNDS_TRANSFER
  • PAYROLL_DISBURSEMENT
  • PERSON_TO_PERSON
  • PREPAID_CARD
  • WALLET_TRANSFER

Push funds valid values:

  • ACCOUNT_TO_ACCOUNT
  • FUNDS_DISBURSEMENT
  • FUNDS_TRANSFER
  • GAMBLING_PAY
  • GOVERNMENT_DISBURSEMENT
  • LOYALTY_PAY
  • MERCHANT_DISBURSEMENT
  • ONLINE_GAMBLING_PAY
  • PAYROLL_DISBURSEMENT
  • PERSON_TO_PERSON
  • PREPAID_CARD
  • WALLET_TRANSFER
transactionReason Both N The purpose of the payment based on the standard values defined for the respective market. Valid values are:
  • ACCOUNT_MANAGEMENT
  • BONUS_PAYMENT
  • BUS_TRANSPORT
  • BUSINESS_EXPENSE
  • CAR_INSURANCE
  • CASH_MANAGEMENT_TRANSFER
  • CC_REIMBURSEMENT
  • CHARITY
  • COLLECTION
  • COMMISSION
  • COMPENSATION
  • COPYRIGHT
  • CREDIT_CARD_PAYMENT
  • DEBIT_CARD
  • DEBIT_REIMBURSEMENT
  • DEPOSIT
  • DIVIDEND
  • ELECTRICITY_BILL
  • ENERGIES
  • FERRY
  • FOREIGN_EXCHANGE
  • GAS_BILL
  • GENERAL_FEE
  • GOVERNMENT_CASH_COMP
  • GOVERNMENT_PAYMENT
  • HEALTH_INSURANCE
  • INSOLVENCY
  • INSTALLMENT
  • INSURANCE_CLAIM
  • INSURANCE_PREMIUM
  • INTEREST
  • INTRA_COMPANYINVESTMENT
  • LABOR_INSURANCE
  • LICENCE_FEE
  • LIFE_INSURANCE
  • LOAN
  • MEDICAL_SERVICE
  • MOBILE_P2B
  • MOBILE_P2P
  • MOBILE_TOPUP
  • MUTUAL_FUND_INVESTMENT
  • NOT_OTHERWISE
  • OTHER_TEL_BILL
  • OTHERS
  • PAYMENT_ALLOWANCE
  • PAYROLL
  • PENSION_FUND
  • PENSION_PAYMENT
  • PROPERTY_INSURANCE
  • RAIL_TRANSPORT
  • REFUND_TAX
  • RENT
  • RENTAL_LEASE
  • ROYALTY
  • SALARY
  • SAVING_RETIREMENT
  • SECURITIES
  • SETTLEMENT_ANNUITY
  • SOCIAL_SECURITY
  • STUDY
  • STUDY_TUITION
  • SUBSCRIPTION
  • SUPPLIER
  • TAX
  • TAX_INCOME
  • TEL_BILL
  • TELEPHONE_BILL
  • TRADE_SERVICE
  • TRAVEL
  • TREASURY
  • UNEMPLOYMENT_DISABILITY_BENEFIT
  • UTILITY_BILL
  • VAT
  • WATER_BILL
  • WITH_HOLD
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:

  • Special characters: ? # = $ ! & : ~ | _ + \ /
  • All numeric characters, including all zeros (for example, 123456)
  • All spaces
  • Less than 3 characters (minimum character limit is 3 characters)
sender.middleName Both N

Given name between first name and last name/surname.

Name must not contain any of the following:

  • Special characters: ? # = $ ! & : ~ | _ + \ /
  • All numeric characters, including all zeros (for example, 123456)
  • All spaces
  • Less than 3 characters (minimum character limit is 3 characters)
sender.lastName Both N

Last name or surname.

Name must not contain any of the following:

  • Special characters: ? # = $ ! & : ~ | _ + \ /
  • All numeric characters, including all zeros (for example, 123456)
  • All spaces
  • Less than 3 characters (minimum character limit is 3 characters)
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:

  • Special characters: ? # = $ ! & : ~ | _ + \ /
  • All numeric characters, including all zeros (for example, 123456)
  • All spaces
  • Less than 3 characters (minimum character limit is 3 characters)
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:

  • CASH
  • CREDIT_ACCOUNT
  • CREDIT_CARD
  • DEBIT_CARD
  • DEBIT_DEPOSIT_ACCOUNT
  • MOBILE_MONEY
  • PREPAID_CARD
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:

Pull funds transaction limits for Visa and Mastercard
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:

Push funds transaction limits for Visa and Mastercard
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