API de Ventas CashOut

Emite ventas desde tu propio sistema —tu ERP, tu e-commerce, tu app de reparto— sin pasar por el dashboard. Dos llamadas: validas la clave del comercio y creas la venta. El resto de la recaudación la hace PayDay.

GET  /codes/482913/read
→ 200  Minimarket El Sol · cupo $450.000

POST /sales/sale?credit_line_id=1204
→ 200  venta #9871 · PRE_SALE
       qr eyJfcmFpbHMiOnsibWVzc2FnZSI6...

Cómo funciona

1

El comercio te da su clave

Genera un código de 6 dígitos en su app y te lo dicta. Es de un solo uso y queda atado a ti como proveedor.

2

Validas la clave

Recibes con quién estás tratando y cuánto puedes venderle: nombre, rubro y cupo disponible contigo.

3

Creas la venta

Envías monto, tipo y cuotas. Recibes el QR que el comercio muestra al recibir la mercadería.

4

Se escanea al entregar

Tu vendedor escanea ese QR con la app CashOut. Ahí se cobra el inicial y nacen las cuotas.

Autenticación

Toda llamada va con tu API key en la cabecera Authorization. La clave identifica a tu empresa como proveedor: las ventas que emitas se registran contra tus líneas de crédito, y solo puedes operar sobre comercios que trabajan contigo.

Cabecera
Authorization: Bearer sk_live_TU_API_KEY
Content-Type: application/json

La clave es un secreto de servidor: no la incrustes en una app móvil ni en JavaScript de navegador, porque cualquiera podría emitir ventas a tu nombre. Guárdala como variable de entorno y llama a la API desde tu backend.

URL basehttps://api.paydayapp.cl/api

Arma tu llamada

Cambia los valores y mira cómo queda la petición — y, sobre todo, qué va a pagar el comercio. El desglose se calcula con las mismas reglas que aplica el servidor, así que si acá se ve válido, la llamada va a pasar.

Define cuánto paga al recibir (por defecto el 50%). El resto, en cuotas diarias.

Cupo del comercio en el ejemplo: $450.000

Si lo omites, el campo no viaja y el backend propone el 50%.

Lo que va a pagar el comercio

Paga al recibir (50% propuesto)$150.000
Saldo en cuotas$150.000
29 cuotas diarias de aprox.$5.172

Paso 1 · validar la clave del comercio

cURL
curl 'https://api.paydayapp.cl/api/codes/482913/read' \
  -H 'Authorization: Bearer sk_live_TU_API_KEY'

Paso 2 · crear la venta

cURL
curl -X POST 'https://api.paydayapp.cl/api/sales/sale?credit_line_id=1204' \
  -H 'Authorization: Bearer sk_live_TU_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
    "data": {
      "amount": 300000,
      "dinamic_key": "482913",
      "commerce_id": 845,
      "qr_type": "flexible",
      "frequency": 30
    }
  }'

Referencia

GET/codes/{clave}/read

Validar la clave del comercio

El comercio genera una clave de 6 dígitos en su app y te la dicta. Al validarla recibes con quién estás tratando y cuánto puedes venderle.

  • La clave es de un solo uso: al leerla queda marcada como usada. Si el pedido se cae, el comercio tiene que generar una nueva.
  • El `credit_line.id` que devuelve es el que necesitas para crear la venta en el paso siguiente.
  • `credit_line.amount_cents` es el cupo disponible de ese comercio contigo, no su cupo total en PayDay.

Parámetros

CampoTipoRequeridoDescripción
clavestring (path)Los 6 dígitos que muestra la app del comercio.6 dígitos numéricos
sale_frequencyinteger (query)NoCantidad de cuotas que dejas fijada desde ya. Si la envías, manda sobre la que indiques al crear la venta.entre 2 y 60

Respuesta

200 OK · JSON
{
  "status": 200,
  "success": true,
  "message": "Code is valid and has been used",
  "code": "482913",
  "sale_frequency": 30,
  "provider_id": 12,
  "commerce": {
    "id": 845,
    "name": "Minimarket El Sol",
    "email": "[email protected]",
    "rut": "76.543.210-K",
    "commercial_info": {
      "type_business": "Minimarket",
      "line_business": "Abarrotes"
    },
    "credit_line": {
      "id": 1204,
      "amount_cents": 45000000,
      "amount_clp": "$450.000 CLP",
      "frequency": 30
    }
  }
}
POST/sales/sale?credit_line_id={credit_line_id}

Crear la venta

