Collections

How to receive money

You can receive funds into Verto in many currencies and over many different payment networks, both local and global. If you wish to deposit or receive a currency into Verto, you need to be able to retrieve your account details to do so.

There are two types of account details that can be linked to a wallet:

  • Local Account Details: These are account details linked to a wallet which enables transfers in via local payment rails.
    • Examples include;
      • For GBP wallet - e.g. transfers via Faster Payments, BACS, CHAPS
      • For EUR wallet - e.g. transfers via SEPA and SEPA Instant
      • For NGN wallet - e.g. transfers via NIBSS and eTranzact
  • Global Account Details: These are account details linked to a wallet which enables transfers via global payment rails such as SWIFT.

A wallet can be linked to zero or multiple account details either Local or Global account details. A wallet can be linked to more than one Local or Global account details for example a wallet can have two or three different Global account details. Which means that funds sent to either of those three global account details will be credited to the single linked wallet.

You can find out more about which currency wallets can be linked to global or local account details here.

Generate your account details

When you create an account or sub-account it automatically creates a set of default wallets in USD, EUR, GBP, AUD, NGN. To add other wallets like KES, you would be required to create a wallet manually as it isn't automatically created. You can do this using the Create A Wallet Endpoint. However, these wallets are automatically defaulted to having zero account details linked. Therefore, you are required to generate account details for each wallet if you wish to enable external transfers directly into the wallet.

The Get all funding methods (New) can generate and view account details for a given wallet. It will generate all possible account details (Local and/or Global) for the wallet requested. The Local or Global account details may either be:

  • Dedicated account details: These are account details unique to the wallet and any transfers sent to these account details will be automatically allocated to the linked wallet.
  • Pooled account details: Which are account details which are linked to many wallets hosted by Verto. For funds to be correctly allocated, the SmartWallet ID of the linked wallet must be included in the payment reference of any payments sent to these account details. The SmartWallet ID is a static unique identifier used to fund the wallet and is included in the response to this API call. This must be included on all payments for them to be applied.

To use the Get all funding methods (New), you need to include the Company ID and the Wallet ID of the desired wallet you wish to generate account details for.

An optional query parameter called ‘Auto Create’ must be enabled (True) to generate the account details. If you just want to view a wallet's existing account details, you just call the API without Auto Create enabled. The request structure is shown below:

http://api-wallet-sandbox.vertofx.com/:companyId/wallets/:walletId/fundingMethods?autoCreate=true

In the response, you will receive the account details which varies for global and local account details but this may include the Account Name, Account Number, Bank Code, Bank Name, Bank Address as shown in 'Response 1'. For pooled account details it will include the Smart Wallet ID to be included in the payment reference as shown in 'Response 2'.

Example response 1 - Funding methods exist for the wallet:
{
    "totalCount": 2,
    "items": [
        {
            "id": 4563,
            "accountType": "local",
            "fundsType": "segregated",
            "accountName": "Foxtale ltd",
            "accountNumber": "96566547",
            "bankCode": "608382",
            "bankName": "BankingCircle",
            "bankAddress": "AMERIKA PLADS 38, KOEBENHAVN, 2900, Denmark",
            "smartWalletRef": null,
            "virtualAccountId": 4563,
            "notes": [
                "Receive into this local account via CHAPS, BACS & Faster Payments.",
                "Incoming payments are typically received in minutes but can take up a few hours during peak times."
            ]
        },
        {
            "id": 4562,
            "accountType": "global",
            "fundsType": "segregated",
            "accountName": "Foxtale ltd",
            "accountNumber": "GB42SAPY60838296566547",
            "bankCode": "SAPYGB2L",
            "bankName": "BankingCircle",
            "bankAddress": "AMERIKA PLADS 38, KOEBENHAVN, 2900, Denmark",
            "smartWalletRef": null,
            "virtualAccountId": 4562,
            "notes": [
                "Receive into this International account via International Transfers (SWIFT).",
                "Incoming payments are typically received in 1-5 working days.",
                "You can recieve payments from the countries on <a target=\"_blank\" href=\"https://support.vertofx.com/en/articles/6156317-what-countries-can-i-receive-payments-from\">this list</a>"
            ]
        }
    ],
    "metadata": {
        "isEligibleForSegregatedGlobalAccount": true,
        "isEligibleForSegregatedLocalAccount": true
    }
}
Example response 2 - Funding methods in case smart wallet is enabled:

{
    "totalCount": 2,
    "items": [
        {
            "id": 96,
            "accountType": "local",
            "fundsType": "pooled",
            "accountName": "E25",
            "accountNumber": "342340932",
            "bankCode": "AICHJPJNXXX",
            "bankName": "The Aichi Bank Ltd",
            "bankAddress": "test address",
            "smartWalletRef": "V5AMBERV2K1"
        },
        {
            "id": 96,
            "accountType": "global",
            "fundsType": "pooled",
            "accountName": "E25",
            "accountNumber": "342340932",
            "bankCode": "AICHJPJNXXX",
            "bankName": "The Aichi Bank Ltd",
            "bankAddress": "test address",
            "smartWalletRef": "V5AMBERV2K1",
            "notes": [
                "Receive into this International account via International Transfers (SWIFT).",
                "Incoming payments are typically received in 1-5 working days.",
                "You can recieve payments from the countries on <a target=\"_blank\" href=\"https://support.vertofx.com/en/articles/6156317-what-countries-can-i-receive-payments-from\">this list</a>"
            ]
        }
    ],
    "metadata": {
        "isEligibleForSegregatedGlobalAccount": true,
        "isEligibleForSegregatedLocalAccount": false
    }
}

