curl --request GET \
--url https://dev.sbx.imprint.co/v2/customers/{customer_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://dev.sbx.imprint.co/v2/customers/{customer_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}', 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}",
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}"
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}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/customers/{customer_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{
"id": "9B5E1EE0-2E1C-46E7-81B9-3C3917204BE4",
"email": "customer@example.com",
"phone": "+14155552671",
"statuses": {
"Card Program Name": "OPEN"
},
"first_name": "John",
"last_name": "Doe",
"preferred_language": "en",
"ssn4": "1234",
"date_of_birth": {
"year": 1990,
"month": 1,
"day": 1
},
"address": {
"street_line1": "123 Main St",
"street_line2": "Apt 4B",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "USA"
},
"partner_customer_id": "PARTNER_USER_456",
"metadata": {
"preferred_language": "en"
},
"created_at": "2025-02-13T19:08:07.000Z",
"updated_at": "2025-02-13T19:08:07.000Z",
"authorized_users": [
{
"authorized_user_id": "A1B2C3D4-5566-7788-99AA-BBCCDDEEFF00",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@email.com",
"phone": "+15551234567",
"date_of_birth": {
"year": 1990,
"month": 1,
"day": 1
},
"postal_code": "60601",
"payment_method_id": "DCBFC736-2286-42DD-897D-160DCA80AED3",
"status": "active"
}
]
}{
"type": "CUSTOMER_NOT_FOUND_ERROR",
"message": "Customer not found for provided ID: CSMR-v1-123",
"param": "customer_id"
}Retrieve a customer
Retrieves the details of an existing customer by ID
Optional scope: AUTHORIZED_USER_READ. Without it the request still succeeds, but authorized_users is omitted from the response.
curl --request GET \
--url https://dev.sbx.imprint.co/v2/customers/{customer_id} \
--header 'Authorization: Basic <encoded-value>'import requests
url = "https://dev.sbx.imprint.co/v2/customers/{customer_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}', 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}",
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}"
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}")
.header("Authorization", "Basic <encoded-value>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dev.sbx.imprint.co/v2/customers/{customer_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{
"id": "9B5E1EE0-2E1C-46E7-81B9-3C3917204BE4",
"email": "customer@example.com",
"phone": "+14155552671",
"statuses": {
"Card Program Name": "OPEN"
},
"first_name": "John",
"last_name": "Doe",
"preferred_language": "en",
"ssn4": "1234",
"date_of_birth": {
"year": 1990,
"month": 1,
"day": 1
},
"address": {
"street_line1": "123 Main St",
"street_line2": "Apt 4B",
"city": "San Francisco",
"state": "CA",
"postal_code": "94105",
"country": "USA"
},
"partner_customer_id": "PARTNER_USER_456",
"metadata": {
"preferred_language": "en"
},
"created_at": "2025-02-13T19:08:07.000Z",
"updated_at": "2025-02-13T19:08:07.000Z",
"authorized_users": [
{
"authorized_user_id": "A1B2C3D4-5566-7788-99AA-BBCCDDEEFF00",
"first_name": "Jane",
"last_name": "Doe",
"email": "jane.doe@email.com",
"phone": "+15551234567",
"date_of_birth": {
"year": 1990,
"month": 1,
"day": 1
},
"postal_code": "60601",
"payment_method_id": "DCBFC736-2286-42DD-897D-160DCA80AED3",
"status": "active"
}
]
}{
"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 customer
"BBB815E9-F654-438D-9AD3-3F7BB8136FC0"
Response
Customer retrieved successfully
Represents a customer in the Imprint system
Unique identifier for the customer
"9B5E1EE0-2E1C-46E7-81B9-3C3917204BE4"
Customer's email address
"customer@example.com"
Customer's phone number in E.164 format
"+14155552671"
Map of the customer's enrolled card program name to the customer's status.
Show child attributes
Show child attributes
{ "Card Program Name": "OPEN" }
The customer's first name.
"John"
The customer's last name.
"Doe"
Customer's preferred language code as defined by ISO 639-1
"en"
Customer's Social Security Number in 4 digits
"1234"
Customer's date of birth
Show child attributes
Show child attributes
Mailing address information
Show child attributes
Show child attributes
The unique identifier for the customer in the partner's system.
Compared byte-for-byte, so PARTNER_USER_456 and partner_user_456 are
two different customers. Send the same casing everywhere or a later
lookup silently returns no match.
Restricted to printable ASCII (\x20–\x7E) rather than arbitrary
UTF-8: the value is propagated between internal services as an HTTP/2
header, which cannot carry non-ASCII bytes. The bound is published
rather than discovered.
1 - 128^[\x20-\x7E]+$"PARTNER_USER_456"
Set of key-value pairs for storing additional information about the customer.
{ "preferred_language": "en" }
the RFC-3339 date when the customer was created
"2025-02-13T19:08:07.000Z"
the RFC-3339 date when the customer was created
"2025-02-13T19:08:07.000Z"
The authorized users on this customer's account for the requesting partner's card program. Authorized users share the primary cardholder's customer record, so they are returned here rather than as separate customers. Requires the AUTHORIZED_USER_READ scope; omitted entirely when the API key does not hold it.
Only returned by Retrieve Customer. The Search Customers endpoints share this schema but never populate this field.
The array is historical, not current: every authorized user ever added to the account is included, and those no longer on it carry status: inactive. Filter on status to get only the authorized users who can currently transact.
Show child attributes
Show child attributes