curl --request GET \
--url https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"customer_id": "2EE24580-B97B-4949-A65C-929CCB9B9B8D",
"account_id": "7C1F9A34-2D6B-4E58-8A03-B15E7D9C4620",
"status": "OPEN",
"as_of": "2026-08-27T14:22:31Z",
"currency": "USD",
"credit_limit": 123,
"available_credit": 123,
"current_balance": 123,
"overdue_amount": 123,
"statement_due_date": "2026-06-15T00:00:00Z",
"apr_percentage": 24.99
}{
"error": {
"type": "BAD_REQUEST_ERROR",
"message": "unsupported reward_type: INVALID, must be STATEMENT or DELAYED"
}
}{
"type": "CUSTOMER_NOT_FOUND_ERROR",
"message": "Customer not found for provided ID: CSMR-v1-123",
"param": "customer_id"
}Get customer's account
Returns the servicing snapshot for one of a customer’s card accounts: account status, credit limit and available credit, the amounts they owe, the statement due date, and the APR.
Every amount is a positive integer in the smallest currency unit and
represents what the customer owes. A customer who owes nothing — or who
is in credit — reads as 0 rather than a negative number.
Per-statement figures — the statement balance, the minimum due, and interest — are not on this response. Read them from the statements API.
as_of is when the snapshot was calculated, which is when the request
was served. It is the instant the figures were true, and what a cached
copy should be labelled with.
Required scope: ACCOUNT_READ
curl --request GET \
--url https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}"
headers = {"Authorization": "Basic <encoded-value>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Basic <encoded-value>'}};
fetch('https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Basic <encoded-value>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/customers/{customer_id}/accounts/{account_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Basic <encoded-value>'
response = http.request(request)
puts response.read_body{
"customer_id": "2EE24580-B97B-4949-A65C-929CCB9B9B8D",
"account_id": "7C1F9A34-2D6B-4E58-8A03-B15E7D9C4620",
"status": "OPEN",
"as_of": "2026-08-27T14:22:31Z",
"currency": "USD",
"credit_limit": 123,
"available_credit": 123,
"current_balance": 123,
"overdue_amount": 123,
"statement_due_date": "2026-06-15T00:00:00Z",
"apr_percentage": 24.99
}{
"error": {
"type": "BAD_REQUEST_ERROR",
"message": "unsupported reward_type: INVALID, must be STATEMENT or DELAYED"
}
}{
"type": "CUSTOMER_NOT_FOUND_ERROR",
"message": "Customer not found for provided ID: CSMR-v1-123",
"param": "customer_id"
}Authorizations
Basic HTTP authentication. Allowed headers-- Authorization: Basic <base64(api_key_id:api_key_secret)>
Path Parameters
The unique identifier for the Imprint customer
"2EE24580-B97B-4949-A65C-929CCB9B9B8D"
The unique identifier for the account, as returned by list accounts
"7C1F9A34-2D6B-4E58-8A03-B15E7D9C4620"
Response
Customer account
A customer's card account as of now. Amounts are integers in the
smallest currency unit and are always positive: they say what the
customer owes, so a paid-off or in-credit account reads as 0.
Per-statement figures live in the statements API, not here.
The unique identifier for the customer
"2EE24580-B97B-4949-A65C-929CCB9B9B8D"
The unique identifier for the account
"7C1F9A34-2D6B-4E58-8A03-B15E7D9C4620"
The lifecycle state of a customer's card account. INACTIVE is an
approved account whose card has not been activated yet.
OPEN, INACTIVE, CLOSED, REVOKED, CHARGE_OFF, SOLD "OPEN"
RFC-3339 timestamp of when this snapshot was calculated, which is when the request was served. Balances move continuously — a purchase or a payment lands between one read and the next — so this is the instant the figures above were true. Use it to label or expire a cached copy, and to order two reads of the same account.
"2026-08-27T14:22:31Z"
The 3-character currency code of the amount in ISO 4217 format (e.g., "USD")
"USD"
Amount in the smallest currency unit (e.g., cents for USD)
Amount in the smallest currency unit (e.g., cents for USD)
Everything posted to the account, including activity since the last statement closed.
The amount past due — a minimum payment that was not made by its due
date and is still outstanding. Unlike the minimum due, this moves
during the cycle: a payment brings it down. 0 on an account that is
current.
RFC-3339 timestamp when payment for the most recently closed statement is due. Absent on an account still in its first billing cycle, which has no closed statement yet.
"2026-06-15T00:00:00Z"
The purchase APR as a percentage
24.99