Crear
Crea un cliente en tu organización.
Descripción general
Este endpoint crea un cliente con las mismas reglas que el formulario de la aplicación. El único campo obligatorio es name, el alias del cliente; el resto son opcionales. Una solicitud exitosa devuelve 201 con el cliente creado, incluido su id y su financial_summary.
La API normaliza los datos fiscales: legal_name se guarda en mayúsculas y tax_id (RFC) en mayúsculas y sin guiones, espacios ni otros caracteres. No se validan duplicados: dos clientes pueden tener el mismo alias o RFC.
Si no hay un tipo de cambio USD/MXN registrado, el cliente se crea igual y los totales de financial_summary llegan en null.
Acepta el header Idempotency-Key para reintentar sin crear clientes duplicados (ver Idempotencia).
Requiere el permiso Crear en Clientes.
Endpoint
https://app.credonix.mx/api/v1/customersSolicitud mínima
Envía solo name. send_weekly_message toma false por defecto.
{
"name": "Distribuidora Monterrey"
}Cliente con datos fiscales
Envía la razón social sin el tipo de sociedad, el RFC, el régimen fiscal y el código postal junto con los datos de contacto.
{
"name": "Escuela Kemper",
"legal_name": "ESCUELA KEMPER URGATE",
"tax_id": "EKU9003173C9",
"tax_regime": "601",
"address_zip_code": "42501",
"contact_email": "[email protected]"
}Normalización del RFC y la razón social
El RFC puede llegar en minúsculas y con guiones o espacios: la API lo guarda en mayúsculas y solo con letras y números. La razón social se guarda en mayúsculas.
{
"name": "Comercializadora del Norte",
"tax_id": "xaxx-010101-000",
"legal_name": "comercializadora del norte",
"contact_email": "[email protected]"
}Reglas de los campos
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
name | string | Sí | Alias del cliente. No puede ser vacío. |
send_weekly_message | boolean | No | Por defecto false. |
legal_name | string | null | No | Razón social sin el tipo de sociedad (S.A. de C.V., S. de R.L., S.A.P.I., S.C., A.C., etc.). Se guarda en mayúsculas. |
tax_id | string | null | No | RFC de 12 caracteres (persona moral) o 13 (persona física). Se quitan los caracteres que no sean letras, números, Ñ o & y se guarda en mayúsculas. |
tax_regime | string | null | No | Régimen fiscal. |
website | string | null | No | Texto libre. |
address_street, address_exterior_number, address_interior_number, address_neighborhood, address_city, address_state, address_country | string | null | No | Texto libre. |
address_zip_code | string | null | No | Código postal. Texto libre al crear. Al editar debe tener 5 dígitos. |
contact_name | string | null | No | Texto libre. |
contact_phone | string | null | No | Teléfono válido en formato internacional (por ejemplo +525512345678) o "". |
contact_email, contact_second_email | string | null | No | Correo válido o "". |
No se aceptan campos adicionales: cualquier campo desconocido responde 400.
Errores
400 — validación fallida
errors trae un elemento por cada problema, con el campo, el código y el mensaje.
{
"code": "VALIDATION_ERROR",
"message": "La petición contiene datos inválidos. Revisa errors para ver el detalle de cada campo.",
"errors": [
{
"field": "name",
"code": "too_small",
"message": "El alias del cliente es requerido"
},
{
"field": "tax_id",
"code": "custom",
"message": "El RFC no tiene un formato válido. Debe ser de 12 caracteres para persona moral o 13 para persona física."
}
],
"request_id": "a8139f51-b8c3-4f16-b1bc-89f6eb9f1c1e"
}Un campo desconocido se reporta en body:
{
"code": "VALIDATION_ERROR",
"message": "La petición contiene datos inválidos. Revisa errors para ver el detalle de cada campo.",
"errors": [
{
"field": "body",
"code": "unrecognized_keys",
"message": "Llave desconocida: \"foo\""
}
],
"request_id": "d076969e-3fe7-4f46-8bd0-f80dcc8b9576"
}403 — permiso insuficiente
{
"code": "INSUFFICIENT_PERMISSIONS",
"message": "Esta API key no tiene el permiso Crear en Clientes. Un administrador puede editar sus permisos en Configuración, sección Desarrolladores.",
"request_id": "baf572e6-4fe7-4bc7-b5fb-ac4ae217ba84"
}| Status | Código | Causa |
|---|---|---|
400 | VALIDATION_ERROR | Falta name, un campo tiene formato inválido o se envió un campo desconocido. |
403 | INSUFFICIENT_PERMISSIONS | La API key no tiene el permiso Crear en Clientes. |