Create Payments

The Create Payment operation allows you to initiate an outbound payment from a Fondy account to a counterparty. This operation requires the provision of counterparty details, the payment amount, a payment reference, and the payment type (currently, only fasterpayments and internal are supported). Additionally, the account details for the payee or counterparty must be provided.

This page will guide you through using this operation. See the following sections for more details.

🚧

Encrypted Requests

All requests into the stack are performed using the Encrypted Endpoint, where the request and response of the operation are encrypted. See How to Integrate Fondy API to learn how to encrypt your operations and send them through the endpoint.

Request

The request process of this operation consists of the following two steps:

  1. Create the payload
  2. Make the encrypted request

See the sections below for more details on each step.

Step 1: Create the payload

The information on the account must be sent to the payload. See the code block below for an example:

{
  "counterparty": {
    "account_number": 12345678,
    "name": "ExampleCounterparty",
    "sort_code": 35648,
    "bic": 35648,
    "iban": "12312312",
    "address": {
      "country_code": "England",
      "city": "London",
      "street": "Street",
      "building_name": "1",
      "building_number": "2",
      "postal_code": "11223"
    }
  },
  "requested_amount": {
    "currency": "GBP",
    "amount": 99
  },
  "payment_references": {
    "payment_reference": "11122223333"
  }
}
'

Where:

ParameterDescription
account_typeThe type of account being created. Possible values: MASTER, STANDARD, WALLET.
account_currencyThe currency for the account. Currently, only GBP is supported.
account_balanceThe initial balance of the account, including currency and amount.
account_balance.currencyThe currency for the account balance. Must match account_currency.
account_balance.amountThe amount to initialize the account is in minor units.
account_detailsDetails of the account include IBAN, sort code, and account number.
account_details.nameName associated with the account.
account_details.ibanIBAN of the account (if applicable).
account_details.sort_codeSort the account code (if applicable).
account_details.account_numberAccount number (if applicable).
external_idThe client provides a unique reference for the account.
classificationThe classification of the account. Possible values: SOLE_TRADER, PRIVATE_LIMITED_COMPANY, etc.
created_date_timeISO 8601 formatted date and time when the account was created.
updated_date_timeISO 8601 formatted date and time when the account was last updated.
master_account_idID of the master account under which this account is created (only for wallet accounts).
wallet_account_idID of the wallet account (only applicable for wallet accounts).
account_aliasThe client provides an alias for the account.
statusStatus of the account. Possible values: PENDING, ACTIVE, etc.
default_walletIndicates whether this wallet is the default wallet for the master account.

Once you create the payload, it has to be encrypted. See the following section for more details.

Step 2: Make the encrypted request

To create the Fondy account, follow the steps below:

  1. Follow the steps in How to Integrate Fondy API to encrypt your request into the stack.
  2. Send the encrypted operation using Encrypted Endpoint. See an example in the code block below:
    {
        "encrypted_payload": ENCRYPTED(walletObject),
        "encrypted_user": ENCRYPTED(<username>),    
        "encrypted_url": ENCRYPTED("/account"),
        "method": "POST"
    }
    

In the request ENCRYPTED(walletObject) is the payload previously created, which is now encrypted.

Response

A successful request will return the encrypted response, as in the code block below:

{
    "encrypted_payload": ENCRYPTED(accountObject)
    "encrypted_url": null
    "method": null
    "nonce": null
}

This response has to be decrypted using the process explained in How to Integrate Fondy API. Once it is decrypted, the unencrypted payload is as follows:

curl --request POST \
     --url https://api.fondy.io/clientapi/api/version/clientRef/base64user/accounts \
     --header 'accept: */*' \
     --header 'content-type: application/json' \
     --data '
{
  "account_type": "MASTER",
  "account_currency": "GBP",
  "account_balance": {
    "currency": "GBP",
    "amount": 4500
  },
  "account_details": {
    "name": "Example",
    "iban": "FR7630006000011234567890189",
    "sort_code": "012345",
    "account_number": "01234567"
  },
  "external_id": "ExampleRefId_43971e26-61b1-420b-9add-c510d44a354f",
  "classification": "SOLE_TRADER",
  "created_date_time": "2020-01-22T13:15:30.000Z",
  "updated_date_time": "2020-01-22T13:15:30.000Z",
  "master_account_id": "f8605015-90ac-4450-bb99-cbb1591bce7a",
  "id": "f8605015-90ac-4450-bb99-cbb1591bce7a",
  "wallet_account_id": "f8605015-90ac-4450-bb99-cbb1591bce7a",
  "account_alias": "Example123",
  "status": "ACTIVE",
  "default_wallet": true
}
'

Where:

ParameterTypeDescription
idstringThe unique identifier for the account. This is returned upon successful account creation.
wallet_account_idstringThe unique identifier for a wallet account is populated when the account type is "WALLET".
statusstringThe current status of the account. Possible values: PENDING, ACTIVE, SUSPENDED, CLOSED, FAILED.
created_date_timestringThe ISO 8601 formatted date and time when the account was created.
updated_date_timestringThe ISO 8601 formatted date and time when the account was last updated.
master_account_idstringThe unique identifier for the master account under which this account is created.
default_walletbooleanA flag indicating whether this wallet is the default wallet for the master account.