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
isEnabled?boolean
Si la paquetería participa en POST /v1/rates.
booleanenabledServices?arreglo
Servicios permitidos (serviceLevel). Cada entrada debe existir en availableServices de esa paquetería. null = todos.
arreglodefaultService?string
Servicio preseleccionado. Debe existir en availableServices de esa paquetería.
stringcurl -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 |
Sí | Sí |
POST /v1/rates/carrier/:carrierCode |
No — pedir una paquetería explícitamente salta el interruptor | Sí |
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
accountNumber?string
Número de cuenta que te dio la paquetería.
stringapiKey?string
Llave de API emitida por la paquetería.
stringapiSecret?string
Secreto de API emitido por la paquetería.
stringmeta?objeto
Campos adicionales que pida esa paquetería en particular (por ejemplo meterNumber).
objetoManda 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
}
}
totalPricees 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.carrierChargeEstimatees 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: truemarca 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.