Registra la venta, descuenta el cupo del comercio y devuelve el QR que se escanea al entregar la mercadería.

  • La venta nace en `PRE_SALE`: existe y el cupo queda reservado, pero todavía no se cobró nada.
  • El campo `qr` es un string cifrado, no una imagen. Renderízalo como código QR con la librería que uses.
  • El cobro ocurre recién cuando ese QR se escanea en la app CashOut al momento de la entrega.
  • Ojo con el nombre del campo: el backend espera `dinamic_key`, con esa grafía.

Parámetros

CampoTipoRequeridoDescripción
credit_line_idinteger (query)El `credit_line.id` que devolvió la validación de la clave.
data.amountnumberMonto total de la venta, en pesos.mayor a 0 y menor o igual al cupo disponible
data.dinamic_keystringLa misma clave de 6 dígitos que validaste.
data.commerce_idintegerEl `commerce.id` que devolvió la validación.
data.qr_type"flexible" | "full_payment"NoTipo de venta. `flexible` cobra un inicial y reparte el saldo en cuotas; `full_payment` cobra el 100% de una vez.por defecto: flexible
data.frequencyintegerDependeCantidad de cuotas. Requerido en `flexible`; se ignora en `full_payment`.entre 2 y 60
data.chosen_initial_amountnumberNoMonto que paga el comercio al recibir. Si lo omites, se propone el 50% y se confirma al escanear.$0, o entre $50 y menos que el total
data.installments_start_datestring (YYYY-MM-DD)NoDesde qué día arrancan las cuotas del saldo. Solo aplica a `flexible`.no puede estar en el pasado
data.activation_mode"immediate" | "scheduled"NoSolo `full_payment`. `scheduled` deja la venta reservada y la cobra sola en la fecha indicada.por defecto: immediate
data.scheduled_activation_atstring (YYYY-MM-DD)DependeFecha del cobro. Requerido cuando `activation_mode` es `scheduled`.debe ser futura
data.service_charge_enabledbooleanNoSi va en `false`, la venta se emite sin cargo por servicio.por defecto: true

Respuesta

200 OK · JSON
{
  "status": 200,
  "message": "Sale created successfully",
  "data": {
    "id": 9871,
    "status": "PRE_SALE",
    "qr_type": "FLEXIBLE",
    "amount_cents": 30000000,
    "amount_clp": "$300.000 CLP",
    "remaining_amount_cents": 30000000,
    "frequency": 30,
    "chosen_initial_amount_cents": 15000000,
    "credit_line_id": 1204,
    "dinamic_key": "482913",
    "qr": "eyJfcmFpbHMiOnsibWVzc2FnZSI6IkltRmlj..."
  }
}

Qué pasa después

Tu integración termina cuando creas la venta, pero conviene saber por dónde sigue: el estado que consultes más adelante va a ser uno de estos.

PRE_SALE

Venta creada

Tu llamada terminó acá. El cupo del comercio ya quedó reservado, pero no se cobró nada todavía.

RESERVED

Escaneada, sin cobrar

Solo si el inicial se paga en efectivo o el pago total quedó programado. Alguien tiene que confirmarlo.

PENDING

Entregada y cobrando

Se escaneó el QR, se cobró el inicial y las cuotas del saldo están corriendo.

PAID

Saldada

Todas las cuotas se pagaron. La venta se cierra sola.

Errores

EstadoCuándoQué hacer
401La API key falta, está mal escrita o fue revocada.Authorization token is missing or invalid.Revisa la cabecera `Authorization`. Si el problema persiste, pide una clave nueva.
403CREDIT_LINE_SUSPENDEDEl comercio acumuló 9 cobros fallidos contigo.El comercio está suspendido con este proveedor por cuotas impagas.La respuesta trae `amount_to_regularize_cents`: el comercio debe regularizar esa deuda. La suspensión es solo contigo, no con otros proveedores.
404La clave no existe.Code not foundVerifica los 6 dígitos con el comercio.
422La clave ya fue usada.Code has already been usedPídele al comercio que genere una clave nueva.
422El monto supera el cupo disponible.Insufficient credit line. Available: $X CLP, Requested: $Y CLPBaja el monto o espera a que el comercio libere cupo pagando cuotas.
422El reparto deja cuotas bajo el mínimo cobrable.El monto restante es muy bajo para dividir en N cuotas cobrables (mínimo $50 CLP por cuota)Sube el monto inicial o baja la cantidad de cuotas.
422Enviaste un `qr_type` que ya no existe.qr_type 'standard' está obsoleto, usá 'flexible'`standard` y `variable_amount` se fusionaron en `flexible`.

¿Listo para integrar?

Te damos una API key de pruebas y un comercio de test para que puedas emitir ventas sin mover dinero real.