logo

Crear clientes con la API

5 min de lectura

Traducido por comodidad. Si algo difiere, la versión en inglés es la que prevalece.

Qué es un cliente

Un cliente es la persona o empresa a la que envías un pedido: tu comprador. Cada pedido que creas a través de la API pertenece a un cliente, así que tu sistema crea primero el cliente y después crea pedidos para él. Los clientes creados a través de la API aparecen en Clientes bajo tu canal, igual que los que añades a mano.

Primero necesitas un token de API. Consulta El canal Manual/API para saber cómo obtenerlo. El token decide el canal: los clientes se crean en el canal al que pertenece el token. El token no debe ser de solo lectura.

La petición

Método POST
Dirección (sitio real) https://api.aiku.io/dropshipping/clients
Dirección (staging) https://api.aiku-sandbox.uk/dropshipping/clients
Cabeceras Authorization: Bearer seguida de tu token
Content-Type: application/json

La respuesta siempre es JSON. No necesitas enviar la cabecera Accept.

Un ejemplo completo

curl -X POST https://api.aiku.io/dropshipping/clients \
  -H "Authorization: Bearer 123|AbCdEf..." \
  -H "Content-Type: application/json" \
  -d '{
    "reference": "WEB-10045",
    "contact_name": "Jane Smith",
    "company_name": "Smith Gifts Ltd",
    "email": "jane@example.com",
    "phone": "+44 7700 900123",
    "address": {
      "address_line_1": "12 High Street",
      "address_line_2": "Flat 3",
      "locality": "Sheffield",
      "administrative_area": "South Yorkshire",
      "postal_code": "S1 2AB",
      "country_code": "GB"
    }
  }'

La petición más pequeña que aceptamos es solo el país:

{
  "address": { "country_code": "GB" }
}

Un cliente así no puede recibir paquetes, por eso envía siempre la dirección de entrega completa cuando la tengas.

Los campos

Campo Obligatorio Qué enviar
address Sí La dirección de entrega, como un objeto con los campos de abajo.
address.country_code Sí El país como código ISO: dos letras (GB, ES, DE) o tres letras (GBR, ESP, DEU). En mayúsculas o minúsculas.
address.address_line_1 Para la entrega Calle y número.
address.address_line_2 No Piso, planta, edificio.
address.locality Para la entrega Población o ciudad.
address.administrative_area Depende del país Condado, estado o provincia, si el país usa uno.
address.postal_code Para la entrega Código postal.
address.dependent_locality No Distrito o barrio, si el país usa uno.
address.sorting_code No Solo para países que usan un código de clasificación.
reference No Tu propio código para el cliente, por ejemplo el número de cliente en tu tienda. Debe ser único en tu canal.
contact_name No El nombre de la persona.
company_name No El nombre de la empresa.
email No Una dirección de correo válida.
phone No Al menos 6 caracteres. Usa el formato internacional, por ejemplo +44 7700 900123, para que el transportista pueda llamar.

Los campos de dirección que no están en esta lista, como city, state, county o country, se ignoran. Usa los nombres de arriba. No existen los campos first_name ni last_name: envía el nombre completo en contact_name.

Las integraciones antiguas pueden enviar address.country_id, nuestro propio número para el país. Sigue funcionando, pero usa country_code: si envías los dos, gana country_code.

La respuesta cuando funciona

Respondemos 201 Created con el nuevo cliente:

{
  "data": {
    "id": 52817,
    "ulid": "01M4639WS5Z7QT08CNW0M0DEJQ",
    "reference": "WEB-10045",
    "active": null,
    "name": "Smith Gifts Ltd",
    "contact_name": "Jane Smith",
    "company_name": "Smith Gifts Ltd",
    "location": ["GB", "United Kingdom", "Sheffield"],
    "email": "jane@example.com",
    "phone": "+44 7700 900123",
    "created_at": "2026-10-05T13:15:59.000000Z",
    "updated_at": "2026-10-05T13:15:59.000000Z",
    "address": {
      "id": 9123456,
      "address_line_1": "12 High Street",
      "address_line_2": "Flat 3",
      "sorting_code": null,
      "postal_code": "S1 2AB",
      "locality": "Sheffield",
      "dependent_locality": null,
      "administrative_area": "South Yorkshire",
      "country_code": "GB",
      "country_id": 48,
      "checksum": "74d55290109e98f64b7d908a3e66b9d8",
      "created_at": "2026-10-05T13:15:59.000000Z",
      "updated_at": "2026-10-05T13:15:59.000000Z",
      "country": { "code": "GB", "iso3": "GBR", "name": "United Kingdom" },
      "formatted_address": "<p translate=\"no\">...12 High Street<br>Flat 3<br>Sheffield<br>S1 2AB<br>United Kingdom</p>",
      "can_edit": null,
      "can_delete": null
    }
  },
  "message": "Client created successfully"
}

name es el nombre de la empresa cuando envías uno; si no, el nombre de contacto. formatted_address es la dirección en HTML, lista para mostrar.

Guarda data.id. Lo necesitas para crear pedidos de este cliente: POST /dropshipping/order/client/{id}/store.

Cambiar un cliente

Envía PATCH a /dropshipping/clients/{id} solo con los campos que quieres cambiar. Cuando cambies la dirección, envía la dirección completa, incluido country_code.

curl -X PATCH https://api.aiku.io/dropshipping/clients/52817 \
  -H "Authorization: Bearer 123|AbCdEf..." \
  -H "Content-Type: application/json" \
  -d '{ "phone": "+44 7700 900999" }'

Respondemos 200 con el cliente, con la misma forma de arriba, y "message": "Client updated successfully".

Buscar tus clientes

  • GET /dropshipping/clients lista los clientes de tu canal, página por página.
  • GET /dropshipping/clients/{id} muestra un cliente.
  • DELETE /dropshipping/clients/{id} desactiva un cliente. Sus pedidos anteriores se conservan.

Para no crear dos veces al mismo comprador, envía tu propio número de cliente como reference. Un segundo cliente con la misma reference en el mismo canal se rechaza.

Cuando algo va mal

Cuando rechazamos una petición por los datos, respondemos 422 con un message y el campo incorrecto en errors:

{
  "message": "Unknown country code \"UK\". Send the ISO code of the country, two letters (GB) or three letters (GBR).",
  "errors": {
    "address.country_code": [
      "Unknown country code \"UK\". Send the ISO code of the country, two letters (GB) or three letters (GBR)."
    ]
  }
}
  • "The client's delivery address is required". El cuerpo no tiene el objeto address. Los campos de dirección deben ir dentro de address, no en el nivel superior del cuerpo.
  • "The country is required". La dirección no tiene country_code. Añádelo.
  • "Unknown country code". El código no es un código ISO de país. El Reino Unido es GB o GBR, no UK.
  • "The reference has already been taken". Otro cliente de este canal tiene esa reference. Usa otra, o cambia el cliente existente con PATCH.
  • "The phone must be at least 6 characters". Envía el número de teléfono completo, o deja fuera phone.
  • 401 con un mensaje sobre la cabecera Authorization. El token falta, está incompleto o fue borrado. Copia el token entero, incluido el número y el | del principio. Staging necesita su propio token.
  • 403 "This API token is read only.". Genera un token sin marcar Read only.
  • 429. Cada token puede hacer hasta 120 peticiones por minuto. Ralentiza tu sistema e inténtalo de nuevo pasado un minuto.

Cada petición que hace tu sistema aparece en la pestaña API calls de la página API de tu canal, con la respuesta que dimos. Mira ahí primero cuando una petición no haga lo que esperas.