Creating a secured charge card

How to create a secured charge card, from getting your API keys to making payments.

Overview

This guide covers the following elements of Bond's secured charge card experience:

What is a secured charge card?

A secured charge card pairs a charge card with a security deposit account. The balance in the security deposit account is effectively the credit limit of the charge card, and repayments on the charge card can be made from either the security deposit account or another bank account.

The credit limit of a charge card is equal to the balance of the security deposit account. Since the balance of the account starts at zero, users can't spend on their charge cards without funding the security deposit account. The security deposit account can be funded through various methods, including ACH and direct deposit.

Prerequisites

Before you can create a secured charge card, you need to successfully complete the following steps:

  1. Get your API keys
  2. Get your Program ID
  3. Register webhooks

1. Getting your API keys

To interact with the API endpoints on Bond's platform, a pair of identity and authorization API keys must be supplied in the request headers. For more information, see Getting your API key.

2. Finding your Program ID

A Program ID is a UUID value provided by Bond that represents a relationship between you and a bank, and is often associated one-to-one with a financial product. In this guide, your program ID is affiliated with consumer secured credit accounts. You can find your program_id in the Bond Portal under the Developers tab. For more information, see Getting your Program ID.

3. Registering webhooks

We use webhooks to signal asynchronously that work has been done in response to certain API requests. These webhooks are for convenience, and any information provided asynchronously in the webhooks can also be queried using synchronous API requests. For this guide, we are interested in webhooks specifically in the following categories:

  • credit
  • kyc

Webhook registration can be done through Bond Portal or via API. More information, see Webhook events and subscriptions.

Creating a secured charge card

  1. Create a customer
  2. Create a credit application
  3. Submit credit application
  4. Fund the security deposit account
  5. Create a secured charge card

1. Creating a customer

On the Bond platform, every consumer who is issued a financial product must have an associated Customer object. This customer object stores important information on the consumer, including name, address, and other sensitive information that is required for regulatory purposes.

For the purposes of this guide, we are onboarding a fictional consumer named Eline Amista who lives at Bond HQ. An example of the customer creation request for Eline is shown below.

curl --request POST \
     --url https://sandbox.bond.tech/api/v0/customers/ \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHENTICATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "addresses": [
          {
               "address_type": "MAILING",
               "street": "345 California Ave.",
               "street2": "Suite 600",
               "city": "San Francisco",
               "state": "CA",
               "zip_code": "12345-1234",
               "country": "US",
               "is_primary": true
          }
     ],
     "dob": "1997-12-25",
     "first_name": "Eline",
     "last_name": "Amista",
     "ssn": "333-245-8546",
     "phone": "555-111-2222",
     "phone_country_code": "1",
     "email": "[email protected]"
}
'

An example of a successful customer creation request is shown below.

{
  "customer_id": "3a43b612-825c-48d4-b025-47083ab10755",
  "brand_person_id": "ac6ee2d3-5a03-4043-a4aa-dda51836b9fd",
  "bond_brand_id": "8c7e08c8-0320-444c-b834-007cd9e18c0e",
  "business_id": null,
  "dob": "1997-12-25",
  "first_name": "Eline",
  "middle_name": null,
  "last_name": "Amista",
  "ssn": "333-245-8546",
  "phone": "555-111-2222",
  "phone_country_code": "1",
  "email": "[email protected]",
  "addresses": [
    {
      "address_id": "5ff2a5f8-2d96-4c89-9edc-ec762ac3844c",
      "address_type": "MAILING",
      "street": "345 California Ave.",
      "street2": "Suite 600",
      "city": "San Francisco",
      "state": "CA",
      "zip_code": "12345-1234",
      "country": "US",
      "is_primary": true,
      "date_created": "2021-10-11T17:54:26.784367+00:00",
      "deliverability": "deliverable"
    }
  ],
  "date_created": "2021-06-02T13:38:27.965404+00:00"
}

In the response, we want to pay particular attention to the customer_id UUID value 3a43b612-825c-48d4-b025-47083ab10755 which uniquely identifies the newly created customer object associated with Elina, and the address_id UUID value 9de0c172-dc43-4c80-9d2c-dc0e4687cdb5 which uniquely identifies Eline's address.

For more information, see Creating a customer in the API Guide.

2. Creating a credit application

