7. Funding a card

How does your customer fund their card and what are the options.

1127

Your customer can transfer funds between Cards and external bank accounts using the methods listed in the table below. Currently, the only currency supported is the U.S. Dollar (USD).

Transfers can be:

  • Incoming—into the card from an external bank account, using an ACH payment.
  • Outgoing—out of the card to an external bank account, using an ACH payment.
  • Internal—from one card to another within the same program_id, using peer-to-peer payment.
Funding methodProcessCost and speed
ACH1. Customer connects an external bank account and verifies the account with micro-deposits.
2. Once verified, customer can initiate an ACH transfer.
Cheapest.
Can take a few days to verify and between 3 and 5 days for the ACH transaction to clear and have funds available.
Instant ACH1. Customer instantly verifies and connects a bank account.
2. Once verified, customer can initiate an ACH transfer.
Cheap.
Verification is instant but it still takes between 3 and 5 days for the ACH transaction to clear and have funds available.
WireCustomer initiates a wire from the sending institution to the Bond card account.Moderate pricing.
Domestically very quick.
Peer-to-peerMove money instantly between cards within your brand's card program.Practically free.
Instant.
CheckDeposit a check at a supported ATM in the network or by using check deposit on your mobile app.Moderate pricing.
Takes a few days for the check to clear and have funds available.

Execute ACH and peer-to-peer transfers using the POST /transfers operation and provide parameters as shown in Loading funds.

Include the transfer amount in USD in the request body. The transfer amount is expressed as a decimal string with a two digit precision. You must explicitly specify the cents value, even if the transaction amount is a "round" figure. For example, set amount to 1000 if you want to transfer $10.

An example of a request to perform a transfer is shown below.

curl --request POST \
     --url https://sandbox.bond.tech/api/v0.1/transfers \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHENTICATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
     "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
     "description": "PAYROLL",
     "amount": 100000
}
'

A successful response displays the transfer_id as shown in the example below.

{
  "date_created": "2020-10-09T17:14:09.686688",
  "date_updated": "2020-10-09T17:14:09.686688",
  "date_settled": "2020-10-13T17:14:09.686688",
  "transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
  "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
  "origination_account_id": "6f0e7dcb-6073-42df-bf02-ce71bd5fac3b",
  "destination_account_id": "225641a5-f6e4-4ae1-b5e0-326e6b98842e",
  "description": "PAYROLL",
  "amount": 1000
}

For a complete specification and interactive examples, see Creating a transfer in the Bond API Reference.