Visa Direct

COUNTERPARTIES

Pseudo ABA Number (TAN generated by Visa) Business bank acc Business wallet USD Stablecoin

FLOWS

Business → XFT → Visa → RDFI → Alex Business → XFT → Visa → Alex

VISA DIRECT FOR WALLET FLOW Step 1: The sender initiates a payment using a visa direct client. Step 2: The Visa Direct Client processes the payment through the Visa Direct Gateway. Step 3: The Visa Direct Gateway connects to the Visa Payments Limited (VPL) network. Step 4: A network of wallet aggregators and operators on the VPL is utilized to facilitate the transaction. Step 5: The payment is transferred to the recipient's financial institution.

VISA DIRECT FOR ACCOUNT FLOW Step 1: The sender initiates a payment using a visa direct client. Step 2: The Visa Direct Client processes the payment through the Visa Direct Gateway. Step 3: The Visa Direct Gateway connects to the Visa Payments Limited (VPL) banking network. Step 4: The local funds transfer scheme/network is utilized to identify appropriate network partners. Step 5: After a network partner has been identified, the payment is transferred to the recipient's financial institution.


Visa Direct

USER FLOW

  1. Sender initiates payment through a digital channel

  2. Create and submit OCT transaction

  3. Transaction is routed to recipient institution

  4. Receiving institution credits account and notifies recipient

  5. Recipient can access funds at POS or ATM

Funds Transfer API

Push = credit transfer = debit networks = prefunded = debit cards = stablecoins

Pushing Funds

The Funds Transfer API enables Originators to use an API to send (credit) funds to an eligible Visa card by directly submitting an Original Credit Transaction (OCT) into the Visa network. The OCT is used to push funds to Visa accounts to enable services such as person-to-person money transfers, funds disbursements, prepaid loads, and credit card bill payments.

  • Transfer, send stablecoin to single wallet

  • Batch Transfer, send stablecoins to multiple wallets

Data Model

  • Recipient primary account number

  • Recipient name

  • Billing currency

  • Transaction amount

  • Sender name

  • Sender address

  • Sender date of birth

  • Sender primary account number OR reference number that refers to source of funds being sent to recipient (wallet address)

TECHNICAL

https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/payload https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/response

Approved Push Funds Transaction Type: POST Path: /visadirect/fundstransfer/v1/pushfundstransactions

POST /visadirect/fundstransfer/v1/pushfundstransactions

Payload:

{
  "amount": 124.05,
  "senderAddress": "901 Metro Center Blvd",
  "localTransactionDateTime": "2023-05-05T12:00:00",
  "pointOfServiceData": {
    "panEntryMode": 90,
    "posConditionCode": "00",
    "motoECIIndicator": 0
  },
  "recipientPrimaryAccountNumber": "4060320000000127",
  "colombiaNationalServiceData": {
    "addValueTaxReturn": 10,
    "taxAmountConsumption": 10,
    "nationalNetReimbursementFeeBaseAmount": 20,
    "addValueTaxAmount": 10,
    "nationalNetMiscAmount": 10,
    "countryCodeNationalService": 170,
    "nationalChargebackReason": 11,
    "emvTransactionIndicator": "1",
    "nationalNetMiscAmountType": "A",
    "costTransactionIndicator": "0",
    "nationalReimbursementFee": 20
  },
  "cardAcceptor": {
    "address": {
      "country": "USA",
      "zipCode": "94404",
      "county": "San Mateo",
      "state": "CA"
    },
    "idCode": "CA-IDCode-77765",
    "name": "Visa Inc. USA-Foster City",
    "terminalId": "TID-9999"
  },
  "senderReference": "",
  "transactionIdentifier": 883916196354773,
  "acquirerCountryCode": 840,
  "acquiringBin": 408999,
  "retrievalReferenceNumber": "412770452025",
  "senderCity": "Foster City",
  "senderStateCode": "CA",
  "systemsTraceAuditNumber": 451018,
  "senderName": "Mohammed Qasim",
  "businessApplicationId": "AA",
  "settlementServiceIndicator": 9,
  "merchantCategoryCode": 6012,
  "transactionCurrencyCode": "USD",
  "recipientName": "rohan",
  "senderCountryCode": "124",
  "sourceOfFundsCode": "05",
  "senderAccountNumber": "4060320000000126"
}

