Canales de entrega para la integración
POST /api/integration/list-fulfillments
Descripción
Lista los canales de entrega por los que la integración puede pedir en el canal de venta elegido.
Detalles
Devuelve los canales de entrega habilitados en el canal de venta indicado, o en el del punto de venta si no se indica ninguno. Deja fuera mesa y habitación, que necesitan un lugar libre del restaurante. Cada canal de entrega indica cómo cobra el envío y, si es por zona, sus zonas con tarifa. El identificador de cada canal de entrega es el que se usa para pedir la carta y el pedido.
Permisos requeridos
orders.integration
Request
| Nombre | Tipo | Requerido | Reglas |
|---|---|---|---|
| channelCode | string | No |
max:60
|
Respuesta
Campos que devuelve dentro de data. Nada fuera de esta lista sale en la respuesta.
| Campo | Tipo | Descripción |
|---|---|---|
| channelCode | string | Código del canal de venta consultado |
| fulfillments | array | Canales de entrega por los que la integración puede pedir |
| fulfillments[].fulfillmentUuid | string | Identificador del canal de entrega |
| fulfillments[].fulfillmentName | string | Nombre del canal de entrega |
| fulfillments[].fulfillmentTypeCode | string | Código del tipo de canal de entrega |
| fulfillments[].fulfillmentTypeName | string | Nombre del tipo de canal de entrega |
| fulfillments[].deliveryFeeMode | string | Cómo cobra el envío: disabled, free, fixed, per_zone o manual |
| fulfillments[].deliveryFixedFeeCents | int Admite vacío | Tarifa fija del envío en centavos |
| fulfillments[].deliveryMinFeeCents | int Admite vacío | Costo mínimo del envío en modo manual, en centavos |
| fulfillments[].deliveryMaxFeeCents | int Admite vacío | Costo máximo del envío en modo manual, en centavos |
| fulfillments[].deliveryFreeAboveCents | int Admite vacío | Total desde el cual el envío es gratis, en centavos |
| deliveryZones | array | Zonas de reparto de los canales de entrega que cobran por zona |
| deliveryZones[].fulfillmentUuid | string | Canal de entrega al que pertenece la zona |
| deliveryZones[].deliveryZoneId | int | Identificador de la zona, se manda al pedir |
| deliveryZones[].name | string | Nombre de la zona |
| deliveryZones[].feeCents | int | Tarifa del envío a la zona en centavos |
Ejemplo de request
curl -X POST https://restofy.pro/api/integration/list-fulfillments \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <accessToken>"
Los valores son demo: reemplázalos por datos reales del negocio.
Ejemplo de respuesta
Actualizado: 2026-11-02T19:00:57Z
HTTP 200
Request
[]
Response
{
"success": true,
"message": "Operación realizada correctamente",
"data": {
"channelCode": "channel.staff.pos",
"fulfillments": [
{
"fulfillmentUuid": "03846687-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "DiDi Food",
"fulfillmentTypeCode": "fulfillment.delivery",
"fulfillmentTypeName": "A domicilio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "038465df-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Domicilio",
"fulfillmentTypeCode": "fulfillment.delivery",
"fulfillmentTypeName": "A domicilio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "038466bb-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "iFood",
"fulfillmentTypeCode": "fulfillment.delivery",
"fulfillmentTypeName": "A domicilio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "0384661c-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Rappi",
"fulfillmentTypeCode": "fulfillment.delivery",
"fulfillmentTypeName": "A domicilio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "03846653-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Uber Eats",
"fulfillmentTypeCode": "fulfillment.delivery",
"fulfillmentTypeName": "A domicilio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "03846536-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Autoservicio",
"fulfillmentTypeCode": "fulfillment.counter",
"fulfillmentTypeName": "Autoservicio",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "03c84bbb-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Para llevar",
"fulfillmentTypeCode": "fulfillment.takeout",
"fulfillmentTypeName": "Para llevar",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
},
{
"fulfillmentUuid": "0384659f-d113-11f1-8bb6-de64ef616b7c",
"fulfillmentName": "Vehículo",
"fulfillmentTypeCode": "fulfillment.curbside",
"fulfillmentTypeName": "Vehiculo",
"deliveryFeeMode": "disabled",
"deliveryFixedFeeCents": null,
"deliveryMinFeeCents": null,
"deliveryMaxFeeCents": null,
"deliveryFreeAboveCents": null
}
],
"deliveryZones": []
}
}