Visa Direct

COUNTERPARTIES

XFTRountingFactoryV2 XFTRoutingFactoryV3 0x09Ea5764412e883a587Fc7DA1c07B2bE9F3cbc55arrow-up-right VISA 0xDB9f69C2CCe2806107Fe8Df78f201664a8c16d62arrow-up-right Business1 Visa Direct Wallet 0x2cb22b8fdB71Fe54418aef052188B589A3282019arrow-up-right Business2 Visa Direct Wallet 0x930e8ddcC500d0244E2beA81Abd5c65D3410323Darrow-up-right XFT 0x2f572059dbc598c8acfea4af06fe4f7669d1b3b1arrow-up-right Visa Fund Transfer API Visa Direct Business Account

DEBIT CARD FUNDING FLOW

  1. Business requests prefund amt from its Visa debit card

  2. XFT submits AFT (pull) with PAN + amt via Funds Transfer API

  3. Visa Direct sends USD to XFT from business account

  4. XFT sends PAN to XFTRoutingFactoryV2

  5. XFTRoutingFactoryV2 CREATE2 deploys PAN wallet

  6. XFT calls mintToVISA(PAN, amt)

  7. XFTRoutingFactoryV2 mints Visa Digital Dollar to wallet(PAN)

EXAMPLE FLOWS

Create first Visa Direct business wallet given debit card number https://sepolia.arbiscan.io/tx/0x4dbf9b0b1dcec01d4d0e1b81ca077143f0489656b45f2cc00b2db680ae2ee911arrow-up-right

Create second Visa Direct business wallet given debit card number https://sepolia.arbiscan.io/tx/0x2f84ed7ef160b32ae60290e76c2a809364d4564d3f795ec3e4e8012ef54792ffarrow-up-right

Prefund business1's Visa Direct account with Visa's custom stablecoin https://sepolia.arbiscan.io/tx/0xb7d8b48f9c0d3604555df2fe5b4f01a28e6b6f88747d70defaab92d96551111darrow-up-right

Send $125 from business1 to business2 debit card number https://sepolia.arbiscan.io/tx/0x5cedbd5d0448d83eadef465e4da57851c31ba0ef698ac3156444dd2a626aa92farrow-up-right

Burn 375 VISA from business1 wallet https://sepolia.arbiscan.io/tx/0xf659a53e3519437d0ad4219da6fd135b8487cccf543571ffb57044b89500275barrow-up-right

Burn 125 VISA from business2 wallet https://sepolia.arbiscan.io/tx/0xfa031bb6c1b4f3c4c145a51507233e15e1037ff0626780d4a01fa6474a9879cbarrow-up-right

Business1 Visa Direct Wallet https://sepolia.arbiscan.io/address/0x2cb22b8fdB71Fe54418aef052188B589A3282019#tokentxnsarrow-up-right

Business2 Visa Direct Wallet https://sepolia.arbiscan.io/address/0x930e8ddcc500d0244e2bea81abd5c65d3410323d#tokentxnsarrow-up-right

XFTRoutingFactoryV3.sol https://sepolia.arbiscan.io/address/0x09ea5764412e883a587fc7da1c07b2be9f3cbc55arrow-up-right

Mermaid


FIAT ONRAMP

XFT is the originator of USD. Business requests to prefund their Visa Direct account with their Visa debit card.

  • Push = OCT = Mint

Funds Transfer API is used to submit Account Funding Transactions (AFT) if pulling funds from Visa debit card and Original Credit Transactions (OCT) for pushing business Visa Direct account.

VISA DIRECT FUNDING 1 Collect funds from business - ACH - Debit card - Wire - Withdraw from bank account - Pull from Visa card 2 Push funds to business Visa account

Source
Method

Visa debit card

Submit Account Funding Transaction (AFT) via Fund Transfer API to Visa network.

ACH

Wire

COUNTERPARTIES

XFTRountingFactoryV2 VISA 0xDB9f69C2CCe2806107Fe8Df78f201664a8c16d62arrow-up-right Visa Direct Wallet 1 Visa Direct Wallet 2 XFT 0x2f572059dbc598c8acfea4af06fe4f7669d1b3b1arrow-up-right Visa Fund Transfer API Visa Direct Business Account

TECHNICAL

Create Push Funds Transaction

API name
HTTP Method
Accept
Hosted by
Description

Payout Status Notification

POST

application/json

Client

<client url>

Payout Return Notification

POST

application/json

Client

<client url>

Ledger otification

POST

application/json

Client

<client url>

POST /visadirect/fundstransfer/v1/pullfundstransactions

Payload

Response: 200


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 Visa 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.

Using the Funds Transfer API

The first step is to collect funds from the sender. As an Originator, you can obtain funds from the sender using any means available to you, such as by withdrawing funds from the sender’s bank account or by pulling funds from the sender’s Visa card. If the source of funds is a Visa card, you can use the Funds Transfer API to obtain them. The Funds Transfer API does this by submitting an Account Funding Transaction (AFT) into the Visa network.

Once you have obtained funds from the sender using the Funds Transfer API or through other means, the next step is to push those funds to the recipient’s Visa account. There are two operations on the Funds Transfer API that you can use to push them. The Funds Transfer API includes an operation for pushing funds to a single Visa account (PushFunds) and an operation for pushing funds to multiple Visa accounts simultaneously (MultiPushFunds). These operations on the Funds Transfer API do this by submitting Original Credit Transactions (OCT) into the Visa network.

Using the Funds Transfer API to Push 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.

Once you have collected funds from the sender, you can submit a push payment transaction to Visa using either the PushFunds operation (for a single account) or the MultiPushFunds operation (for multiple accounts simultaneously). In a PushFunds operation, the request message includes sender information, recipient information, and transaction amount data elements for a single account. The specific data elements required in the request may vary depending on the use case and local regulation. Refer to the technical specifications in the API Referencearrow-up-right link and the local regulations that apply. The PushFunds operation submits a single OCT transaction into Visa for the recipient account specified in the request and returns the response variables for that account.


RESOURCES

Visa debit card = submit AFT to Visa network via Fund Transfer API

Request to fund Visa Direct account with debit card? Pull USD by submitting AFT via Fund Transfer API. Push USD via OCT via Fund Transfer API.

How to use Visa Directarrow-up-right https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/payloadarrow-up-right https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/responsearrow-up-right

Account Funding Transaction (AFT)

Original Credit Transactions (OCT)

Primary Account Number (PAN) = Visa Debit Card Number

Last updated