Crear cliente
Este endpoint crea un nuevo registro de cliente en la base de datos de XGate.
Crear un cliente es el primer paso de la integración, ya que devuelve el ID del cliente (_id), que es necesario para:
- Registrar claves Pix.
- Generar códigos QR de cobranza.
- Realizar retiros.
💡 Nota: Al crear un cliente, el sistema genera automáticamente y en paralelo todas las direcciones de billeteras de criptomonedas individualizadas para él.
Endpoint
- Método: POST
https://api.xgateglobal.com/customer
Prueba de integración
Simule la creación de un cliente ahora. El resultado mostrará el _id generado.
Probar: Crear Nuevo Cliente
Solicitud
Encabezados obligatorios
| Encabezado | Valor | Descripción |
|---|---|---|
Authorization | Bearer <tu_token> | Token de autenticación JWT. |
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
name | string | Sí | Nombre completo del cliente. |
document | string | Sí | CPF o CNPJ. |
email | string | No | Correo electrónico del cliente para notificaciones. |
phone | string | No | Número de teléfono del cliente. |
Respuestas
Éxito (201 Created)
El cliente se creó correctamente y ya está disponible para su uso.
{
"message": "Nuevo cliente creado con éxito",
"customer": {
"_id": "696d1f3331117************",
"name": "Name Client",
"email": "email@domain",
"document": "123***********"
}
}
Cliente ya registrado (200 OK)
Ya existe un cliente con el mismo nombre y/o documento. Cuando el servidor devuelve esta respuesta, incluye el _id del cliente existente.
{
"message": "El cliente ya está registrado en la base de datos",
"customer": {
"_id": "68e7b8f0dbed************"
}
}
Errores comunes
| Estado | Mensaje | Posible motivo |
|---|---|---|
| 400 | Bad Request | Se requiere el nombre y/o documento del cliente. |
| 401 | Unauthorized | • Token inválido o vencido. • Encabezado faltante o inválido. • IP no permitido. • No tiene autorización para realizar esta acción. |
| 409 | Conflict | • El nombre proporcionado ya está registrado. • El documento proporcionado ya está registrado. |
| 500 | Internal Server Error | Error interno del servidor. Contacte con soporte. |
Cómo usar
El ID del cliente (_id) es el identificador único que vincula al usuario con todas las operaciones financieras y de gestión dentro de la plataforma.
Necesitará este ID para:
- Transacciones: Identificar origen/destino en depósitos y retiros.
- Claves Pix: Crear, listar o eliminar claves vinculadas al cliente.
- Gestión: Actualizar los datos de registro del cliente.
Flujo de integración
- Generar token: Obtenga un token en la ruta de autenticación (POST /auth/token) para quedar autorizado a crear clientes.
- Crear el cliente: Envíe la carga útil de la solicitud a la ruta (POST /customer) proporcionando los campos
nameydocument.
Ejemplo práctico
Para acreditar fondos (depósito), incluya el ID del cliente en el campo customerId de la carga útil.
1. Lo que recibe al crear el cliente:
{
"message": "Nuevo cliente creado con éxito",
"customer": {
"_id": "696d1f3331117************",
"name": "Name Client",
"email": "email@domain",
"document": "123***********"
}
}
2. Cómo usar la ruta 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$"
}
}
El ID del cliente se pasa como customerId para crear una solicitud de depósito.
Guarde siempre el _id del cliente inmediatamente después de la creación. Lo utilizará en 100% de las llamadas futuras relacionadas con este usuario.
Integración
- Node.js
El ejemplo de integración utiliza la librería Axios en Node.js.
Instalando Axios:
npm install axios
Ejemplo en 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); // Respuesta
} catch (error) {
console.log(error.response.data.message) // Error
}
})()