Skip to content

Crea un pedido (venta local)​

POST
/orders

Consume cupo de venta local y cobra excedente igual que el panel. Los totales se
recalculan en el servidor (total = Σ price × quantity - discount + shipping_cost); el
precio lo manda el socio. discount (opcional) es el descuento total del pedido en monto
y no puede superar total_products. Lo que no se puede resolver (comuna, horario, fecha) no falla: el
pedido se crea y la respuesta lleva warnings. Reintento con el mismo external_id
→ 200 con el pedido existente. Requiere además que la florería tenga habilitado el
ingreso de ventas locales.

customer.email, customer.phone y shipping_cost son obligatorios (shipping_cost
mínimo 0; 0 es válido). Un producto que la florería revende (shared: true) queda
vinculado al compartido y su stock se mueve igual que en el checkout web.

Orden de validación: scope → body (400) → idempotencia (200) → zona/horario/productos
(400) → bloqueo por excedente (422, no se crea nada).

Autorizaciones​

bearerAuth

API key de la florería, con formato rf_live_<prefix>_<secreto>. Se entrega una sola
vez; se envía en cada solicitud como Authorization: Bearer <key>.

Tipo
HTTP (bearer)

Parámetros​

Header Parameters

Idempotency-Key

Texto único de hasta 255 caracteres. Durante 24 h, la misma key con el mismo cuerpo
devuelve la misma respuesta sin crear nada; con otro cuerpo, 409
idempotency_conflict. Solo se recuerdan las respuestas 2xx. Un header vacío
se trata como si no viniera.

Tipo
string
Longitud máx.
255

Cuerpo de la petición​

application/json
JSON
{
  
"external_id": "string",
  
"external_url": "string",
  
"customer": {
  
  
"name": "string",
  
  
"email": "string",
  
  
"phone": "string",
  
  
"phone_code": "56"
  
},
  
"address": {
  
  
"zone_text": "string",
  
  
"zone_id": 0,
  
  
"type": "DrParticular",
  
  
"name": "string",
  
  
"street": "string",
  
  
"street_number": "string",
  
  
"more_info": "string",
  
  
"phone": "string",
  
  
"latitude": 0,
  
  
"longitude": 0
  
},
  
"shipping_date": "string",
  
"shipping_schedule_id": 0,
  
"schedule_text": "string",
  
"shipping_cost": 0,
  
"discount": 0,
  
"card_message": "string",
  
"anonymous": false,
  
"document_type": "boleta",
  
"products": [
  
  
{
  
  
  
"product_id": 0,
  
  
  
"variant_id": 0,
  
  
  
"options": [
  
  
  
],
  
  
  
"name": "string",
  
  
  
"quantity": 0,
  
  
  
"price": 0,
  
  
  
"note": "string"
  
  
}
  
]
}

Respuestas​

Reintento: ya existía un pedido con ese external_id (created: false), o
repetición de una Idempotency-Key (header Idempotent-Replayed: true, misma
respuesta que la original).

application/json
JSON
{
  
"error": false,
  
"created": true,
  
"order": {
  
  
"id": 0,
  
  
"external_id": "string",
  
  
"external_url": "string",
  
  
"status": {
  
  
  
"slug": "string",
  
  
  
"name": "string"
  
  
},
  
  
"is_internal": true,
  
  
"created_by_api": true,
  
  
"secure_key": "string",
  
  
"status_url": "string",
  
  
"shipping_date": "string",
  
  
"schedule_id": 0,
  
  
"schedule_text": "string",
  
  
"zone_id": 0,
  
  
"zone_text": "string",
  
  
"customer": {
  
  
  
"name": "string",
  
  
  
"email": "string",
  
  
  
"phone_code": "string",
  
  
  
"phone": "string"
  
  
},
  
  
"address": {
  
  
  
"type": "string",
  
  
  
"name": "string",
  
  
  
"street": "string",
  
  
  
"street_number": "string",
  
  
  
"more_info": "string",
  
  
  
"phone": "string",
  
  
  
"latitude": 0,
  
  
  
"longitude": 0
  
  
},
  
  
"card_message": "string",
  
  
"anonymous": true,
  
  
"total_products": 0,
  
  
"total_shipping": 0,
  
  
"total_discount": 0,
  
  
"total": 0,
  
  
"delivered_at": "string",
  
  
"created_at": "string",
  
  
"updated_at": "string",
  
  
"warnings": [
  
  
  
{
  
  
  
  
"code": "string",
  
  
  
  
"message": "string",
  
  
  
  
"reason": "string"
  
  
  
}
  
  
],
  
  
"url_photo": "string",
  
  
"photos": {
  
  
  
"xs": "string",
  
  
  
"md": "string",
  
  
  
"lg": "string"
  
  
},
  
  
"products": [
  
  
  
{
  
  
  
  
"id": 0,
  
  
  
  
"product_id": 0,
  
  
  
  
"variant_id": 0,
  
  
  
  
"shared": true,
  
  
  
  
"name": "string",
  
  
  
  
"quantity": 0,
  
  
  
  
"price": 0,
  
  
  
  
"note": "string",
  
  
  
  
"options": [
  
  
  
  
  
{
  
  
  
  
  
  
"id": 0,
  
  
  
  
  
  
"name": "string",
  
  
  
  
  
  
"quantity": 0,
  
  
  
  
  
  
"price": 0
  
  
  
  
  
}
  
  
  
  
]
  
  
  
}
  
  
],
  
  
"history": [
  
  
  
{
  
  
  
  
"status": "string",
  
  
  
  
"status_name": "string",
  
  
  
  
"message": "string",
  
  
  
  
"created_at": "string"
  
  
  
}
  
  
],
  
  
"document_type": "string",
  
  
"document": {
  
  
  
"number": "string",
  
  
  
"date": "string",
  
  
  
"file_url": "string",
  
  
  
"page_url": "string",
  
  
  
"validation": "string"
  
  
}
  
}
}

Ejemplos​

API de socios de Redfloral, versión 1 (beta).