Payin Simulator

This functionality explains how in the Sandbox environment payins can be simulated to support different currencies and payment methods.

Request

EnvironmentEndpoint
SandboxPOST https://api.sandbox.bvnk.com/payment/v1/payins/simulate

This is the Endpoint which is accessible to all customers and specifies in the request body the minimum amount of information required to simulate a payin.

{
    "walletId": "acc:23090539331497:bVsk6:0",
    "paymentReference": "<your-own-reference>",
    "paymentMethod": "FASTER_PAYMENT",
    "amount": {
        "value": 60.50,
        "currency": "GBP"
    },
    "originator": {
        "name": "Sender Name",
        "bankAccount": {
            "accountNumberFormat": "IBAN",
            "accountNumber": "GB87SYPE04082500000904"
        }
    }
}
{
    "walletId": "acc:23090539331497:bVsk6:0",
    "paymentReference": "<your-own-reference>",
    "paymentMethod": "SEPA_INST",
    "amount": {
        "value": 100,
        "currency": "EUR"
    },
    "originator": {
        "name": "Sender Name",
        "bankAccount": {
            "accountNumberFormat": "IBAN",
            "accountNumber": "IE29AIBK93115212345678"
        }
    }
}
{
    "walletId": "acc:23090539331497:bVsk6:0",
    "paymentReference": "<your-own-reference>",
    "paymentMethod": "ACH",
    "amount": {
        "value": 120.60,
        "currency": "USD"
    },
    "originator": {
        "name": "Sender Name",
        "bankAccount": {
            "accountNumberFormat": "ABA",
            "accountNumber": "026009593"
        }
    }
}
{
    "walletId": "acc:23090539331497:bVsk6:0",
    "paymentReference": "<your-own-reference>",
    "paymentMethod": "SWIFT",
    "amount": {
        "value": 2000.40,
        "currency": "USD"
    },
    "originator": {
        "name": "Sender Name",
        "bankAccount": {
            "accountNumberFormat": "IBAN",
            "accountNumber": "US64BOFA0260095931234567890"
        }
    }
}

Note that the paymentMethod is an optional field, and in the scenario where it is not provided, the logic will be rooted for the specific wallet based upon other attributes to be dynamically determined. Furthermore, by each currency there are different supported payment methods, which are mentioned below:

  • GBP - FPS (FASTER_PAYMENT), and CHAPS (CHAPS).
  • EUR - SEPA Credit (SEPA_CT), and SEPA Instant (SEPA_INST).
  • USD - ACH (ACH), Fedwire (FEDWIRE), and CUBIX (CUBIX).
  • All currencies support SWIFT payments (SWIFT).

It is important to note that not all USD wallets support all payment methods (see the process of Wallet Profiles), and all payment methods and currencies are subject to change and enhancements with further optionality.

This functionality is not enabled for all wallets, and it is advised to contact support if you experience any issues when trying to use this functionality.

The beneficiary details are not required to simulate a payin due to the walletId providing the details for the specific wallet to be paid into.

It is advised that a user subscribes to the Payin Webhook in order to be updated about the change of the wallet balance based on the simulated payin.

The details in the payin request are as follows:

ParameterTypeDescription
walletIdStringSpecify your wallet id.
paymentReferenceStringReference for the payment.
paymentMethodStringThe payment method to be utilised for transactions associated with a specific beneficiary. This is an optional field.

If provided, it has to be one of the following values:
GBP - FASTER_PAYMENT, CHAPS or SWIFT
EUR - SEPA_CT, SEPA_INST or SWIFT
USD - ACH, FEDWIRE, CUBIX or SWIFT
All other currencies - SWIFT
amount.valueStringRefers to the payin amount in a numerical value.
amount.currencyStringSpecify the currency. Possible values are USD, EUR, and. GBP.
originator.nameStringThe name of the sender of the payin.
originator.bankAccountStringThe bank account details of the sender of the payin.
originator.accountNumberFormatStringThe account number format of the sender of the payin, for example IBAN can be used for SWIFT and ABA for local USD rails.
originator.accountNumberStringThe account number of the sender of the payin.