Visa Funds Transfer API API

Push and pull funds to and from Visa accounts for real-time money movement use cases including person-to-person transfers, business disbursements, and account funding transactions.

Documentation

📖
GettingStarted
https://developer.visa.com/capabilities/pav/docs
📖
Authentication
https://developer.visa.com/capabilities/pav/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/suppliermatchingservice/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/suppliermatchingservice/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/vcms/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vcms/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/card-on-file-data-inquiry/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/card-on-file-data-inquiry/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/foreign_exchange/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/foreign_exchange/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/foreign_exchange/reference#tag/Foreign-Exchange-Rates-API/operation/ForeignExchangeRates_v2%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/paai/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/paai/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/paai/reference#tag/Funds-Transfer-Attributes-Inquiry-API/operation/Funds%20Transfer%20Inquiry_v5%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/vau/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vau/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vau/reference#tag/Issuer-Stop-Advice-API/operation/stopAdviceUsingPOST_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/visa-bin-attribute-sharing-service/docs-authentication
📖
GettingStarted
https://developer.visa.com/capabilities/vbds/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vbds/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vbds/reference#tag/Authorization-Data-API/operation/getAuthDataUsingPOST_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/vcpm/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/vcpm/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/vcpm/reference#tag/Visa-Card-Program-Enrollment/operation/enrollmentV2UsingPOST_v2%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-secure-remote-commerce/docs-getting-started
📖
Documentation
https://developer.visa.com/capabilities/visa-secure-remote-commerce/reference#tag/CTP-Checkout-API/operation/CTP%20Checkout%20API_v1%20-%20Latest
📖
Documentation
https://developer.visa.com/capabilities/visa-digital-enablement-lite/reference#tag/URL-Generation-API_/paths/1inapp1provision1appclip1url/post_v1%20-%20Latest
📖
GettingStarted
https://developer.visa.com/capabilities/visa-merchant-screening-service/docs-getting-started
📖
Authentication
https://developer.visa.com/capabilities/visa-merchant-screening-service/docs-authentication
📖
Documentation
https://developer.visa.com/capabilities/visa-merchant-screening-service/reference#tag/Termination-Inquiry-APIs/operation/RetroActive%20Alert%20of%20Terminated%20Merchants%20or%20Agent_v2%20-%20Latest
📖
Documentation
https://developer.visa.com/capabilities/vpa
📖
Documentation
https://developer.visa.com/capabilities/visa-in-app-provisioning
📖
Documentation
https://developer.visa.com/capabilities/merchant_search/docs
📖
Documentation
https://developer.visa.com/capabilities/vba/docs
📖
Documentation
https://developer.visa.com/capabilities/vmorc/docs
📖
Documentation
https://developer.visa.com/capabilities/visa_direct/docs
📖
Documentation
https://developer.visa.com/capabilities/atmlocator/docs
📖
Documentation
https://developer.visa.com/capabilities/vctc/docs

Specifications

Other Resources

OpenAPI Specification

visa-funds-transfer-api-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Foreign Exchange Rates Funds Transfer API API
  description: Push and pull funds to and from Visa accounts for real-time money movement use cases including person-to-person transfers, business disbursements, and account funding transactions.
  version: '1'
servers:
- url: https://sandbox.api.visa.com
  description: Sandbox server
security: []
tags:
- name: Funds Transfer API
  description: Push and pull funds to and from Visa accounts for real-time money movement use cases including person-to-person transfers, business disbursements, and account funding transactions.
paths:
  /visadirect/fundstransfer/v1/pushfundstransactions:
    post:
      operationId: pushFunds
      summary: Push Funds Transaction
      description: Pushes funds to a recipient's Visa account. This operation is used to deliver money to a recipient in real-time, supporting use cases such as person-to-person payments, payroll disbursements, insurance claims, and government benefits.
      tags:
      - Funds Transfer API
      requestBody:
        description: Push funds transaction request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PushFundsRequest'
      responses:
        '200':
          description: Push funds transaction processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PushFundsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
  /visadirect/fundstransfer/v1/pullfundstransactions:
    post:
      operationId: pullFunds
      summary: Pull Funds Transaction
      description: Pulls funds from a sender's Visa account. This operation debits funds from the sender's account, typically as the first step in a two-step funds transfer where funds are subsequently pushed to a recipient.
      tags:
      - Funds Transfer API
      requestBody:
        description: Pull funds transaction request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PullFundsRequest'
      responses:
        '200':
          description: Pull funds transaction processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PullFundsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
  /visadirect/fundstransfer/v1/multipushfundstransactions:
    post:
      operationId: multiPushFunds
      summary: Multi Push Funds Transaction
      description: Pushes funds to multiple recipient Visa accounts in a single request. This batch operation enables efficient disbursement to many recipients simultaneously.
      tags:
      - Funds Transfer API
      requestBody:
        description: Multi push funds transaction request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiPushFundsRequest'
      responses:
        '200':
          description: Multi push funds transaction processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiPushFundsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
  /visadirect/fundstransfer/v1/multipullfundstransactions:
    post:
      operationId: multiPullFunds
      summary: Multi Pull Funds Transaction
      description: Pulls funds from multiple sender Visa accounts in a single request. This batch operation supports scenarios requiring funds collection from many accounts simultaneously.
      tags:
      - Funds Transfer API
      requestBody:
        description: Multi pull funds transaction request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MultiPullFundsRequest'
      responses:
        '200':
          description: Multi pull funds transaction processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MultiPullFundsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
  /visadirect/fundstransfer/v1/reversefundstransactions:
    post:
      operationId: reverseFunds
      summary: Reverse Funds Transaction
      description: Reverses a previously completed push or pull funds transaction. This operation is used to return funds in cases of errors, disputes, or refund scenarios.
      tags:
      - Funds Transfer API
      requestBody:
        description: Reverse funds transaction request details
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReverseFundsRequest'
      responses:
        '200':
          description: Reverse funds transaction processed successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReverseFundsResponse'
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorResponse'
        '401':
          description: Unauthorized
components:
  schemas:
    PullFundsRequest:
      type: object
      required:
      - systemsTraceAuditNumber
      - retrievalReferenceNumber
      - acquiringBin
      - acquirerCountryCode
      - senderPrimaryAccountNumber
      - transactionCurrencyCode
      - amount
      properties:
        systemsTraceAuditNumber:
          type: string
          description: A unique six-digit value assigned by the acquirer to identify a transaction
          maxLength: 6
        retrievalReferenceNumber:
          type: string
          description: A 12-character retrieval reference number
          maxLength: 12
        acquiringBin:
          type: string
          description: Bank Identification Number of the acquiring institution
        acquirerCountryCode:
          type: string
          description: ISO numeric country code of the acquirer
          pattern: ^\d{3}$
        senderPrimaryAccountNumber:
          type: string
          description: Primary account number of the sender
        senderCardExpiryDate:
          type: string
          description: Expiration date of the sender's card in YYYY-MM format
        transactionCurrencyCode:
          type: string
          description: ISO 4217 numeric currency code
          pattern: ^\d{3}$
        amount:
          type: number
          format: double
          description: Transaction amount in the specified currency
        cardAcceptor:
          $ref: '#/components/schemas/CardAcceptor'
    MultiPushFundsRequest:
      type: object
      required:
      - acquiringBin
      - acquirerCountryCode
      - request
      properties:
        acquiringBin:
          type: string
          description: Bank Identification Number of the acquiring institution
        acquirerCountryCode:
          type: string
          description: ISO numeric country code of the acquirer
        request:
          type: array
          description: Array of individual push funds requests
          items:
            $ref: '#/components/schemas/PushFundsRequest'
    ReverseFundsRequest:
      type: object
      required:
      - systemsTraceAuditNumber
      - retrievalReferenceNumber
      - acquiringBin
      - acquirerCountryCode
      - transactionIdentifier
      - amount
      - transactionCurrencyCode
      properties:
        systemsTraceAuditNumber:
          type: string
          description: A unique six-digit value to identify the reversal
          maxLength: 6
        retrievalReferenceNumber:
          type: string
          description: A 12-character retrieval reference number
          maxLength: 12
        acquiringBin:
          type: string
          description: Bank Identification Number of the acquiring institution
        acquirerCountryCode:
          type: string
          description: ISO numeric country code of the acquirer
        transactionIdentifier:
          type: integer
          description: Transaction identifier of the original transaction to reverse
        amount:
          type: number
          format: double
          description: Amount to reverse
        transactionCurrencyCode:
          type: string
          description: ISO 4217 numeric currency code
        originalDataElements:
          type: object
          description: Data elements from the original transaction
          properties:
            systemsTraceAuditNumber:
              type: string
              description: Original transaction STAN
            transmissionDateTime:
              type: string
              description: Original transaction transmission date-time
            acquiringBin:
              type: string
              description: Original acquiring BIN
    PushFundsRequest:
      type: object
      required:
      - systemsTraceAuditNumber
      - retrievalReferenceNumber
      - acquiringBin
      - acquirerCountryCode
      - senderAccountNumber
      - transactionCurrencyCode
      - amount
      - recipientPrimaryAccountNumber
      properties:
        systemsTraceAuditNumber:
          type: string
          description: A unique six-digit value assigned by the acquirer to identify a transaction
          maxLength: 6
        retrievalReferenceNumber:
          type: string
          description: A 12-character value used to identify a transaction uniquely
          maxLength: 12
        acquiringBin:
          type: string
          description: Bank Identification Number of the acquiring institution
        acquirerCountryCode:
          type: string
          description: ISO numeric country code of the acquirer
          pattern: ^\d{3}$
        senderAccountNumber:
          type: string
          description: Account number of the sender
        transactionCurrencyCode:
          type: string
          description: ISO 4217 numeric currency code
          pattern: ^\d{3}$
        amount:
          type: number
          format: double
          description: Transaction amount in the specified currency
        recipientPrimaryAccountNumber:
          type: string
          description: Primary account number of the recipient
        senderName:
          type: string
          description: Name of the sender
        senderAddress:
          type: string
          description: Address of the sender
        senderCity:
          type: string
          description: City of the sender
        senderCountryCode:
          type: string
          description: ISO numeric country code of the sender
        recipientName:
          type: string
          description: Name of the recipient
        businessApplicationId:
          type: string
          description: Identifies the business use case for the transaction
          enum:
          - AA
          - BB
          - BI
          - BP
          - CI
          - CP
          - FD
          - GD
          - GP
          - LO
          - MD
          - MP
          - OG
          - PD
          - PP
          - PS
          - TL
          - WT
    CardAcceptor:
      type: object
      properties:
        name:
          type: string
          description: Name of the card acceptor (merchant)
        terminalId:
          type: string
          description: Terminal identifier
        idCode:
          type: string
          description: Card acceptor identification code
        address:
          type: object
          properties:
            country:
              type: string
              description: Country code
            state:
              type: string
              description: State or province
            city:
              type: string
              description: City name
            zipCode:
              type: string
              description: Postal code
    ReverseFundsResponse:
      type: object
      properties:
        transactionIdentifier:
          type: integer
          description: Unique identifier for the reversal transaction
        actionCode:
          type: string
          description: Response code indicating the result
        approvalCode:
          type: string
          description: Authorization code
        responseCode:
          type: string
          description: Response code from the issuer
        transmissionDateTime:
          type: string
          description: Date and time of the reversal transmission
    PushFundsResponse:
      type: object
      properties:
        transactionIdentifier:
          type: integer
          description: Unique identifier assigned by Visa to the transaction
        actionCode:
          type: string
          description: Response code indicating the result of the transaction
        approvalCode:
          type: string
          description: Authorization code from the issuer
        responseCode:
          type: string
          description: Response code from the issuer
        transmissionDateTime:
          type: string
          description: Date and time of the transaction transmission
    MultiPushFundsResponse:
      type: object
      properties:
        response:
          type: array
          description: Array of individual push funds responses
          items:
            $ref: '#/components/schemas/PushFundsResponse'
    ErrorResponse:
      type: object
      properties:
        errorCode:
          type: string
          description: Machine-readable error code
        message:
          type: string
          description: Human-readable error description
    MultiPullFundsRequest:
      type: object
      required:
      - acquiringBin
      - acquirerCountryCode
      - request
      properties:
        acquiringBin:
          type: string
          description: Bank Identification Number of the acquiring institution
        acquirerCountryCode:
          type: string
          description: ISO numeric country code of the acquirer
        request:
          type: array
          description: Array of individual pull funds requests
          items:
            $ref: '#/components/schemas/PullFundsRequest'
    PullFundsResponse:
      type: object
      properties:
        transactionIdentifier:
          type: integer
          description: Unique identifier assigned by Visa to the transaction
        actionCode:
          type: string
          description: Response code indicating the result
        approvalCode:
          type: string
          description: Authorization code from the issuer
        responseCode:
          type: string
          description: Response code from the issuer
        transmissionDateTime:
          type: string
          description: Date and time of the transaction transmission
    MultiPullFundsResponse:
      type: object
      properties:
        response:
          type: array
          description: Array of individual pull funds responses
          items:
            $ref: '#/components/schemas/PullFundsResponse'
x-tagGroups:
- name: API Reference
  tags:
  - Foreign Exchange Rates API