In order to determine whether your user is eligible for a charge card, you need to create and submit a credit application on their behalf containing personal details of your user. An example of a credit application creation request is provided below.

curl --request POST \
     --url https://sandbox.bond.tech/api/v0.1/credit/applications \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHENTICATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "applicant": {
          "customer_id": "05a8054f-8259-4e30-8d1d-d286081987bd",
          "employment_status": "unemployed",
          "total_annual_income": 430000,
          "monthly_housing_payment": 36800
     },
     "program_id": "YOUR-PROGRAM-ID"
}
'

Note that we are using the customer_id value 3a43b612-825c-48d4-b025-47083ab10755 that we received in the customer creation response.

For more information, see Creating a credit application in the API Guide.

An example of a successful response to the credit application creation request is shown below.

{
  "application_id": "9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9",
  "program_id": "YOUR-PROGRAM-ID",
  "date_created": "2021-11-15T00:17:56.842105Z",
  "date_updated": "2021-11-15T00:17:56.842105Z",
  "application_status": "created",
  "applicant": {
    "customer_id": "05a8054f-8259-4e30-8d1d-d286081987bd",
    "employment_status": "employed",
    "address_id": "bb5fa77d-fd66-4e31-81c0-eaf549b0c797",
    "total_annual_income": 4300000,
    "monthly_housing_payment": 36800,
    "terms_accepted": true,
    "currency": "USD",
    "first_name": "Eline",
    "middle_name": "",
    "last_name": "Amista",
    "date_of_birth": "1997-12-25",
    "street": "45 California St.",
    "street2": "Suite 600",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "zip_code": "94105",
    "ssn": "tok_sandbox_xoZzhoxaCXHb823bZp3x2e",
    "email": "[email protected]"
  },
  "accounts": {
    "security_deposit_account_id": null
  }
}

Note the application_id value 9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9 which uniquely identifies the application associated with Eline.

Not all of the information needs to be provided when the application is created. The PATCH credit application API allows you to update the application information incrementally as you onboard your user.

3. Submitting the credit application

Submitting a credit application starts the following:

  • KYC process to ensure that the customer information is genuine
  • Creation of a secured deposit account once the KYC process is approved

Submission

When the application is ready to be submitted, use the Submit credit application API.

An example of a credit application submission request is shown below.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/credit/applications/9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9/submit \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Identity: YOUR-IDENTITY'

Note that we used the application_id 9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9 from the credit application creation as a path variable.

An example of a successful submission response is shown below.

{
  "application_id": "2629182a-3aeb-4834-846a-1688d4649bb9",
  "program_id": "YOUR-PROGRAM-ID",
  "date_created": "2021-11-15T00:17:56.842105Z",
  "date_updated": "2021-11-15T00:17:56.842105Z",
  "application_status": "submitted",
  "applicant": {
    "customer_id": "05a8054f-8259-4e30-8d1d-d286081987bd",
    "employment_status": "employed",
    "address_id": "bb5fa77d-fd66-4e31-81c0-eaf549b0c797",
    "total_annual_income": 4300000,
    "monthly_housing_payment": 35600,
    "terms_accepted": true,
    "currency": "USD",
    "first_name": "Eline",
    "middle_name": "",
    "last_name": "Amista",
    "date_of_birth": "1997-12-25",
    "street": "45 California St.",
    "street2": "Suite 600",
    "city": "San Francisco",
    "state": "CA",
    "country": "US",
    "zip_code": "94105",
    "ssn": "tok_sandbox_xoZzhoxaCXHb823bZp3x2e",
    "email": "[email protected]"
  },
  "accounts": {
    "security_deposit_account_id": null
  }
}

KYC process

As shown in the previous response, the application_status value of kyc_started indicates that the Bond platform has automatically initiated regulatory KYC checks on Eline. These KYC checks are equivalent to the KYC checks initiated by the Start KYC (Know-Your-Customer) endpoint and should be handled in the same way. In the majority of cases, these checks run automatically and are completed in seconds. However, in certain scenarios, additional information may be required to complete identity verification. For more information, see Running KYC.

There are a few cases that arise during KYC that may require additional intervention. These cases are described in the table below.

KYC Webhook

Notes

kyc.verification.document_required
response required

The documents required for the document required state are accessible via webhook or via the Retrieve KYC Status endpoint using the relevant customer_id and program_id.

kyc.verification.reenter_information
response optional

