DocumentaciónCarrito

Carrito

Bearer · scope carrito

Cotiza y genera órdenes, sube guías de envío y administra las direcciones de tus clientes.

POST/api/v1/carrito/generar

Cotizar / generar orden

Bearerscope: carrito

Cotiza un carrito con precios, descuentos y costo de envío ya calculados. En modo de prueba obtienes la cotización completa sin generar el pedido.

curl -X POST https://developers.syscom.mx/api/v1/carrito/generar \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "testmode": true,
    "tipo_entrega": "sucursal",
    "direccion": { "sucursal": "chihuahua", "atencion_a": "PRUEBA API" },
    "metodo_pago": "transferencia",
    "tipo_pago": "PUE",
    "moneda": "usd",
    "uso_cfdi": "G01",
    "productos": [{ "id": 210627, "cantidad": 1, "tipo": "nuevo" }]
  }'

Cuerpo de la petición

productosarrayrequerido

Renglones del pedido: [{ id, cantidad, tipo }]. tipo es la clase de precio (nuevo, a, b, c, d, e). Puede enviarse como arreglo o como string JSON; id y cantidad aceptan número o texto numérico ("223114"). Máximo 500 productos por orden. Si algún producto no existe o no está a la venta, el pedido no se crea y se responde 400 indicando cuáles.

tipo_entregastringrequerido

sucursal, domicilio u ocurre.

direccionobject|string

Objeto (o string JSON) con la dirección. Obligatoria y completa en entregas a domicilio u ocurre (salvo que envíes con tu propia guía: fletera=guia_cliente); con tipo_entrega=sucursal solo requiere { sucursal, atencion_a } (sucursal = código de /carrito/sucursales). domicilio/ocurre → { atencion_a, calle, num_ext, num_int, colonia, ciudad, estado, pais, codigo_postal, telefono }. estado es el código SAT del estado (ver estado_sat en /carrito/estados, p.ej. 08); el municipio del CP sobrescribe ciudad.

fleterastring

Código de fletera (ver /carrito/fleteras). Obligatoria en entregas a domicilio; en sucursal/ocurre se ignora.

monedastring

usd (def.) o mxn.

uso_cfdistringrequerido

Código de uso de CFDI (ver /carrito/cfdi).

metodo_pagostringrequerido

Clave del método de pago (ver /carrito/pago): transferencia, paynet, sucursal-*, credito-* (1/7/15/30/45/60/75/90).

tipo_pagostring

PUE (def.) o PPD; afecta forma_pago. En crédito se fuerza a PPD.

orden_comprastring

Referencia de orden de compra del cliente (opcional).

ordenarflag

true → convierte la cotización en pedido real (genera folio_pedido y aparta existencias); requiere stock suficiente. Default: false (solo cotización).

forzarflag

Con ordenar=true: crea el pedido aunque no haya existencia suficiente (omite la validación de stock).

testmodeflag

true → solo cotiza, no genera el pedido (recomendado para pruebas).

pdf_guiafile

Solo en entregas a domicilio y enviando el body como multipart/form-data: adjunta tu guía prepagada, el pedido se envía con tu paquetería y no se cobra flete. jpg/png/jpeg/doc/docx/pdf, máx. 6 MB.

Códigos de estado

200

Cotización calculada (o error de validación de negocio en { error }).

400

Algún dato del pedido es inválido o falta: la respuesta incluye detalles[] con el campo, el problema y un ejemplo. También cuando un producto no existe o no está a la venta (code: productos_no_encontrados).

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

405

Método no permitido (usar POST).

429

Límite de peticiones excedido.

501

Pedido real (sin testmode) deshabilitado en el servidor.

500

Error interno.

POST/api/v1/carrito/guia

Subir guía

Bearerscope: carrito

Sube tu guía de envío prepagada a pedidos que aún no hayan sido enviados: el pedido queda marcado para enviarse con tu paquetería (sin mensajería de SYSCOM). Acepta imágenes y PDF de hasta 6 MB.

curl -X POST https://developers.syscom.mx/api/v1/carrito/guia \
  -H 'Authorization: Bearer TU_TOKEN' \
  -F 'folio=000000' \
  -F '[email protected]'

Cuerpo de la petición

foliostringrequerido

Folio del pedido/factura.

