4. Making a payment

How to make a payment to the security deposit account.

Statements

Statements contain information, such as transaction history, outstanding balance, and payment due date, and must be provided to your users during the repayment cycle. For details, see Building statements.

Payments

You can make a payment to a card from either the security deposit account or from an externally linked bank account. Both options must be presented to your user, although one may be encouraged based on your product flow.

Paying from a security deposit account

To initialize a transfer from our sample security deposit account to our card, use the Create a transfer API.

The following is an example of a transfer initialization request.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/transfers \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '{
     	"origination_account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f",
     	"destination_account_id": "e913d434-bda9-494e-b6df-adf46a52c1cc",
     	"description": "eline repayment",
    	"amount": 25600
		}'

Note that we use 173121d8-f05e-4bb6-b280-b5b761d2214f from the security_deposit_account_id as our origination_account_id and e913d434-bda9-494e-b6df-adf46a52c1cc from thecredit_account_id as our destination_account_id. This dictates that the funds should move from security_deposit_account_id to the credit_account_id.

The following is an example of a successful transfer initialization response.

{
  "date_created": "2022-05-19T17:14:09.686688",
  "date_updated": "2022-05-19T17:14:09.686688",
  "date_settled": "2022-05-19T17:14:09.686688",
  "transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
  "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
  "origination_account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f",
  "destination_account_id": "e913d434-bda9-494e-b6df-adf46a52c1cc",
  "description": "eline repayment",
  "amount": "25600"
}

Paying from an external account

To initialize a transfer from an external bank account, use the Create a transfer API in the same way that we funded the security deposit account.

The following is an example of a transfer initialization request.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/transfers \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "ach": {
          "class_code": "WEB",
          "same_day": false
     },
     "origination_account_id": "f64eadeb-5398-46f7-b1a1-9a0a709039a9",
     "destination_account_id": "e913d434-bda9-494e-b6df-adf46a52c1cc",
     "description": "eline repayment",
     "amount": 25600
}
'

Note again that we use f64eadeb-5398-46f7-b1a1-9a0a709039a9 from the external_account_id as our origination_account_id and e913d434-bda9-494e-b6df-adf46a52c1cc from credit_account_id as our destination_account_id, This dictates that the funds should move from the external_account_id to the credit_account_id.

The following is an example of a successful transfer initialization response.

{
  "date_created": "2022-05-19T17:14:09.686688",
  "date_updated": "2022-05-19T17:14:09.686688",
  "date_settled": null,
  "transfer_id": "e19472da-86c7-404c-8737-b64d9d120ece",
  "transaction_id": "cedc0221-9de6-4735-86d7-1ea89e0cc591",
  "origination_account_id": "f64eadeb-5398-46f7-b1a1-9a0a709039a9",
  "destination_account_id": "e913d434-bda9-494e-b6df-adf46a52c1cc",
  "description": "eline repayment",
  "amount": "25600",
  "ach": {
    "ach_class_code": "WEB",
    "same_day": false,
    "ach_return_code": "R73",
    "failure_reason": null
  }
}