To respond to the reenter_information webhook, information provided via the customer object can be patched directly via the Update a customer endpoint, while information provided via the credit application can be changed directly via the Patch credit application endpoint.
After changing the relevant fields described by the kyc.verification.reenter_information webhook, the credit application can be resubmitted again using the Submit credit application endpoint.

kyc.verification.failure

When the background KYC checks result in a failure, the application_status value is kyc_warning. However, an application can be resubmitted after a failed KYC up to a limit of three times using the Submit credit application endpoint.

Approval

Pending a successful KYC, the credit application moves into the approved state. This is accompanied by a credit.application.approved webhook event. The approved state can also be viewed using the Get credit application endpoint. An example of a GET response for an approved application is shown below.

{
  "program_id": "54f7882b-6b95-4cde-a7eb-775b9468bcb1",
  "date_created": "2022-05-15T00:17:56.842105Z",
  "date_updated": "2022-05-15T00:17:56.842105Z",
  "application_id": "9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9",
  "application_status": "approved",
  "applicant": {
    "customer_id": "05a8054f-8259-4e30-8d1d-d286081987bd",
    "employment_status": null,
    "address_id": "bb5fa77d-fd66-4e31-81c0-eaf549b0c797",
    "total_annual_income": 8000000,
    "monthly_housing_payment": 200000,
    "terms_accepted": true,
    "currency": "USD",
    "first_name": "Eline",
    "middle_name": "",
    "last_name": "Amista",
    "date_of_birth": "1997-12-25",
    "street": "45 California St.",
    "street2": "Suite 600",
    "city": "San Francisco",
    "state": "CA",
    "country": "USA",
    "zip_code": "94105",
    "ssn": "333-245-7829",
    "email": "[email protected]"
  },
  "accounts": {
    "security_deposit_account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f"
  }
}

We take special note of the security_deposit_account_id field 173121d8-f05e-4bb6-b280-b5b761d2214f under the accounts key. This value uniquely identifies the security deposit account that has been created for Eline.

Adverse action notices

Not all credit applications are approved. When a credit application is rejected, an adverse action notice is generated. These notices need to be supplied to the end consumer (in this case, Eline), in an approved template via email.

The Get adverse actions API can be used to get additional information on the reason for the rejection.

An example of a request to get the reason for rejection is shown below.

curl --request GET \
     --url https://api.bond.tech/api/v0.1/credit/applications/9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9/adverse-actions \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Identity: YOUR-IDENTITY'

For the majority of credit application we expect that the application will encounter no difficulties, so we receive the 404 response shown below.

{
    "status": "ERROR_CODE_CREDIT_APPLICATION_GENERIC",
    "code": 3001,
    "message": "Not found.",
    "details": {}
}

An example of a response for a different application_id that contains an adverse action is shown below.

{
    "id": "585ffb6a-98f9-40f6-a2b9-81ab22fb169a",
    "application_id": "8d3dbb5c-97c1-4c18-97bc-e376e62cc2c9",
    "date_created": "2022-05-15T21:39:10.130756Z",
    "date_updated": "2022-05-15T21:39:10.192226Z",
    "service": "kyc",
    "reasons": [
        "Unable to verify identity"
    ]
}

The most common reason for adverse action notices is when the customer and the credit application fail three submission attempts at KYC. After three attempts an error is generated. An example of this error is shown below.

{
    "status": "ERROR_CODE_CREDIT_APPLICATION_MAX_KYC_ATTEMPTS",
    "code": 3010,
    "message": "Customer has exceeded maximum number of KYC attempts.",
    "details": {
        "@type": "type.googleapis.com/bond.credit.v1.CreditCustomerErrorDetail",
        "application_id": "9b3dbb5c-97c1-4c18-97bc-e376e62cc2c9",
        "customer_id": "3a43b612-825c-48d4-b025-47083ab10755"
    }
}

4. Funding the security deposit account

To be able to make purchases on a secured charge card you need to fund the security deposit account. This can also be done after creating the secured charge card, however, until there are funds in the secured deposit account, the credit limit on the card is zero.

Executing an ACH transfer

📘

Note

To link external accounts, you need to use the v0 APIs.

When funding a security deposit account through ACH, the first step is to link an external bank account. Linking an external account can be done either via Bond's SDK or via Bond's APIs directly.

📘

Underwriting via external bank accounts

