Visa Direct
COUNTERPARTIES
XFTRountingFactoryV2 XFTRoutingFactoryV3 0x09Ea5764412e883a587Fc7DA1c07B2bE9F3cbc55 VISA 0xDB9f69C2CCe2806107Fe8Df78f201664a8c16d62 Business1 Visa Direct Wallet 0x2cb22b8fdB71Fe54418aef052188B589A3282019 Business2 Visa Direct Wallet 0x930e8ddcC500d0244E2beA81Abd5c65D3410323D XFT 0x2f572059dbc598c8acfea4af06fe4f7669d1b3b1 Visa Fund Transfer API Visa Direct Business Account
DEBIT CARD FUNDING FLOW
Business requests prefund
amtfrom its Visa debit cardXFT submits AFT (pull) with PAN +
amtvia Funds Transfer APIVisa Direct sends USD to XFT from business account
XFT sends PAN to XFTRoutingFactoryV2
XFTRoutingFactoryV2 CREATE2 deploys PAN wallet
XFT calls
mintToVISA(PAN, amt)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/0x4dbf9b0b1dcec01d4d0e1b81ca077143f0489656b45f2cc00b2db680ae2ee911
Create second Visa Direct business wallet given debit card number https://sepolia.arbiscan.io/tx/0x2f84ed7ef160b32ae60290e76c2a809364d4564d3f795ec3e4e8012ef54792ff
Prefund business1's Visa Direct account with Visa's custom stablecoin https://sepolia.arbiscan.io/tx/0xb7d8b48f9c0d3604555df2fe5b4f01a28e6b6f88747d70defaab92d96551111d
Send $125 from business1 to business2 debit card number https://sepolia.arbiscan.io/tx/0x5cedbd5d0448d83eadef465e4da57851c31ba0ef698ac3156444dd2a626aa92f
Burn 375 VISA from business1 wallet https://sepolia.arbiscan.io/tx/0xf659a53e3519437d0ad4219da6fd135b8487cccf543571ffb57044b89500275b
Burn 125 VISA from business2 wallet https://sepolia.arbiscan.io/tx/0xfa031bb6c1b4f3c4c145a51507233e15e1037ff0626780d4a01fa6474a9879cb
Business1 Visa Direct Wallet https://sepolia.arbiscan.io/address/0x2cb22b8fdB71Fe54418aef052188B589A3282019#tokentxns
Business2 Visa Direct Wallet https://sepolia.arbiscan.io/address/0x930e8ddcc500d0244e2bea81abd5c65d3410323d#tokentxns
XFTRoutingFactoryV3.sol https://sepolia.arbiscan.io/address/0x09ea5764412e883a587fc7da1c07b2be9f3cbc55
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
Visa debit card
Submit Account Funding Transaction (AFT) via Fund Transfer API to Visa network.
ACH
Wire
COUNTERPARTIES
XFTRountingFactoryV2 VISA 0xDB9f69C2CCe2806107Fe8Df78f201664a8c16d62 Visa Direct Wallet 1 Visa Direct Wallet 2 XFT 0x2f572059dbc598c8acfea4af06fe4f7669d1b3b1 Visa Fund Transfer API Visa Direct Business Account
TECHNICAL
Create Push Funds Transaction
Query payout
GET
application/json
Visa
Get Account Balance
GET
application/json
Visa
Cancel Payout
DELETE
application/json
Visa
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 Reference 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 Direct https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/payload https://api.xft.finance/visadirect/fundstransfer/v1/pushfundstransactions/response
Account Funding Transaction (AFT)
Original Credit Transactions (OCT)
Primary Account Number (PAN) = Visa Debit Card Number
Last updated