Pular para o conteúdo principal

Criar Cliente

Este endpoint cria um novo registro de cliente na base da XGATE.

A criação do cliente é o primeiro passo da integração, pois retorna o ID do Cliente (_id), que é obrigatório para:

  1. Cadastrar Chaves Pix.
  2. Gerar QR Codes de Cobrança.
  3. Realizar Saques.

💡 Nota: Ao realizar a criação de um cliente, o sistema gera automaticamente e em paralelo todos os endereços de carteiras de criptomoedas individualizados para ele.


Endpoint​

  • Método: POST
URL do Endpoint
https://api.xgateglobal.com/customer

Testar Integração​

Simule a criação de um cliente agora mesmo. O resultado mostrará o _id gerado.

👤

Testar: Criar Novo Cliente

1. Suas Credenciais

2. Dados do Novo Cliente

Requisição​

Headers Obrigatórios​

HeaderValorDescrição
AuthorizationBearer <seu_token>Token JWT de autenticação.

Corpo da Requisição (Body)​

CampoTipoObrigatórioDescrição
namestringSimNome completo do cliente.
documentstringSimCPF ou CNPJ.
emailstringNãoE-mail do cliente para notificações.
phonestringNãoTelefone do cliente.

Respostas (Responses)​

Sucesso (201 Created)​

O cliente foi criado com sucesso e já pode ser utilizado.

{
"message": "Novo cliente criado com sucesso",
"customer": {
"_id": "696d1f3331117************",
"name": "Name Client",
"email": "email@domain",
"document": "123***********"
}
}

Cliente já cadastrado (200 OK)​

Já existe um cliente cadastrado com o mesmo nome e/ou documento. Ao obter essa resposta do servidor, o mesmo retorna o _id do cliente que possuí esses dados.

{
"message": "Cliente já está cadastrado na base de dados",
"customer": {
"_id": "68e7b8f0dbed************"
}
}

Erros Comuns​

StatusMensagemMotivo Provável
400Bad RequestNome e/ou documento do cliente é obrigatório.
401Unauthorized• Token inválido ou expirado.
• Header inválido ou não informado.
• IP não permitido.
• Você não tem autorização para realizar essa ação.
409Conflict• Nome informado já está cadastrado.
• Documento informado já está cadastrado.
500Internal Server ErrorErro interno de servidor. Entrar em contato com suporte.

Como usar​

O ID do Cliente (_id) é o identificador único que conecta o usuário a todas as operações financeiras e de gestão dentro da plataforma.

Você precisará deste ID obrigatoriamente para:

  1. Transações: Identificar a origem/destino em Depósitos e Saques.
  2. Chaves Pix: Criar, listar ou remover chaves vinculadas ao cliente.
  3. Gestão: Atualizar dados cadastrais do cliente.

O Fluxo de Integração​

  1. Gerar token: Obtenha um token na rota de autenticação (POST /auth/token) para ter a permissão de criar o cliente.
  2. Crie o cliente: Envie o payload de requisição para a rota (POST /customer) enviando obrigatóriamente os campos name e document.

Exemplo Prático​

Para creditar valores (Depósito), você deve passar o ID do cliente dentro do campo customerId do payload.

1. O que você recebe ao criar o Cliente:

{
"message": "Novo cliente criado com sucesso",
"customer": {
"_id": "696d1f3331117************",
"name": "Name Client",
"email": "email@domain",
"document": "123***********"
}
}

2. Como usar a rota de Depósito (POST /deposit):

{
"amount": 0.2,
"customerId": "696d1f3331117************",
"currency": {
"_id": "6728f0a2cba3**************",
"name": "BRL",
"type": "PIX",
"createdDate": "2024-11-04T16:04:50.019Z",
"updatedDate": "2024-11-07T02:23:38.606Z",
"__v": 0,
"symbol": "R$"
}
}

O ID do cliente é passado como customerId para criar um pedido de depósito.

Dica de Integração

Sempre armazene o _id do cliente logo após a criação. Você vai usá-lo em 100% das chamadas futuras relacionadas a este usuário.


Integração​

O exemplo de integração utiliza a biblioteca Axios em Node.js.

Instalando Axios:

npm install axios

Exemplo Javascript:

const axios = require("axios");

(async () => {
const email = "your_email@domain.com";
const password = "**********";
const customer = {
name: "Name client",
phone: "119*******",
email: "your_email@domain.com",
document: "000000*******"
}

try {
const url_api = "https://api.xgateglobal.com"
const login = await axios.post(`${url_api}/auth/token`, { email, password });
const { data } = await axios.post(`${url_api}/customer`, customer, {
headers: {
"Authorization": `Bearer ${login.data.token}`
}
});
console.log(data); // Response
} catch (error) {
console.log(error.response.data.message) // Error
}
})()