How to Use Visa Direct for Card

Visa Direct for Card enables you to move funds using two core APIs:

  • Create Pull Funds Transaction API: debit a Sender’s card (AFT)
  • Create Push Funds Transaction API: credit a Recipient’s bank account (OCT)

You can use these APIs independently or together.

A push payment may fail. Funds pulled from an account linked to a Visa card must be reversed using:

  • Create Reverse Funds Transaction API (within 24 hours), or
  • Create Adjustment Reverse Funds Transaction API (after 24 hours).

If funds originated from another source, you are responsible for returning funds to the Sender.

Use the Transaction Query API to check the status of a:

  • Transaction if it times out
  • Deferred push payment

Pull Funds (Account Funding Transaction (AFT))

Use the Create Pull Funds Transaction API to debit funds from a Sender’s account linked to their Visa card.

The API returns a transaction identifier. For a person-to-person payment, the transaction identifier must be included in the subsequent push funds message; to simplify funds reconciliation.

Push Funds (Original Credit Transaction (OCT))

Use the Create Push Funds Transaction API to credit a Recipient’s account linked to a Visa card. If a push funds transaction follows a pull funds, the transaction identifier must be included in the subsequent push funds message; to link the transactions and to simplify reconciliation.

By default, the push funds request is sent in real time, however, you can defer the push funds by:

  • Holding the push funds request for a deferred period before submitting to Visa and requesting that they treat the transaction as deferred. You must meet certain criteria to use this option.
  • Asking Visa to hold the push funds request for a fixed deferred period of 48 hours.
  • Asking Visa to hold the push funds request for a defined time.

Cancel Deferred Push Funds

Use the Cancel OCT API to cancel a deferred transaction before it is processed.

The Cancel OCT API request must include the following fields from the original deferred push funds transaction request:

  • Retrieval reference number (retrievalReferenceNumber)
  • Systems trace audit number (systemsTraceAuditNumber)

Receive Deferred Push Payment Notifications

Subscribe to the Deferred OCT Advice API to receive notifications when a deferred transaction is processed. 

Handling Failures and Reversals

If a push payment fails, for example, it is declined by the receiving bank, you must reverse the original pull funds transaction by returning the funds to the Sender.

Reverse Funds within 24 Hours

If a push fund fails, use the Create Reverse Funds Transaction API within 24 hours of initiating the pull.

The Create Reverse Funds Transaction request must include the following fields from the original pull funds transaction: 

Request

  • Acquiring BIN (acquiringBin)
  • Retrieval reference number (retrievalReferenceNumber)
  • Systems trace audit number (systemsTraceAuditNumber)

Response

  • Approval code (approvalCode)
  • Transaction identifier (transactionIdentifier)
  • Transmission date and time (transmissionDateTime)

Reverse Funds after 24 Hours

If a push fund fails, use the Create Adjustment Reverse Funds Transaction API after 24 hours of initiating the pull. 

The Create Adjustment Reverse Funds Transaction request must include the following fields from the original pull funds transaction:

Request

  • Acquiring BIN (acquiringBin)
  • Retrieval reference number (retrievalReferenceNumber)
  • Systems trace audit number (systemsTraceAuditNumber)

Response

  • Approval code (approvalCode)
  • Transaction identifier (transactionIdentifier)
  • Transmission date and time (transmissionDateTime)

Check Transaction Status

Use the Transaction Query API to check the status of a:

  • Transaction if it times out
  • Deferred push payment

The Transaction Query API request must include the following fields from the original pull funds transaction:

Request

  • Systems trace audit number (systemsTraceAuditNumber)
  • Retrieval reference number (retrievalReferenceNumber)

Or

Response

  • Transaction identifier (transactionIdentifier)