Quick Start

This guide teaches you how to:

  • Create cardholders
  • Fund cardholders' accounts
  • Simulate card transactions
  • Check transaction history and account balance

Before you get started

  • You must have an environment set up to send HTTP requests, such as Postman, cURL, or a script. Click the button below to download our Postman collection.

Run in PostmanRun in Postman

  • You must create a new product using the Dashboard.
  • You must obtain API keys from the Dashboard.


There are two environments: Sandbox and Production. Sandbox is a test environment that simulates the Production environment without dealing with real money or sensitive personal data.

This guide assumes you're using Sandbox. When you have received approval to start validating your program in Production, simply swap out the URL and API keys.



Step 1: Authenticate

Your first step is to exchange your API keys for an access token.

Send a POST request to the /login endpoint , passing in the username and password, which can be found in your API key file. A successful response includes an access_token.

All subsequent API requests require an Authorization header with the value "Bearer {{access-token}}"

Step 2: Create a cardholder

Now that you have an access token, you're ready to create your first cardholder.

In Production, you first need to collect the cardholder's personal information and have the cardholder accept the Cardholder Agreements. The cardholder information and the agreement_id of each accepted agreement are required in the request body to create a cardholder. In Sandbox, faux cardholder information may be used with a couple of exceptions, e.g. the zip code must match the specified state and the agreement_ids must match the agreements associated with your product.

You can obtain the agreements by sending a GET request to the /businesses/:id/products/:id/agreements endpoint . The business_id path parameter can be found in the Dashboard by clicking "Settings" > "Account Information." The product_id path parameter is the product ID of the product you created in the Dashboard.

Next, create the cardholder by sending a POST request to the /cardholders endpoint with the following arguments in the request body:

  • product_id: The product ID from your product.
  • cardholder: A dictionary with cardholder information. This information may be fictional while in Sandbox but must be legitimate in Production to pass Customer Identification Program (CIP) requirements.

If the request is successful, the response includes the new cardholder's cardholder_id. Save this value, as you will use it frequently.


More about cardholders

When you create a new cardholder, an associated account and an associated card are created.

In Production, the new card is embossed and shipped to the cardholder; in Sandbox, the card is an instantly available virtual card.

Step 3: Get the cardholder's account

In Galileo's object hierarchy, a cardholder has accounts, and an account has transactions and cards.

You can get a list of the cardholder's accounts (there should only be one right now) by sending a GET request to the cardholder/:id/accounts endpoint. Use the cardholder_id obtained in Step 2 above for the path parameter.

A successful response includes an account_id, Galileo's unique identifier for the account.

Step 4: Fund the account

The next step is to put money on the new account.

Your Master Funds Account, accessible from the Dashboard, may be used to fund the new account. Send a POST request to the /transfers endpoint with the following arguments to fund your cardholder's account with $100:

  • amount: 100
  • destination_account_id: The account_id obtained in Step 3 above.
  • source_account_id: The ID of the Master Funds Account found in the Dashboard when you click "View Account Details" in the Master Funds Account section.

Step 5: Check the account balance

Let's verify that the money made it to the cardholder's account.

You may check the balance of the account by repeating Step 3 above, or by sending a GET request to the /cardholders/:id/accounts/:id endpoint, including the cardholder_id and account_id, respectively, as path parameters

If your request is successful, you should see that the account now has a balance of 100.

Step 6: Simulate a card transaction

Now that there is money on the account, we can make a purchase.

In Production, a card authorization (i.e., pending card transaction) occurs when the card associated with an account is used to make a purchase from a merchant. In Sandbox (which uses virtual cards and faux money), you can only simulate card authorizations.

Simulate an authorization by sending a POST request to the /cardholders/:id/accounts/:id/transactions endpoint with the appropriate path parameters and the following arguments in the request body:

  • amount: The purchase amount, e.g., 10.
  • merchant_name: The name of the merchant, e.g., "Chipotle."

Step 7: View transaction history

Your recent purchase is now available in the Transaction History (allow a couple seconds for processing).

To view the record of this simulated authorization along with the full transaction history for this account, send a GET request to the /cardholders/:id/accounts/:id/transactions endpoint with the appropriate path parameters.

If the response is successful, it contains a paginated list of all transactions for the account. In the list, you should see the $100 transfer from the Master Funds Account as well as the $10 authorization at Chipotle.

Did this page help you?