Saltar al contenido
SendIt está en desarrollo y todavía no opera comercialmente · SendIt is in development and not yet commercially available.
SendItdocs
Español
Esc
navigateopen⌘Jpreview
En esta página

Cuentas de paquetería

Elige qué paqueterías y servicios cotizan para tu organización, y conecta tu propio contrato con una paquetería.

Tu organización decide qué paqueterías participan en cada cotización, y con qué servicios. También puedes conectar tu propio contrato con DHL, FedEx o Estafeta. En ese caso la paquetería te factura el flete directamente, y SendIt solo cobra una tarifa por guía.

Método Ruta Alcance Descripción
GET /v1/carrier-preferences Listar todas las paqueterías con la configuración de tu organización
GET /v1/carrier-preferences/:carrierCode Consultar una paquetería
PUT /v1/carrier-preferences/:carrierCode carrier_preferences:write Actualizar una paquetería
PATCH /v1/carrier-preferences/bulk carrier_preferences:write Habilitar o deshabilitar varias de golpe
DELETE /v1/carrier-preferences/:carrierCode carrier_preferences:write Restablecer una paquetería a sus valores por defecto
PUT /v1/carrier-preferences/:carrierCode/credentials carrier_preferences:write Guardar las credenciales de tu propia cuenta
DELETE /v1/carrier-preferences/:carrierCode/credentials carrier_preferences:write Borrar las credenciales y volver a la cuenta de SendIt
POST /v1/carrier-preferences/:carrierCode/credentials/verify carrier_preferences:write Verificar las credenciales guardadas

Los endpoints de escritura requieren rol ADMIN o superior.

Consulta tu configuración

curl https://api.sendit.mx/v1/carrier-preferences \
  -H "X-API-Key: sk_test_..."
{
  "success": true,
  "data": [
    {
      "carrierCode": "FEDEX",
      "carrierName": "FedEx",
      "availableServices": [
        { "serviceName": "FedEx Economy", "serviceLevel": "economy" },
        { "serviceName": "FedEx Express", "serviceLevel": "express" }
      ],
      "supportsPickups": true,
      "isConfigured": true,
      "isEnabled": true,
      "enabledServices": ["economy", "express"],
      "defaultService": "express",
      "usesOwnAccount": false
    }
  ],
  "meta": { "count": 1 }
}
Campo Descripción
availableServices Los servicios que la paquetería ofrece, con su serviceLevel
supportsPickups Si acepta recolecciones programadas
isConfigured Si tu organización ya guardó una configuración propia para esta paquetería
isEnabled Si participa en POST /v1/rates
enabledServices Servicios permitidos; null = todos
defaultService Servicio preseleccionado en tus formularios (solo conveniencia)
usesOwnAccount Si las cotizaciones y guías usan tu propia cuenta de paquetería

GET /v1/carrier-preferences/:carrierCode devuelve un solo objeto con la misma forma.

Elige qué paqueterías cotizan

Parámetros del cuerpo

PropType
isEnabled?boolean

Si la paquetería participa en POST /v1/rates.

Typeboolean
enabledServices?arreglo

Servicios permitidos (serviceLevel). Cada entrada debe existir en availableServices de esa paquetería. null = todos.

Typearreglo
defaultService?string

Servicio preseleccionado. Debe existir en availableServices de esa paquetería.

Typestring
curl -X PUT https://api.sendit.mx/v1/carrier-preferences/FEDEX \
  -H "X-API-Key: sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "isEnabled": true,
    "enabledServices": ["express", "overnight"],
    "defaultService": "express"
  }'

La respuesta es el objeto de la paquetería ya actualizado.

Para prender o apagar varias de una vez, manda la lista completa de las que quieres habilitadas. Las que no aparezcan quedan deshabilitadas:

curl -X PATCH https://api.sendit.mx/v1/carrier-preferences/bulk \
  -H "X-API-Key: sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{ "enabledCarriers": ["FEDEX", "DHL", "ESTAFETA"] }'
{
  "success": true,
  "data": {
    "enabled": ["FEDEX", "DHL", "ESTAFETA"],
    "disabled": ["SENDEX", "AMPM"]
  }
}

DELETE /v1/carrier-preferences/FEDEX restablece esa paquetería (204, sin cuerpo): vuelve a isEnabled: true, enabledServices: null, defaultService: null y borra las credenciales propias si las había.

Código Cuándo Cómo resolverlo
400 INVALID_INPUT enabledServices o defaultService traen un servicio que esa paquetería no ofrece Usa un serviceLevel de su availableServices
403 INSUFFICIENT_SCOPE La llave no tiene carrier_preferences:write Emite una llave con ese alcance
404 RESOURCE_NOT_FOUND El carrierCode no existe en el catálogo Revisa el catálogo de paqueterías

Cómo afecta a tus cotizaciones

Endpoint Respeta isEnabled Respeta enabledServices
POST /v1/rates
POST /v1/rates/carrier/:carrierCode No — pedir una paquetería explícitamente salta el interruptor