Get notified for an incoming payment

Once you have linked account details to a wallet for an account or sub-account, you are able to be notified when an incoming payment is received into the account or sub-account’s wallet via an incoming webhook. To configure the web hooks from your account you can do this via Verto’s production or sandbox platform [see the Webhooks page for more information].

The information you will receive in the payload includes everything you need to know about the payment including the amount, currency, wallet, and transaction date. Furthermore, information on the sender is passed through such as the sender name. The information received depends on the status of the transaction, the two statuses are:

  • Requested: The incoming payment has been received into the Local or Global account but the funds have yet to be credited to the linked wallet - it will now move to transaction screening by AML systems.
  • Completed: The incoming payment has been received into the Local or Global account and the funds have been successfully credited to the linked wallet - this takes place after succesful transaction screening by AML systems

For incoming payments with a 'Requested' transaction status, an example response is below:

{  
  "payload": {  
    "id": 38313,  
    "amount": "1234.00",  
    "reference": "TO-07112024-050",  
    "state": "requested",  
    "currency": "GBP",  
    "paymentId": null,  
    "type": "iban_to_wallet",  
    "clientReference": null,  
    "walletId": 25832,  
    "createdDate": "2024-11-07T11:26:55.000Z",  
    "completedDate": null,  
    "archivedDate": null,  
    "companyId": "4109"  
  }

For incoming payments with a 'Completed' transaction status, there are more fields included in the response such as information on the sender's account details as shown in the example below:

{
  "payload": {
    "id": 38313,
    "amount": "1234.00",
    "reference": "TO-07112024-050",
    "state": "completed",
    "currency": "GBP",
    "paymentId": null,
    "type": "iban_to_wallet",
    "clientReference": "null::sdfghjkl:123456789:2345",
    "account": {
      "id": 38796,
      "accountNumber": "123456789",
      "bankName": null,
      "beneficiaryAddress": null,
      "beneficiaryCity": null,
      "beneficiaryCompanyName": "sdfghjkl",
      "beneficiaryCountryCode": null,
      "beneficiaryEntityType": "company",
      "beneficiaryPostcode": null,
      "beneficiaryEmail": null,
      "country": null,
      "reference": "RP-07112024-007",
      "beneficiaryFirstName": null,
      "beneficiaryLastName": null,
      "nationalId": "2345",
      "currency": "GBP",
      "clientReference": null,
      "status": "approved"
    },
    "walletId": 25832,
    "createdDate": "2024-11-07T11:26:55.000Z",
    "completedDate": "2024-11-07T11:27:01.820Z",
    "archivedDate": null,
    "companyId": "4109"
  }
}

Once the funds are in your Verto wallet, they are able to be used within the Verto ecosystem such as to undertake an FX transaction or to payout to an external beneficiary.

When using sub-accounts, the companyId and walletId can be used to identify the sub-account and wallet that received the funds.

For Sub-Account Setup Transferring Funds to Parent Wallet

Once you are notified of an incoming payment into a sub-account’s wallet, it is best practice to immediately transfer the funds from the sub-account’s wallet to the parent account’s wallet. This can be initiated when you receive a webhook confirming an incoming payment.

To initiate the transfer you can use the Create a Wallet-to-Wallet Transfer (New) which enables the instant transfer of funds between two same currency wallets within Verto. The amount to transfer, currency, source wallet ID (sending wallet), and target wallet ID (receiving wallet) is required in the request to initiate the transfer.

{
  "amount": 1000,
  "currency": "USD",
  "sourceWalletId": 3064,
  "targetWalletId": 3063,
  "description": "Internal funds movement",
  "externalUniqueRef": "71467f6d-58ed-400f-89b6-20db028fb498"
}

Once you have initiated the transfer, the source wallet and target wallet will be instantly debited and credited respectively. In the response you will receive a status confirming the transaction is completed.

{
  "amount": 200,
  "currency": "USD",
  "reference": "T0-28052024-046",
  "description": "Internal funds movement",
  "sourceWalletId": 3064,
  "targetWalletId": 3063,
  "state": "completed",
  "externalUniqueRef": "71467f6d-58ed-400f-89b6-20db028fb498"
}

As such the funds flow for inbound funds can be summarised to:

  1. Receive inbound fund notification with statement completed
  2. Sweep funds from Sub-Clients wallet to Parent Wallet via Create a Wallet Transfer API

What is the different between unique account details and pooled account detail?

In some markets (like NGN) Verto can generate unique account details on a per wallet basis, this account number is then used to allocate funds as they arrive to each wallet respectively.

In other markets, where unqiue account generation is not possible Verto's pooled account details are provided. In these markets a unique reference ID must be included on all payments in the narration/description of the payment for them to be allocated to the correct wallet. Where this is not included the payment will be returned automatically to the sender.