Skip to main content
POST
/
api
/
v1
/
transfers
/
qr
curl -X POST https://qrsimple.cucu.bo/api/v1/transfers/qr \
  -H "Authorization: Bearer <tu_api_token>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -d '{
    "amount": "150.00",
    "currency": "BOB",
    "gloss": "Pedido #ORD-2026-00871",
    "expiration": "30m",
    "singleUse": true,
    "externalReference": "ORD-2026-00871",
    "metadata": {
      "orderId": "ORD-2026-00871",
      "channel": "web"
    }
  }'
{
  "transactionId": "QR2026061500001",
  "qrImageUrl": "https://cdn.cucu.bo/qr/cucu-pay/QR2026061500001.png",
  "qrImageBase64": "<base64-png>",
  "expiresAt": "2026-06-15T14:30:00Z",
  "amount": "150.00",
  "currency": "BOB",
  "status": "PENDING",
  "commerceCode": "mi-comercio",
  "externalReference": "ORD-2026-00871"
}
Genera un código QR de cobro inmediato. El QR puede ser escaneado por cualquier usuario de banca móvil en Bolivia.

Headers

HeaderTipoReqDescripción
AuthorizationstringBearer <tu_api_token>
Content-Typestringapplication/json
Idempotency-KeystringNoUUID v4. Evita cobros duplicados en reintentos. Ventana de 24 h.

Request Body

CampoTipoReqDescripción
amountstring (Decimal)Monto del cobro. Hasta 12 dígitos con 2 decimales. Mínimo 0.00.
currencystringNoMoneda. Solo "BOB". Default: "BOB".
glossstringDescripción visible del cobro. Entre 3 y 100 caracteres.
expirationstringVencimiento del QR. Ej: "30m", "2h", "7d", "2026-12-31T23:59:59Z".
singleUsebooleanNoSi true, el QR se invalida tras el primer pago. Default: true.
serviceCodestringNoCódigo de clasificación del servicio. Default: "001". Máx. 10 caracteres.
payerDocumentstring | nullNoCI/NIT del pagador esperado. Restringe el QR a ese pagador. Máx. 20 caracteres.
externalReferencestring | nullNoID interno del comercio (orden, carrito). Devuelto en respuesta y webhooks. Máx. 64 caracteres.
distributionobject | nullNoSplit de fondos {"cuenta": monto}. Solo en CUCU Direct multi-destino.
metadataobject | nullNoDatos libres del comercio. Devueltos en consulta de estado y webhooks.

Response

CampoTipoDescripción
transactionIdstringID único de la transacción en CUCU. Usar para consultas de estado.
qrImageUrlstring | nullURL pública CDN de la imagen PNG. null si el CDN falló (usar qrImageBase64).
qrImageBase64stringImagen del QR como Base64 (PNG). Siempre presente.
expiresAtstring (ISO 8601)Fecha y hora de vencimiento en UTC.
amountstringMonto confirmado del cobro.
currencystringMoneda del cobro.
statusstringEstado inicial. Siempre "PENDING" al crear.
commerceCodestringSlug identificador del comercio en CUCU.
externalReferencestring | nullLa referencia externa enviada en el request.
curl -X POST https://qrsimple.cucu.bo/api/v1/transfers/qr \
  -H "Authorization: Bearer <tu_api_token>" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: 550e8400-e29b-41d4-a716-446655440000" \
  -d '{
    "amount": "150.00",
    "currency": "BOB",
    "gloss": "Pedido #ORD-2026-00871",
    "expiration": "30m",
    "singleUse": true,
    "externalReference": "ORD-2026-00871",
    "metadata": {
      "orderId": "ORD-2026-00871",
      "channel": "web"
    }
  }'
{
  "transactionId": "QR2026061500001",
  "qrImageUrl": "https://cdn.cucu.bo/qr/cucu-pay/QR2026061500001.png",
  "qrImageBase64": "<base64-png>",
  "expiresAt": "2026-06-15T14:30:00Z",
  "amount": "150.00",
  "currency": "BOB",
  "status": "PENDING",
  "commerceCode": "mi-comercio",
  "externalReference": "ORD-2026-00871"
}