Skip to main content

Creating users

Mobile API

Creating users with the Mobile API is explained in depth in the corresponding section of the getting started guide. Take in account that in that guide the example API calls are made against the sandbox environment. In case you're targeting production, make sure you point your API calls to the right URL:


Core API


Only Blue or Orange Programs have permissions to create cardholders through the API. In the Green Program, cards are issued through the Mobile API. To learn more about the differences between Blue or Orange Programs and Green Program.

Creating users with the Core API is done in a single request. The request returns the cardholder data and the cardholder’s KYC status. This is in contrast to the Mobile API, which requires that you first authenticate the applicant using 2FA to secure a session token before proceeding.

To create a cardholder in the Core API, submit a POST request to the /cardholders endpoint with cardholder data. For example:

curl --location --request POST '' \
--header 'Authorization: Basic {CORE_API_KEY}' \
--header 'Content-Type: application/json' \
--data-raw '{
"first_name": "Josh",
"last_name": "Wilson",
"email": "",
"phone_number": "+16508881111",
"date_of_birth": "1982-06-20",
"address": {
"street_one": "1800 Gates Ave",
"street_two": "2L",
"locality": "Ridgewood",
"region": "NY",
"postal_code": "11385",
"country": "USA"
"document": {
"type": "ssn",
"value": "490940000"

The response to this request includes the cardholder state, cardholder data, card type, and card state.


When creating a user, the Core API automatically creates a new debit card an assigns it to the user.

"cardholder": {
"id": "crdhldr_1cd68f70917cb5ed",
"email": "",
"kyc_passed_at": "2016-10-19T23:20:21.034Z",
"kyc_status": "PASSED",
// ...
"first_name": "Josh",
"last_name": "Wilson",
"phone": 6157915911,
"cards": [
"card": {
"id": "crd_fde2d61d233455b9",
"program_id": "Apto_GPR",
"design_key": "blue",
"devices": [
"name": "Wilson*s iPhone",
"type": "iPhone",
"status": "ACTIVE"
"last_four": "5542",
"status": "CREATED",
"dda_number": "9990000267938",
"aba_routing_number": "121182810"
// ...
"created_at": "2016-10-19T23:20:17.000Z"

When you create a cardholder via the Core API in Sandbox, Apt does the following:

  • onboard a fictional cardholder with an Approved KYC status
  • creates a fictional cardholder bank account as the funding source
  • creates a debit card associated with the cardholder bank account


To create users through our Mobile SDKs refer to the corresponding sections on their docs:

Demo App

The fastest way to create a test cardholder in sandbox is with our demonstration app.

This is a compiled version of the mobile SDK that implements a generic UI/UX and that is tied to your sandbox environment.

When in sandbox, none of the cardholder information you provide has to be accurate. However, if you are using the demonstration app, you must enter a valid phone number in order to receive the link to download the TestFlight demo app.

To trial the demonstration app:

  1. Select Developers in the navigation menu.
  2. Select the SDKs tab.
  3. Select Get link.
  4. Enter a valid U.S. mobile phone number to deliver your download links to.
    • Each text message will include a link to download an iOS version from TestFlight or to download an Android version from the Google Play Developer Console. This link is specific to your card program. If you want to invite other team members to create test cardholders, enter their phone numbers to have the link sent to them.
  5. Install and open the app, click the Get Started button, and follow the cardholder onboarding experience.