API de Clientes
A API de Clientes é uma ferramenta que permite às empresas gerenciar e recuperar informações de clientes de forma segura e eficiente. Com esta API, as empresas podem integrar funcionalidades de gestão de clientes em seus sites, aplicações e outras soluções de software.
Ela oferece suporte a recursos como paginação, busca por nome ou e-mail e informações detalhadas do cliente, incluindo nome, e-mail, telefone, foto, país e metadados personalizados.
Obter uma lista de todos os clientes¶
Endpoint
GET /v1/customers/
Este endpoint recupera uma lista paginada de todos os clientes da sua conta. Por padrão, ele retorna 10 clientes por página.
Parâmetros de Consulta (Query Parameters):
| Parâmetro | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| page | O número da página a ser recuperada | integer | false |
| page_size | O número de clientes a serem exibidos por página (máx. 100) | integer | false |
| search | Buscar por first_name (nome) ou email | string | false |
Solicitação (Listar Todos os Clientes):
Solicitação (Com Paginação):
curl -X GET 'https://api.4geeks.io/v1/customers/?page=2&page_size=5' \
-u 'sk_test_51O62xYzAbcDef123:'
Solicitação (Buscar por Nome ou E-mail):
Resposta (200 OK):
{
"count": 38,
"next": "https://api.4geeks.io/v1/customers/?page=3",
"previous": "https://api.4geeks.io/v1/customers/",
"results": [
{
"id": "217866f3-e1c2-465c-a242-1c04e30ba3fa",
"developer": 2875,
"first_name": "test",
"last_name": "test",
"email": "shadya.mora+401@4geeks.io",
"phone": null,
"photo": "https://seccdn.libravatar.org/avatar/d33b74df677623a5cc2bc9ea26d528fc?d=monsterid",
"country": null,
"metadata": null,
"test": true
},
{
"id": "3048a540-e825-4ccf-a693-fc4771c5f216",
"developer": 2875,
"first_name": "panchos",
"last_name": "Cruz",
"email": "marco.cruz+24@4geeks.io",
"phone": null,
"photo": "https://seccdn.libravatar.org/avatar/79a1c28ca1ef7df0e2b80c4eb4367cbf?d=monsterid",
"country": "Costa Rica",
"metadata": null,
"test": true
}
]
}
Obter um cliente específico¶
Endpoint
GET /v1/customers/{id}/
Este endpoint recupera os detalhes completos de um cliente específico através do seu ID único.
Parâmetros de Caminho (Path Parameters):
| Parâmetro | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| id | O identificador único de um cliente | string | true |
Solicitação:
curl -X GET 'https://api.4geeks.io/v1/customers/03124bfa-a8gd-4e63-823f-90540b9akcff/' \
-u 'sk_test_51O62xYzAbcDef123:'
Resposta (200 OK):
{
"id": "217866f3-e1c2-465c-a242-1c04e30ba3fa",
"developer": 2875,
"first_name": "test",
"last_name": "test",
"email": "shadya.mora+401@4geeks.io",
"phone": "+50683236988",
"photo": "https://seccdn.libravatar.org/avatar/d33b74df677623a5cc2bc9ea26d528fc?d=monsterid",
"country": "Costa Rica",
"metadata": null,
"test": true
}
Buscar clientes¶
Endpoint
GET /v1/customers/?search={query}
Este endpoint recupera uma lista de clientes que correspondem a uma consulta de busca. As buscas são realizadas nos campos first_name e email.
Parâmetros de Consulta (Query Parameters):
| Parâmetro | Descrição | Tipo | Obrigatório |
|---|---|---|---|
| search | A consulta de busca para corresponder por nome ou e-mail | string | true |
Solicitação:
curl -X GET 'https://api.4geeks.io/v1/customers/?search=alejandro' \
-u 'sk_test_51O62xYzAbcDef123:'
Resposta (200 OK - Resultados Encontrados):
[
{
"id": "004b75b1-64d9-42cc-8556-1b111611b67b",
"developer_id": 2875,
"first_name": "Shadya",
"last_name": "Mora Sánchez",
"email": "shadya.mora@4geeks.io",
"phone": null,
"photo": "https://storage.googleapis.com/g-payments.appspot.com/img/Shadya_Mora_test_1696356164.None",
"country": "Costa Rica",
"pay_providers": [
{
"id": "cus_NHLcuJNDnJDTnK",
"name": "stripe"
}
],
"metadata": null,
"created_on": "2023-02-26T06:56:07.152267Z",
"test": false
},
{
"id": "008ffa95-31be-41f8-b797-a4d75aafb9a5",
"developer_id": 2875,
"first_name": "Josito",
"last_name": "Urenas",
"email": "jose.urena+407@4geeks.io",
"phone": "000000000",
"photo": "https://storage.googleapis.com/g-payments.appspot.com/img/Josito_Urenas_test_1696279031.jpeg",
"country": "Argentina",
"pay_providers": [
{
"id": "cus_NWeHJ69zAJZx9Y",
"name": "stripe"
}
],
"metadata": null,
"created_on": "2023-03-14T16:46:08.241614Z",
"test": true
}
]
Resposta (404 Not Found - Sem Resultados):
{
"message": {
"code": 404,
"title": "Customer not found",
"content": "No customers found matching the query: 'customer_name'.",
"type": "danger",
"query": "customer_name"
}
}
Gestão de Endereços¶
Os clientes podem ter até 3 endereços associados ao seu perfil.
Tratamento de Erros¶
A API retorna códigos de status HTTP padrão para indicar o sucesso ou a falha de uma solicitação. Abaixo estão erros comuns específicos para clientes:
400 Bad Request (Solicitação Inválida)¶
Ocorre quando a solicitação está malformada ou faltam campos obrigatórios.
Cenários:
| Cenário | Mensagem de Erro | Solução |
|---|---|---|
| Consulta de busca vazia | "The search query cannot be empty." | Forneça um termo de busca não vazio |
| Campo obrigatório ausente | "This field is required." | Inclua todos os campos obrigatórios (first_name, last_name, email) |
| Formato de e-mail inválido | "Enter a valid email address." | Verifique o formato do e-mail e tente novamente |
Exemplo de Resposta de Erro:
{
"code": 400,
"title": "Invalid request",
"content": "The search query cannot be empty.",
"type": "danger"
}
401 Unauthorized (Não Autorizado)¶
Falha na autenticação. A Chave de API é inválida, está ausente ou malformada.
Exemplo:
Solução:
- Verifique se você incluiu o parâmetro
-u 'sk_test_...:ou o cabeçalhoAuthorization: Basic - Certifique-se de que sua Chave de API está correta e ativa
- Teste com o Postman usando Basic Auth
404 Not Found (Não Encontrado)¶
O cliente solicitado não existe.
Exemplo:
{
"code": 404,
"title": "Customer not found",
"content": "The customer could not be found, please check the id.",
"type": "danger"
}
Solução:
- Verifique se o ID do cliente existe
- Use o endpoint de listagem para encontrar o ID correto do cliente
- Certifique-se de que o cliente pertence à sua conta de desenvolvedor
406 Not Acceptable (Não Aceitável)¶
Ocorre ao tentar realizar uma ação inválida.
Exemplo:
{
"code": 406,
"title": "Address registration failure",
"content": "Customer already has 3 addresses registered.",
"type": "danger"
}
Solução:
- Exclua um endereço existente antes de criar um novo
- Máximo de 3 endereços por cliente
Notas Importantes¶
Informações do Cliente
- Os endereços de e-mail devem ser únicos em sua conta.
- Os clientes podem ter até 3 endereços.
- A exclusão de um cliente não pode ser desfeita.
Upload de Foto
- As fotos podem ser enviadas como dados de formulário multipart (multipart form data).
- Formatos suportados: JPEG, PNG.
- Tamanho máximo do arquivo: 5MB.
Metadados
- Os metadados são armazenados como JSON e podem conter pares chave-valor personalizados.
- Use metadados para armazenar informações do cliente específicas da sua aplicação.
- Tamanho máximo dos metadados: 10KB.
Teste vs Produção
- Use sua Chave de Teste (
sk_test_...) para desenvolvimento e testes. - Use sua Chave de Produção (
sk_live_...) para transações reais. - O sistema detecta automaticamente o modo com base na Chave de API utilizada.
Melhores Práticas¶
- Valide os endereços de e-mail - Garanta que os e-mails sejam únicos e válidos antes de criar.
- Use os metadados com sabedoria - Armazene dados de negócio relevantes nos metadados para facilitar a filtragem posterior.
- Mantenha os endereços atualizados - Mantenha as informações de endereço atuais para envios precisos.
- Gerencie a paginação - Use os números de página e
page_sizepara grandes listas de clientes. - Busque com eficiência - Use os parâmetros de busca para encontrar clientes rapidamente.
- Use endereços padrão - Marque os endereços preferidos como padrão por conveniência.
Solução de Problemas¶
Problema: “Customer already has 3 addresses registered”¶
Causa: Tentativa de adicionar mais de 3 endereços a um cliente.
Solução:
- Exclua um endereço existente primeiro.
- Use o endpoint DELETE para remover um endereço não utilizado.
- Em seguida, crie o novo endereço.
Problema: “The customer could not be found”¶
Causa: O ID do cliente não existe ou pertence a uma conta de desenvolvedor diferente.
Solução:
- Verifique o ID do cliente usando o endpoint de listagem.
- Certifique-se de que está usando a Chave de API correta.
- Verifique se o cliente não foi excluído.
Problema: “Authentication credentials were not provided”¶
Causa: Autenticação de Chave de API ausente ou inválida.
Solução:
- Use
-u 'sk_test_...:no cURL. - Ou use o cabeçalho
Authorization: Basic <base64_encoded_key>. - Verifique se sua Chave de API está ativa.
FAQ (Perguntas Frequentes)¶
P: Posso ter endereços de e-mail duplicados?
R: Não, os endereços de e-mail devem ser únicos em sua conta de desenvolvedor. Tentar criar um duplicado resultará em erro.
P: O que acontece com o histórico de pagamentos quando excluo um cliente?
R: Os registros de pagamento são preservados. Você ainda poderá visualizar o histórico de transações mesmo após a exclusão do cliente.
P: Quantos endereços um cliente pode ter?
R: Cada cliente pode ter até 3 endereços. Exclua um endereço existente antes de adicionar um novo se o limite for atingido.
P: Posso buscar por múltiplos campos?
R: O parâmetro de busca pesquisa nos campos first_name e email. Para buscar por outros campos, recupere todos os clientes e filtre do seu lado.
P: Que dados posso armazenar nos metadados?
R: Os metadados aceitam qualquer objeto JSON válido (máx. 10KB). Usos comuns incluem tipo de cliente, fonte de registro, pontos de fidelidade, etc.
P: Com que frequência devo atualizar as informações do cliente?
R: Atualize as informações sempre que elas mudarem. Não há limites de taxa para atualizações.
- Ainda tem dúvidas? Pergunte na comunidade..
- Consulte el changelog.