Modificar Direcciones de Envío
Método: POST
Endpoint
Sección titulada «Endpoint»https://api.ventasremotas.com/v1/shipping-addresses/batch-updateEncabezados de la solicitud
Sección titulada «Encabezados de la solicitud»| Header | Valor | Descripción | Requerido |
|---|---|---|---|
Content-Type | application/json | Indica que los datos se envían en formato JSON | Sí |
Accept | application/json | Indica que la respuesta debe estar en formato JSON | No |
Subscription-Key | {subscription_key} | Clave de suscripción para acceder a la API | Sí |
Authorization | Bearer {access_token} | Token de acceso obtenido del endpoint /token | Sí* |
* Requerido en producción (Azure valida automáticamente).
Parámetros del Cuerpo (Body)
Sección titulada «Parámetros del Cuerpo (Body)»El body debe ser un array de objetos, donde cada objeto representa una dirección de envío a actualizar.
Límites
Sección titulada «Límites»| Parámetro | Valor | Descripción |
|---|---|---|
| Mínimo de items | 1 | El array no puede estar vacío |
| Máximo de items | 10,000 | Número máximo de direcciones de envío por petición |
El cuerpo (Body) de la solicitud debe enviarse en formato JSON y debe incluir un array con los siguientes parámetros.
| Campo | Tipo | Nulo | Restricciones | Descripción |
|---|---|---|---|---|
client_code | string (max 18) | No | No permite: espacio, #, %, &, *, {, }, \, :, <, >, ?, /, +, . | Código del cliente al que pertenece la dirección |
description | string (max 200) | No | Nombre o descripción de la dirección de envío | |
country | string (max 50) | No | País de la dirección | |
region | string (max 50) | Sí | Región o departamento | |
city | string (max 100) | No | Ciudad de la dirección | |
address | string (max 500) | No | Dirección física completa | |
observations | string (max 500) | Sí | Observaciones o instrucciones de entrega | |
is_default | string (max 1) | No | Valores permitidos: Y, N | Indica si es la dirección predeterminada del cliente |
is_active | string (max 1) | No | Valores permitidos: Y, N | Estado de la dirección (Activa/Inactiva) |
erp_code | string (max 50) | Sí | Único por empresa | Código de la dirección en el sistema ERP. Actúa como clave alternativa de identificación |
Formato de tipos de dato
Sección titulada «Formato de tipos de dato»- string (max N): Cadena de texto con longitud máxima de
Ncaracteres.
Ejemplo de Solicitud
Sección titulada «Ejemplo de Solicitud»Aquí tienes un ejemplo de cómo debería quedar el cuerpo de la solicitud en formato JSON:
[ { "client_code": "CLI-001", "description": "Bodega Principal", "country": "Colombia", "region": "Cundinamarca", "city": "Bogotá", "address": "Calle 100 #15-25 Bodega 3 - Actualizado", "observations": "Entregar en horario de 7am a 6pm", "is_default": "Y", "is_active": "Y", "erp_code": "ERP-DIR-001" }]Ejemplo de Respuesta
Sección titulada «Ejemplo de Respuesta»{ "statusCode": 200, "message": "Shipping addresses updated successfully"}{ "statusCode": 400, "errors": [ { "message": "Invalid JSON in request body" } ]}{ "statusCode": 415, "errors": [ { "message": "Content-Type: application/json is required" } ]}Errores globales (estructura del body)
Sección titulada «Errores globales (estructura del body)»Si el body no es un array:
{ "statusCode": 422, "errors": [ { "message": "Request body must be an array" } ]}Si el array está vacío:
{ "statusCode": 422, "errors": [ { "message": "Request body cannot be empty" } ]}Si excede el límite de 10,000 items:
{ "statusCode": 422, "errors": [ { "message": "Array exceeds maximum limit of 10000 items" } ]}Errores por item (validación de campos)
Sección titulada «Errores por item (validación de campos)»Los errores se agrupan por el índice del item en el array:
{ "statusCode": 422, "errors": [ { "index": 0, "errors": [ { "field": "city", "message": "Field is required" }, { "field": "is_active", "message": "Value must be one of: Y, N" } ] } ]}Tipos de Errores de Validación por Campo
Sección titulada «Tipos de Errores de Validación por Campo»Errores de presencia y nulidad:
| Error | Descripción |
|---|---|
Field is required | El campo no fue enviado en el objeto (la clave no existe) |
Field cannot be null or empty | El campo fue enviado con valor null o vacío y no acepta nulos |
Unknown field | Se envió un campo que no existe en la configuración |
Item must be an object | Un elemento del array no es un objeto JSON |
Errores de tipo de dato:
| Error | Descripción |
|---|---|
Field must be a string | El valor no es una cadena de texto |
Errores de longitud:
| Error | Descripción |
|---|---|
Field exceeds maximum length of X characters | La cadena excede la longitud máxima permitida |
Errores de valores permitidos:
| Error | Descripción |
|---|---|
Value must be one of: Y, N | El valor no está en la lista de valores permitidos |
Errores de formato:
| Error | Descripción |
|---|---|
Field contains forbidden characters. The following are not allowed: space, #, %, &, *, {, }, \, :, <, >, ?, /, +, . | El campo client_code contiene caracteres prohibidos |
{ "statusCode": 423, "errors": [ { "message": "Resource is locked and cannot be accessed." } ]}Error de conexión a base de datos
Sección titulada «Error de conexión a base de datos»{ "statusCode": 500, "errors": [ { "message": "Error connecting to database" } ]}Error de operación en base de datos
Sección titulada «Error de operación en base de datos»{ "statusCode": 500, "errors": [ { "message": "Database operation failed" } ]}Error en Redis
Sección titulada «Error en Redis»{ "statusCode": 500, "errors": [ { "message": "Redis operation failed" } ]}Error inesperado
Sección titulada «Error inesperado»{ "statusCode": 500, "errors": [ { "message": "Unexpected error" } ]}Error del Servidor
Estos errores indican problemas internos en el servidor, la base de datos o el servicio de cache. Si persisten, contacta al equipo de soporte.