Accounts

An account represents a customer or payer in the Shuttle system. Every transaction, contract, and payment is linked to an account.

CRM Key

The crm_key is the most important field on an account — it's your identifier for the customer. Whether you're a platform or a merchant, the CRM key ties Shuttle's account back to the customer record in your system. When creating payments or checkouts, you can pass a crm_key instead of a Shuttle account ID, and Shuttle will find or create the account automatically.

How Accounts Are Created

Accounts are created in one of three ways:

  1. Directly via this API: POST /accounts with customer details
  2. Automatically during checkout: when a customer completes a hosted checkout, an account is created from the details they provide
  3. Automatically when creating a payment: pass an account object in your payment request and the account will be created inline

If an account with the same crm_key already exists, it will be reused rather than duplicated.

Pre-filling Checkout

Account details (name, email, phone, address) are used to pre-fill the checkout experience. If you pass these when creating a checkout or payment, the customer won't need to re-enter them. This is particularly useful for returning customers or when you already have their details from your own system.

Address Handling

Address fields are intentionally permissive — any values are accepted to prevent interrupting payments due to address validation. Your application can implement its own validation if needed. When updating an address, the entire address object is replaced.