Business Expense Cards

This guide will show how to set up business expense cards in Synctera's platform. In this guide we will create a business expense account which will fund card purchases made by the business's employees, subject to spending limits. The purpose of this guide is to give an overview of how the various entities in Synctera's platform work together to be able to handle this type of use case.

Prerequisites

Before continuing in this guide you will also need a card product set up using a commercial BIN. We will refer to its UUID as {{card_product_id}}.

Please also have a business created and fully verified such that is has a verification_status of "ACCEPTED". We will refer to the UUID of this business as {{business_id}}.

You will also need one or more persons in the system that have been verified and passed KYC. This means they must have a kyc_status of "ACCEPTED". We will refer to their UUIDs as {{employee1_id}}, {{employee2_id}}, etc. Refer to the KYC Verification API Overview for the process to get your customers verified.

Business expense account

Create an account template by performing a POST /v0/accounts/templates with the following request body.

{
  "name": "business expense accounts",
  "is_enabled": true,
  "template": {
    "account_type": "CHECKING",
    "bank_country": "US",
    "currency": "USD",
    "is_ach_enabled": false,
    "is_card_enabled": false,
    "is_p2p_enabled": true
  }
}

Note that cards are not enabled for accounts created using this template but the accounts can be funded via P2P transactions (money movement within Synctera's platform).

The request should return a new account template. We will refer to this template's UUID as {{business_account_template_id}}.

Using this new template, create a new account by performing a POST /v0/accounts with the following request body.

{
  "account_template_id": "{{business_account_template_id}}",
  "relationships": [
    {
      "relationship_type": "ACCOUNT_HOLDER",
      "business_id": "{{business_id}}"
    }
  ]
}

We will refer to this new account's UUID as {{business_account_id}}. Because we disabled cards in the account template, we can not issue cards for this account directly. The cards will be issued against the employee expense accounts which will in turn be connected to this account.

Employee expense accounts

Create another account template by performing a POST /v0/accounts with the following request body.

{
  "is_enabled": true,
  "name": "employee spending accounts",
  "template": {
    "account_type": "CHECKING",
    "bank_country": "US",
    "currency": "USD",
    "balance_floor": {
      "balance": 0,
      "overdraft_account_id": "{{business_account_id}}"
    },
    "balance_ceiling": {
      "balance": 0,
      "overflow_account_id": "{{business_account_id}}"
    },
    "is_ach_enabled": false,
    "is_card_enabled": true,
    "is_p2p_enabled": false,
    "spending_limits": {
      "description": "maximum $1000 per month",
      "month": {
        "amount": 100000
      }
    }
  }
}

This request includes spending limits. For this example the employees are limited to spending $1000 per month.

This request also includes balance floor and balance ceiling objects. The balance floor is zero and the overdraft_account_id refers to the business account we created earlier. This means that for any account created using this template, the business account will provide real-time funding in order to keep the account's balance at or above zero. Similarly, the balance ceiling is also zero and the overflow_account_id also refers to the business account we created earlier. This means that for any account using this template, the business account will receive funds flowing in to the account in order to keep the account's balance at or below zero. In other words, accounts created using this template never hold a balance and card transactions on these accounts effectively move money to and from the business account. The accounts are still limited by their individual spending limits of $1000 per month.

Note that the only payment rail enabled for this account template is cards.

The request should return a new account template. We will refer to this template's UUID as {{employee_account_template_id}}.

With this template we can now create accounts for all the business's employees by performing a POST /v0/accounts with the following request body.

{
  "account_template_id": "{{employee_account_template_id}}",
  "relationships": [
    {
      "relationship_type": "ACCOUNT_HOLDER",
      "customer_id": "{{employee1_id}}"
    }
  ]
}

This will create a new account. We will refer to the new account's ID as {{employee1_account_id}}. Repeat this request using {{employee2_id}} to create {{employee2_account_id}}, then using {{employee3_id}} to create {{employee3_account_id}}, etc.

Employee cards

Create a card for each employee by performing a POST /v0/cards with the following request body. This assumes your card product is for physical cards. For virtual cards replace "PHYSICAL" with "VIRTUAL".

{
  "form": "PHYSICAL",
  "account_id": "{{employee1_account_id}}",
  "card_product_id": "{{card_product_id}}",
  "customer_id": "{{employee1_id}}",
  "type": "DEBIT"
}

Then repeat this request to create cards for the other employees and their accounts.

Transactions

Experiment with the employee cards by doing some simulated card transactions. Card transaction authorizations will automatically create "JIT funding" transactions between the business account and the respective employee accounts. For example, a $10 authorization for employee 1's card will decrease the balance of the business account by $10 and increase the ledger balance of employee 1's account by $10. This $10 will be placed on hold so the available balance of employee 1's account remains zero. If this authorization is reversed the $10 automatically moves back into the business account. Card transactions will appear in the employee account transaction histories. There will be corresponding "JIT funding" transactions that appear in the employee accounts and the business accounts.

The monthly limit applies to each employee independently. Any attempt to authorize a transaction over the limit will be only partially authorized (up to the amount which would exceed the limit).


Did this page help you?