Register on the Visa Developer Center at developer.visa.com and obtain sandbox credentials; note that production access requires sponsorship by a licensed Visa acquirer — engage a payment processor or bank partner for production enablement.
Authenticate API calls using mutual TLS (mTLS) with your Visa-issued certificate plus an API key header; include X-CLIENT-TRANSACTION-ID with a unique value per request for idempotency.
Collect the recipient's 16-digit Visa card number (PAN), recipient name, and billing address; validate that the card is eligible for Original Credit Transactions (OCT) by calling the CardAcceptance endpoint if available in your implementation.
POST to the Funds Transfer API endpoint (consult developer.visa.com/capabilities/visa_direct for the current endpoint path) with an OCT payload: recipientPrimaryAccountNumber, amount, currency, businessApplicationId (set to 'BI' for insurance claims), and senderAccountNumber.
Parse the response for transactionIdentifier and actionCode; a '00' action code indicates approval; store the Visa transaction ID against the claim record for reconciliation.
For failed or declined OCTs, implement a fallback disbursement method (ACH, check) and notify the claimant; Visa Direct does not guarantee same-day settlement on all card issuers — communicate expected fund availability as 'typically within 30 minutes but up to 1 business day'.
Known gotchas
Visa Direct requires the originator to be a licensed acquirer or sponsored by one; building directly on the API without an acquirer agreement is not permitted and will be blocked at production onboarding.
OCT eligibility varies by card issuer; not all Visa cards accept push payments — the card-acceptance check (Fast Funds indicator) should be performed before attempting disbursement to avoid failed transactions.
Insurance disbursements must use businessApplicationId 'BI' (Business Disbursements); using the wrong application ID can result in misrouting or compliance flags.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp