Visa Payments Limited - Merchant Payments API

API Endpoints

Authentication

Title

Description

Endpoint

Get Access Token

Verify client credentials and returns a bearer token.

POST /oauth/token

Balances

Title

Description

Endpoint

Get Balance

Retrieves the balance of a merchant account.

GET /balances

Beneficiary Bank Account

Title

Description

Endpoint.

Create Beneficiary Bank Account

Registers a new beneficiary bank account against this User.

POST /users/{userID}/bank-accounts

Deactivate Beneficiary Bank Account

Deactivates a Beneficiary Bank Account. You will not be able to send a payment to a deactivated bank account.

DELETE /users/{userID}/bank-accounts/{bankID}

Get Beneficiary Bank Account

Gets a Beneficiary Bank Account.

GET /users/{userID}/bank-accounts/{bankID}

Get Expected Settlement Date

Validates a new beneficiary bank account and gets the expected settlement date.

POST /bank-accounts/expected-settlement

List Bank Accounts

Gets all Beneficiary Bank Accounts registered by this User.

GET /users/{userID}/bank-accounts

Validate Beneficiary Bank Account

Validates a new beneficiary bank account against a User.

POST /bank-accounts

Payments

Title

Description

Endpoint

Create Payment

This service creates a payment without the need to pre-register either the User or Beneficiary Bank Account.

 

Creates a User (or updates an existing User), adds a Beneficiary Bank Account to this user and creates a new payment.

POST /payments

Create Payment Registered Beneficiary

Creates a new payment for a previously registered beneficiary bank account (and user).

POST /users/{userID}/bank-accounts/{bankID}/payments

Get Metadata for Payment Request

Returns the required fields for creating the payment request.

GET /payments/meta

Get Purpose of Payment Metadata

Returns Purpose of Payment metadata for a payment to a beneficiary bank account which has previously been registered.

GET /users/{userID}/bank-accounts/{bankID}/payments/meta

Quotes

Title

Description

Endpoint

Create Bulk FX Quote

Requests a bulk FX quote and creates a ticket for the quote. This ticket is honoured for a specified duration which is limited by Rate Expiry Date/Time.

POST /quotes/bulk

Create FX Quote

Requests an FX quote and creates a ticket for the quote. This ticket is honoured for a specified duration which is limited by Rate Expiry Date/Time. There are two exclusive scenarios when requesting a rate between two currencies:

The caller provides a sell amount and is given the corresponding buy amount. In this case, the caller needs to populate the sellAmount and buyCurrency input parameters.

The caller provides a buy amount and is given the corresponding sell amount. In this case, the caller needs to populate the buyAmount and sellCurrency input parameters.

POST /users/{userID}/bank-accounts/{bankID}/quotes

Get Indicative FX Quote

Requests an indicative quote. There are two exclusive scenarios when requesting a rate between two currencies:

The caller provides a sell amount and is given the corresponding buy amount. In this case, the caller needs to populate the sellAmount and buyCurrency input parameters.

The caller provides a buy amount and is given the corresponding sell amount. In this case, the caller needs to populate the buyAmount and sellCurrency input parameters.

POST /quotes/indicative

Settlement Calendars

Title

Description

Endpoint

Get Settlement Calendar

Retrieves the Settlement Calendar for payout.

GET /settlement-calendars

Statements

Title

Description

Endpoint

Get Statement

Retrieves a list of financial transactions and balances for a specified time period for an account administered in the Visa Payments Limited payment system. To retrieve a particular statement the startDate, endDateTime and currency of the account must be specified. The statement returned will contain transactions that occurred since the start of the startDate up to and including endDateTime. If the account (in the requested currency) does not contain any transactions for the period an empty statement is returned. Every transaction, together with the money movement it represents (debit or credit) and its resulting account balance are represented as a statement line item. There will be a number of statement line items (up to the maximum page size) per page with an opening and closing balance for that page. Currently the following transaction types may show up on a statement:

Payout transaction, Refund transaction, User deposit, Liquidity deposit, Journal transaction, Merchant liquidity movement, Visa Payments Limited Merchant Liquidity Transfer

The operation supports sorting (by date) by specifying a sort order (ASC or DESC) and paging across multiple pages of results.

GET /statements

Transactions

Title

Description

Endpoint

Get Transaction

Retrieves a single Transaction based on TransactionID.

GET /transactions/{transactionID}

Search Transactions

This allows you to search for payments where you don't know the UID (paymentID) and also allows you to search for other financial transaction types on your account such as refunds, deposits (See Transaction Type).

This API supports sorting by "Timestamp" or "Amount" in a particular sort order (ASC or DESC) as well as paging across multiple pages of results.

GET /transactions

Cancel Transaction

Cancels a Transaction (payout instruction) which is in a cancellable state in Visa Payments Limited Payments Service.

DELETE /transactions/{transactionID}

Users

Title

Description

Endpoint

Create User

Registers a new user for the client. A User is responsible for registering the beneficiary bank account to which a payment is sent to. This normally means the User is the Payer.

POST /users

Disable User

Disables a User - you cannot register new bank accounts against a disabled User or create payments for a disabled User.

DELETE /users/{userID}

Get User

Get a User/Payer. This API only returns the identity details of a User/Payer.

GET /users/{userID}

Update User

Updates a User/Payer. This API only supports updating the identity details of a User/Payer.

PUT /users/{userID}

Validate User

Use this API to validate the payer identity details of the User.

POST /users