List Customers
curl --request GET \
--url https://api.spherepay.co/v2/customer \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/customer"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/customer', 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://api.spherepay.co/v2/customer",
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: Bearer <token>"
],
]);
$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://api.spherepay.co/v2/customer"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spherepay.co/v2/customer")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/customer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"customers": [
{
"createdAt": "2026-03-09T20:46:31.305Z",
"enabledVerificationProfiles": [
"a",
"c"
],
"id": "customer_f31121c389624d3697cbf3ea8830b7a4",
"tosStatus": "incomplete",
"type": "individual",
"updatedAt": "2026-03-09T20:46:31.305Z",
"verificationProfiles": [
{
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number"
],
"errors": [],
"pending": [],
"required": [
"identity_document",
"liveness_report_document"
]
},
"name": "kyc_profile_a",
"status": "incomplete"
}
],
"dateOfBirth": "1990-01-15",
"email": "jane.smith@example.com",
"firstName": "Jane",
"lastName": "Smith",
"meta": {},
"personalInformation": {
"accountPurpose": "<string>",
"accountPurposeDescription": "<string>",
"actingAsIntermediary": false,
"countryOfBirth": "USA",
"employmentStatus": "<string>",
"expectedMonthlyPayments": "<string>",
"gender": "<string>",
"middleName": "James",
"nationality": "USA",
"occupationSocCode": "151252",
"residencyCountry": "USA",
"sourceOfFunds": "<string>",
"stateOfBirth": "JAL",
"taxIdentificationNumberCountry": "USA",
"taxIdentificationNumberDescription": "<string>",
"taxIdentificationNumberType": "ssn"
},
"phone": "+14155550123",
"statusDetails": {
"message": "Please re-upload a clear photo of the front and back of the director's ID and correct the tax ID number.",
"reasons": [
{
"externalReason": "Cannot validate ID — upload a photo of the ID that is clear",
"reasonCode": "poor_image_quality",
"verificationProfiles": [
"kyb_profile_a"
]
},
{
"externalReason": "The tax identification number is not in a valid format for the selected country and ID type.",
"reasonCode": "invalid_tax_identification_number",
"verificationProfiles": [
"kyb_profile_a"
]
}
],
"updatedAt": "2026-07-16T21:04:00Z"
}
}
],
"pagination": {
"hasNext": false,
"hasPrevious": false,
"limit": 10,
"page": 1,
"total": 1,
"totalPages": 1
}
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}Clientes
Listar Clientes con Filtros y Paginación
List customers with optional server-side search, filters, and sort.
List Customers
curl --request GET \
--url https://api.spherepay.co/v2/customer \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.spherepay.co/v2/customer"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.spherepay.co/v2/customer', 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://api.spherepay.co/v2/customer",
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: Bearer <token>"
],
]);
$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://api.spherepay.co/v2/customer"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.spherepay.co/v2/customer")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.spherepay.co/v2/customer")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"customers": [
{
"createdAt": "2026-03-09T20:46:31.305Z",
"enabledVerificationProfiles": [
"a",
"c"
],
"id": "customer_f31121c389624d3697cbf3ea8830b7a4",
"tosStatus": "incomplete",
"type": "individual",
"updatedAt": "2026-03-09T20:46:31.305Z",
"verificationProfiles": [
{
"criteria": {
"complete": [
"email_address",
"phone_number",
"residential_address",
"tax_identification_number"
],
"errors": [],
"pending": [],
"required": [
"identity_document",
"liveness_report_document"
]
},
"name": "kyc_profile_a",
"status": "incomplete"
}
],
"dateOfBirth": "1990-01-15",
"email": "jane.smith@example.com",
"firstName": "Jane",
"lastName": "Smith",
"meta": {},
"personalInformation": {
"accountPurpose": "<string>",
"accountPurposeDescription": "<string>",
"actingAsIntermediary": false,
"countryOfBirth": "USA",
"employmentStatus": "<string>",
"expectedMonthlyPayments": "<string>",
"gender": "<string>",
"middleName": "James",
"nationality": "USA",
"occupationSocCode": "151252",
"residencyCountry": "USA",
"sourceOfFunds": "<string>",
"stateOfBirth": "JAL",
"taxIdentificationNumberCountry": "USA",
"taxIdentificationNumberDescription": "<string>",
"taxIdentificationNumberType": "ssn"
},
"phone": "+14155550123",
"statusDetails": {
"message": "Please re-upload a clear photo of the front and back of the director's ID and correct the tax ID number.",
"reasons": [
{
"externalReason": "Cannot validate ID — upload a photo of the ID that is clear",
"reasonCode": "poor_image_quality",
"verificationProfiles": [
"kyb_profile_a"
]
},
{
"externalReason": "The tax identification number is not in a valid format for the selected country and ID type.",
"reasonCode": "invalid_tax_identification_number",
"verificationProfiles": [
"kyb_profile_a"
]
}
],
"updatedAt": "2026-07-16T21:04:00Z"
}
}
],
"pagination": {
"hasNext": false,
"hasPrevious": false,
"limit": 10,
"page": 1,
"total": 1,
"totalPages": 1
}
}{
"code": "address/invalid",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Invalid request parameters",
"status": 400
}{
"code": "resource/not-found",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Resource not found",
"status": 404
}{
"code": "validation/failed",
"correlationId": "28c61e885c6e5eaa78c1a2183a9b883c",
"detail": "Validation failed",
"errors": [
{
"detail": "Invalid email format",
"pointer": "/email"
},
{
"detail": "Name is required",
"pointer": "/name"
}
],
"status": 422
}Usa este endpoint para recuperar todos los clientes asociados a tu cuenta de SpherePay. Los resultados se devuelven en páginas, y puedes filtrar por estado o tipo de cliente para limitar la lista. Cada elemento en la respuesta incluye el perfil de verificación del cliente, para que puedas identificar rápidamente qué clientes están listos para transferencias.
Autorizaciones
Última modificación el 22 de junio de 2026