After linking the account, use the Get external account history endpoint to view recent transactions on the external account. This information can also be used to make an underwriting assessment as to whether you would like to offer your user a card.

Funding a security deposit account through ACH can be done through the Create transfer endpoint. Note that to initiate an ACH transfer, an external account must be linked to the customer. After an external account has been linked, there is a linked_account_id that identifies the linked account. For our purposes, we'll assume that the linked_account_id is f64eadeb-5398-46f7-b1a1-9a0a709039a9.

An example of an ACH transfer request for Eline is shown below.

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": "173121d8-f05e-4bb6-b280-b5b761d2214f",
     "amount": 25000,
     "description": "eline funding"
}
'

Note that we supplied the linked_account_id as the origination_account_id and the security_deposit_account_id as the destination_account_id because we want the funds to flow from the linked account to the security deposit account.

An example of a successful response is shown below.

{
  "date_created": "2022-05-16T17:14:09.686688",
  "date_updated": "2022-05-16T17:14:09.686688",
  "date_settled": "2022-05-16T17:14:09.686688",
  "transfer_id": "4ead6cdc-77eb-45fa-9959-3f166385a60a",
  "transaction_id": "0fec1e58-b197-4052-99cf-2218496c5482",
  "origination_account_id": "f64eadeb-5398-46f7-b1a1-9a0a709039a9",
  "destination_account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f",
  "description": "eline funding",
  "amount": 25000,
  "ach": {
    "ach_class_code": "WEB",
    "same_day": false,
    "ach_return_code": "R73",
    "failure_reason": null
  }
}

Note that ACH timelines typically include time both for transactions to be processed and to be considered settled before the funds are made available.

For more information, see ACH transfers.

Making a direct deposit

Information on the security deposit account can be retrieved using the Get account endpoint.

An example of such a request for Eline is shown below.

curl --request GET \
     --url https://api.bond.tech/api/v0.1/accounts/173121d8-f05e-4bb6-b280-b5b761d2214f \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Identity: YOUR-IDENTITY'

An example of a successful response to a security deposit account information request is shown below.

{
  "account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f",
  "date_updated": "2022-05-16T19:39:34Z",
  "date_created": "2022-05-16T19:39:34Z",
  "program_id": "YOUR-PROGRAM-ID",
  "customer_id": "3a43b612-825c-48d4-b025-47083ab10755",
  "type": "security_deposit",
  "status": "active",
  "description": "string",
  "routing_number": 547897762,
  "account_number": 574771265,
  "balance": {
    "current_balance": 25600,
    "ledger_balance": 21300,
    "currency": "USD"
  },
  "security_deposit": {
    "credit_account": "e913d434-bda9-494e-b6df-adf46a52c1cc"
  }
}

We use the routing_number value 547897762 and account_number value 574771265 to receive ACH transfers originated from other financial institutions, such as from payroll via direct deposit.

🚧

Sandbox limitations

Note that in the sandbox, the routing_number and account_number values are not real and will not be accessible via direct deposit.

Note again that ACH timelines typically include time both for transactions to be processed and to be considered settled before the funds are made available.

For more information, see ACH transfers.

5. Creating the secured charge card

The status of an application can be actively monitored using the Get credit application API or passively received using the credit.application.approved webhook event. Once Eline's application_status is approved, we can issue a secured charge card. Secured charge cards are issued using our Create a card API.

Creation of a card not only creates the card, but also creates an associated credit account.

An example of a secured charge card creation request is shown below.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/cards \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '
{
     "account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f"
}
'

Note that we pass the security_deposit_account_id value in the request account_id field. This allows us to link the card with the security deposit account.

An example of a successful card creation request is shown below.

{
  "card_id": "057c6074-a02d-4a5a-bad9-bbc64b047df7",
  "customer_id": "3a43b612-825c-48d4-b025-47083ab10755",
  "account_id": "e913d434-bda9-494e-b6df-adf46a52c1cc",
  "card_number": "tok_live_1dJbCBY9ucg8MohvYy7HyA",
  "cvv": "tok_live_6dSxybBYBXbFq6KLzc2kW9",
  "expiry_date": "tok_live_1dJbCXY1tcg4MohvYy7SyZ",
  "last_four": "6270",
  "status": "active",
  "card_design_id": null
}