Así puedes ofrecer un flujo de cotización dirigido a una paquetería específica sin perder las restricciones de servicio que configuraste.

Usa tu propia cuenta de paquetería

Si tienes un contrato negociado con DHL, FedEx o Estafeta, guarda esas credenciales y SendIt cotizará y comprará con ellas. La paquetería te factura el flete a ti, bajo tu contrato; SendIt te cobra únicamente una tarifa por guía.

Parámetros del cuerpo

PropType
accountNumber?string

Número de cuenta que te dio la paquetería.

Typestring
apiKey?string

Llave de API emitida por la paquetería.

Typestring
apiSecret?string

Secreto de API emitido por la paquetería.

Typestring
meta?objeto

Campos adicionales que pida esa paquetería en particular (por ejemplo meterNumber).

Typeobjeto

Manda al menos uno de los cuatro.

curl -X PUT https://api.sendit.mx/v1/carrier-preferences/FEDEX/credentials \
  -H "X-API-Key: sk_test_..." \
  -H "Content-Type: application/json" \
  -d '{
    "accountNumber": "123456789",
    "apiKey": "llave-de-la-paqueteria",
    "apiSecret": "secreto-de-la-paqueteria",
    "meta": { "meterNumber": "987654" }
  }'

La respuesta es el objeto normal de la paquetería, ahora con usesOwnAccount: true:

{
  "success": true,
  "data": {
    "carrierCode": "FEDEX",
    "carrierName": "FedEx",
    "isConfigured": true,
    "isEnabled": true,
    "enabledServices": null,
    "defaultService": null,
    "usesOwnAccount": true
  }
}

La respuesta nunca devuelve las credenciales que enviaste. No las guardes en el estado de tu frontend ni las escribas en tus registros después de enviarlas.

Verifica y borra

curl -X POST https://api.sendit.mx/v1/carrier-preferences/FEDEX/credentials/verify \
  -H "X-API-Key: sk_test_..."
{
  "success": true,
  "data": { "carrierCode": "FEDEX", "valid": true }
}

DELETE /v1/carrier-preferences/FEDEX/credentials borra las credenciales y devuelve el objeto con usesOwnAccount: false; a partir de ahí las cotizaciones vuelven a usar la cuenta de SendIt.

Código Cuándo Cómo resolverlo
400 INVALID_INPUT No mandaste ninguno de los cuatro campos Incluye al menos accountNumber, apiKey, apiSecret o meta
403 INSUFFICIENT_SCOPE La llave no tiene carrier_preferences:write Emite una llave con ese alcance
404 RESOURCE_NOT_FOUND El carrierCode no existe, o no hay credenciales guardadas al verificar o borrar Guarda las credenciales primero con PUT

Qué cambia en la cotización

Una cotización con tu propia cuenta trae dos campos extra:

{
  "carrierCode": "FEDEX",
  "serviceLevel": "express",
  "totalPrice": 1.39,
  "currency": "MXN",
  "usesOwnAccount": true,
  "carrierChargeEstimate": 287.43,
  "breakdown": {
    "baseRate": 1.20,
    "fuelSurcharge": 0.00,
    "insuranceCost": 0.00,
    "subtotal": 1.20,
    "ivaRate": 0.16,
    "ivaAmount": 0.19,
    "total": 1.39
  }
}
  • totalPrice es lo que SendIt te cobra: la tarifa por guía de tu plan más IVA. Es exactamente lo que se debita de tu monedero al comprar la guía, ni un peso más.
  • carrierChargeEstimate es el estimado del flete de tu propio contrato. Es informativo: nunca entra al monedero de SendIt ni a tu CFDI, porque la paquetería te lo factura a ti por separado. Puede diferir de la factura final si la paquetería aplica ajustes.
  • usesOwnAccount: true marca esa semántica. Las cotizaciones con la cuenta de SendIt no traen ninguno de los dos campos y no cambian en nada.

Muéstralos por separado en tu interfaz: el cargo de SendIt y el estimado que te cobrará la paquetería son dos cosas distintas.

Tarifa por guía

Plan Tarifa por guía con tu cuenta (antes de IVA)
Free $1.20 MXN
Growth $0.90 MXN
Scale $0.60 MXN
Enterprise $0.00 MXN

Esta tarifa reemplaza el precio normal de la guía y no se le suma el excedente de plan: es el único cargo de SendIt por esa guía. La guía sí cuenta para tu consumo mensual. En Enterprise la tarifa es cero, así que no se genera ningún movimiento en el monedero, pero la guía se crea y se contabiliza igual.

Reglas al cambiar de cuenta

  • Vuelve a cotizar después de guardar o borrar credenciales. Las cotizaciones anteriores describen la cuenta anterior y ya no aplican.
  • Para cancelar una guía que compraste con tu propia cuenta necesitas tener credenciales utilizables para esa paquetería. Si las borraste o rotaste, guárdalas de nuevo antes de pedir el reembolso.
  • El seguro de una guía comprada con tu cuenta lo cubre y factura tu paquetería, no SendIt.

¿Te ha resultado útil esta página?