Response

{
  "approvalCode": "string",
  "last4ofPAN": 0,
  "vauRTAuthReplacementData": {
    "replacementCardID": "string",
    "vauFlag": "s",
    "replaceDateExpiration": "string",
    "vauAccntStatus": "s",
    "vauErrorReasonCode": "string"
  },
  "originalActionCode": "st",
  "transactionIdentifier": 0,
  "additionalTokenRespInfo": "s",
  "serviceProcessingType": {
    "deferredDateTime": "stringstring",
    "requestType": "st"
  },
  "retrievalReferenceNumber": "string",
  "prepaidBalance": "string",
  "prepaidBalanceCurrency": "str",
  "responseCode": "s",
  "transmissionDateTime": "string",
  "settlementFlags": {
    "settlementServiceFlag": "s",
    "givUpdatedFlag": "string",
    "settlementResponsibilityFlag": "string",
    "givPreviouslyUpdatedFlag": "string"
  },
  "statusIdentifier": "string",
  "networkId": 0,
  "actionCode": "st",
  "merchantVerificationValue": "stringstri",
  "feeProgramIndicator": "str"
}

Visa Alias

REQUIREMENTS

Funds Transfer API The Funds Transfer API pulls funds from a sender’s Visa account (usually to fund a push payment to a recipient’s account) by initiating an Account Funding Transaction. It can then be followed by a push payment to a recipient’s Vi

sa account that initiates an Original Credit Transaction. Push payment is a standalone capability and can be used either in conjunction with a pull payment (if the source of funds is a Visa card) or independently (if the source of funds is not a Visa card). Should a push payment be declined, the Funds Transfer API can also be used to return the funds to the sender’s funding source.

Visa Alias Directory Service Visa Alias Directory Service allows consumers and financial institutions to map an Alias such as an email or mobile number to a card. Consumers can use the Alias for a push payment without having to share card number details, which provides security and better user experience. More details can be found here.

Identifiers:

  • Pseudo ABA Number This is a number that uniquely identifies the originator when they sign up to send Push Payment transactions. On enrollment, an originator will get a single pseudo-value that is assigned by Visa. The other debit networks will assign their own unique values for the originator.

  • Sharing Group Code This field is optionally used by originators to specify the network access priority. Visa makes a routing selection based on the routing priorities specified by both the originator and issuer preference for routing over the network.

  • Network ID This contains a code that specifies the network to be used for transmission of the message and determines the program rules that apply to the transaction.

  • Recipient Information These fields include the recipient’s primary account number, name, and billing currency of the Visa account. Recipient name and billing currency may be selectively required depending on the use case and processing methodology.

  • Transaction Amount This is the amount to be delivered to the recipient (in the recipient currency). Note that Visa imposes both geographical and use case-based limits on the maximum amount that can be included in a single transaction. For example, domestic person-to-person transfers have a default limit of USD$2,500. There are exceptions, such as in the U.S., where a limit of USD$10,000 per transaction applies. Refer to the API Reference link for specific details.

  • Sender Information These fields include information about the sender, such as a name and address, date of birth, and either the sender’s primary account number or a reference number that refers to the source of the funds being sent to the recipient. For the purposes of risk, sanctions enforcement, and anti-money laundering/anti-terrorist financing controls, and regardless of funding source or access channel, you are responsible for verifying the identity of the sender before submitting a push payment request.

  • Transaction Identifier If a PushFunds operation follows a corresponding PullFunds operation, you are required to take the Visa Transaction Identifier received in the PullFunds response and populate it into the same field in the PushFunds request in order to link the two transactions together.

NOTES

Original Credit Transaction (OCT)

Specially-Designated Nationals (SDN)

Office of Foreign Assets Control (OFAC)

PullFundsTransactions (AFTs)

Push FundsTransactions (OCTs) = debit networks = push = credit transfer = prefunded = debit cards

Primary Account Number (PAN) = Visa Account


RESOURCES

Automated Clearing House

Visa Alias Directory API

XFT IDN Flows

Visa Direct API

Last updated