We want to note the card_id value 057c6074-a02d-4a5a-bad9-bbc64b047df7 and the credit account_id value e913d434-bda9-494e-b6df-adf46a52c1cc for future use.

Making a repayment

  1. Generate a statement
  2. Initialize payment

Generating a statement

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 more information, see Statements guide.

Initializing a payment

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

Paying from a security deposit account

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

An example of a transfer initialization request is shown below.

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 the security_deposit_account_id value 173121d8-f05e-4bb6-b280-b5b761d2214f as our origination_account_id, and the credit_account_id value e913d434-bda9-494e-b6df-adf46a52c1cc as our destination_account_id to indicate that the funds should move from security_deposit_account_id to the credit_account_id.

An example of a successful response is shown below.

{
  "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.

An example of a transfer initialization request is shown below.

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 the external_account_id value f64eadeb-5398-46f7-b1a1-9a0a709039a9 as our origination_account_id, and the credit_account_id value e913d434-bda9-494e-b6df-adf46a52c1cc as our destination_account_id in order to indicate that the funds should move from the external_account_id to the credit_account_id.

An example of a successful response is shown below.

{
  "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
  }
}

Closing a secured charge card

To be able to close a secured charge card you need to perform the following operations:

  1. Change the card to inactive status
  2. Execute final repayment cycle
  3. Close credit account
  4. Refund security deposit account balance
  5. Close security deposit account

Changing the card to Inactive status

To close Eline's card, we need to ensure that no further transactions occur on the card. This is done by changing the card status to inactive using our Update Card endpoint.

An example of a card status update request is shown below.

curl --request PATCH \
     --url https://api.bond.tech/api/v0.1/cards/057c6074-a02d-4a5a-bad9-bbc64b047df7 \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Content-Type: application/json' \
     --header 'Identity: YOUR-IDENTITY' \
     --data '{"status": "inactive"}'

Note that we pass the card_Id value 057c6074-a02d-4a5a-bad9-bbc64b047df7 as a path variable in the request.

An example of a successful response is shown below.

{
  "card_id": "057c6074-a02d-4a5a-bad9-bbc64b047df7",
  "customer_id": "3a43b612-825c-48d4-b025-47083ab10755",
  "account_id": "173121d8-f05e-4bb6-b280-b5b761d2214f",
  "card_number": "tok_live_283734",
  "cvv": "tok_live_p923u34",
  "expiry_date": "0331",
  "last_four": "6270",
  "status": "inactive",
  "card_design_id": null
}

Executing the final repayment cycle

Now that the card has been made inactive, one final repayment cycle must be executed to bring the balance of the secured charge card to zero. This includes issuing a statement and making a cardholder payment, either through the security deposit account or through an externally linked bank account.

Closing the credit account

After the last repayment cycle has settled successfully, the secured charge card credit account is now ready to be closed. This is done using our Close an account endpoint.

An example of a request to close Eline's credit account is provided below.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/accounts/e913d434-bda9-494e-b6df-adf46a52c1cc/close \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Identity: YOUR-IDENTITY'

Note that we provided Eline's credit_account_id value e913d434-bda9-494e-b6df-adf46a52c1cc as a path variable in this request.

🚧

Credit account balance must be zero

If the credit account balance is not zero, attempts to close the account will be unsuccessful.

Refunding a security deposit account balance

Refunding the security deposit account balance is done in a similar way to funding the security deposit account. The key difference is that the security_deposit_account_id is now the origination_account_id and the external_account_id is now the destination_account_id.

Again, ACH timelines typically include time both for transactions to be processed and to be considered settled before the funds are made available.

For more information, see ACH transfers.

Closing the security deposit account

After the refunding of the security deposit account has settled successfully, we can close the security deposit account. This is done using our Close an account endpoint.

An example of a request to close Eline's security deposit account is shown below.

curl --request POST \
     --url https://api.bond.tech/api/v0.1/accounts/173121d8-f05e-4bb6-b280-b5b761d2214f/close \
     --header 'Accept: application/json' \
     --header 'Authorization: YOUR-AUTHORIZATION' \
     --header 'Identity: YOUR-IDENTITY'

Note that we provide Eline's security_deposit_account_id value 173121d8-f05e-4bb6-b280-b5b761d2214f as a path variable.

🚧

Security account balance must be zero

If the security deposit account balance is not zero, then attempts to close the account will be unsuccessful.


Did this page help you?