pdf_guiafilerequerido

Archivo de la guía (jpg/png/jpeg/doc/docx/pdf, máx. 6 MB).

Códigos de estado

200

Guía registrada (o { error } si: el folio no existe, el folio ya fue facturado, el pedido tiene entrega en sucursal, o el formato del archivo es inválido).

400

pdf_guia ausente.

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

429

Límite de peticiones excedido.

500

Error interno.

GET/api/v1/carrito/direcciones

Direcciones de envío

Bearerscope: carrito

Lista las direcciones de envío guardadas del cliente.

curl 'https://developers.syscom.mx/api/v1/carrito/direcciones' \
  -H 'Authorization: Bearer TU_TOKEN'

Códigos de estado

200

Direcciones del cliente (arreglo).

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

429

Límite de peticiones excedido.

500

Error interno.

POST/api/v1/carrito/direcciones

Crear dirección

Bearerscope: carrito

Guarda una nueva dirección de envío. Valida el país y, para México, el estado según el código postal.

curl -X POST https://developers.syscom.mx/api/v1/carrito/direcciones \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "atencion_a": "Juan Perez",
    "calle": "Av. Tecnologico",
    "num_ext": "1234",
    "colonia": "Centro",
    "ciudad": "Chihuahua",
    "estado": "08",
    "pais": "MEX",
    "codigo_postal": "31000",
    "telefono": "6141234567"
  }'

Cuerpo de la petición

atencion_astringrequerido

Persona/atención.

callestringrequerido

Calle.

num_extstringrequerido

Número exterior.

num_intstring

Número interior (opcional).

coloniastringrequerido

Colonia.

ciudadstringrequerido

Ciudad.

estadostringrequerido

Código SAT del estado (ver estado_sat en /carrito/estados, p.ej. 08 para Chihuahua). En México se valida contra el CP.

paisstringrequerido

Código de país (ver /carrito/paises, p.ej. MEX).

codigo_postalstringrequerido

Código postal.

telefonostringrequerido

Teléfono.

Códigos de estado

200

Dirección creada (o { error } si falla la validación de país/CP).

400

Faltan parámetros obligatorios de la dirección.

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

429

Límite de peticiones excedido.

500

Error interno.

PUT/api/v1/carrito/direcciones/{id}

Actualizar dirección

Bearerscope: carrito

Actualiza una dirección de envío. Debes enviar todos los datos, porque reemplaza la dirección completa.

curl -X PUT https://developers.syscom.mx/api/v1/carrito/direcciones/901 \
  -H 'Authorization: Bearer TU_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{
    "atencion_a": "Juan Perez",
    "calle": "Av. Tecnologico",
    "num_ext": "1234",
    "colonia": "Centro",
    "ciudad": "Chihuahua",
    "estado": "08",
    "pais": "MEX",
    "codigo_postal": "31000",
    "telefono": "6149876543"
  }'

Parámetros

idnumberrequerido

ID de la dirección.

Cuerpo de la petición

atencion_astringrequerido

Persona/atención.

callestringrequerido

Calle.

num_extstringrequerido

Número exterior.

num_intstring

Número interior (opcional).

coloniastringrequerido

Colonia.

ciudadstringrequerido

Ciudad.

estadostringrequerido

Código SAT del estado (ver estado_sat en /carrito/estados). En México se valida contra el CP.

paisstringrequerido

Código de país (ver /carrito/paises).

codigo_postalstringrequerido

Código postal.

telefonostringrequerido

Teléfono.

Códigos de estado

200

Dirección actualizada (o { error } si falla la validación de país/CP).

400

id inválido o faltan parámetros obligatorios.

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

429

Límite de peticiones excedido.

500

Error interno.

DELETE/api/v1/carrito/direcciones/{id}

Eliminar dirección

Bearerscope: carrito

Elimina una dirección de envío del cliente.

curl -X DELETE https://developers.syscom.mx/api/v1/carrito/direcciones/901 \
  -H 'Authorization: Bearer TU_TOKEN'

Parámetros

idnumberrequerido

ID de la dirección.

Códigos de estado

200

Dirección eliminada.

400

id inválido.

401

Token ausente, inválido o revocado.

403

Cuenta sin acceso o sin scope carrito.

429

Límite de peticiones excedido.

500

Error interno.