Book Transfers

How do I execute a book transfer?

Learn how to execute fiat and crypto book transfers

The book transfer capability offers significant flexibility in controlling funds on the Cybrid Platform and offers a zero-cost method to move funds between accounts on the platform. The following types of book transfers are supported:

  • bank -> customer
  • customer -> bank
  • customer -> customer

All transfers on the platform must be like for like. This means you can perform the following types of transfers:

  • fiat -> fiat
  • crypto -> crypto

As long as the source account and destination account are of the same asset type (e.g. USD -> USD, BTC -> BTC), with a bank account on one side and a customer account on the other side, then transfers are quick and easy.

📘

Tip: Book transfers may be used to enable transfer of funds between a partner's pre-funded bank accounts on the platform and customer accounts. For more information regarding pre-funding, please reach out to partner support.

Fiat book transfer

As an example, let's use the book transfer feature to transfer $1 USD from a fiat funding bank account to a fiat funding customer account. Here are the steps to complete this transaction:

  • Create a quote using the POST /api/quotes endpoint
    • Provide the "book_transfer" value in the product_type parameter
    • Provide the "USD" value in the asset parameter
    • Note: The side is omitted for book transfers, all book transfers will be "deposit"
    • We're book transferring $1 USD to the customer account so we'll also provide that amount in the receive_amount parameter
{
  "product_type": "book_transfer",
  "asset": "USD",
  "receive_amount": 100
}
  • Create a transfer using the POST /api/transfers endpoint
    • Provide the quote_guid value from the quote created above
    • Provide the "book" value in the transfer_type parameter
    • Provide the source_account_guid and destination_account_guid values. Since we're transferring from the bank account to the customer account, the source in this example is the bank account, and the destination is the customer account
    • Provide source_participants and destination_participants for book transfers.
{
  "transfer_type": "book",
  "quote_guid": "<quote_guid>",
  "source_account_guid": "<bank account_guid>",
  "destination_account_guid": "<customer account_guid>",
  "source_participants": [
    {
      "type": "bank",
      "amount": 100,
      "guid": "<bank_guid>"
    }
  ],
  "destination_participants": [
    {
      "type": "customer",
      "amount": 100,
      "guid": "<customer_guid>"
    }
  ]
}
  • Once executed, you should immediately see the transferred amount reflected in the platform_available of the bank account and the customer account

Crypto book transfer

In the example, let's transfer 1 USDC (Ethereum) from a crypto trading bank account to a crypto trading customer account.

  • Create a quote using the POST /api/quotes endpoint
    • Provide the "book_transfer" value in the product_type parameter
    • Provide the "USDC" value in the asset parameter
    • Note: The side is omitted for book transfers, all book transfers will be "deposit"
    • We're book transferring 1 USDC to the customer account so we'll also provide that amount in the receive_amount parameter
{
  "product_type": "book_transfer",
  "asset": "USDC",
  "receive_amount": 1000000
}
  • Create a transfer using the POST /api/transfers endpoint
    • Provide the quote_guid value from the quote created above
    • Provide the "book" value in the transfer_type parameter
    • Provide the source_account_guid and destination_account_guid values. Since we're transferring from the bank account to the customer account, the source in this example is the bank account and the destination is the customer account
{
  "transfer_type": "book",
  "quote_guid": "<quote_guid>",
  "source_account_guid": "<bank account_guid>",
  "destination_account_guid": "<customer account_guid>",
  "source_participants": [
    {
      "type": "bank",
      "amount": 100,
      "guid": "<bank_guid>"
    }
  ],
  "destination_participants": [
    {
      "type": "customer",
      "amount": 100,
      "guid": "<customer_guid>"
    }
  ]
}
  • Once executed, you should immediately see the transferred amount reflected in the platform_available of the bank account and the customer account