Saltearse al contenido

La búsqueda solo está disponible en las versiones de producción. Intenta construir y previsualizar el sitio para probarlo localmente.

Crear una cotización

Una cotización fija los importes, la tasa de cambio y la comisión de un pago y lista los pagadores que pueden entregarlo. Después la ejecutas con Ejecutar una transacción. Una cotización es válida durante 30 minutos.

Endpoint

POST/api/v1/pay-out/quotations

Autenticación: HTTP Basic con tu clave y tu secreto API. Consulta Autenticación.

Cuerpo

CampoTipoObligatorioDescripción
external_identifierstringSíTu ID único para este pago, hasta 255 caracteres. Se convierte en la reference de la cotización y es la clave de idempotencia (ver abajo).
modestringSíSOURCE_AMOUNT: tú fijas el importe a enviar. DESTINATION_AMOUNT: tú fijas el importe que recibe el beneficiario.
transaction_typestringSíC2C, C2B, B2C o B2B.
service_idintegerSíID de servicio que Cashela te facilita para tu integración.
pay_out_service_idintegerNoLimita la cotización a un servicio. Usa un id de Servicios de pago.
payer_idintegerNoLimita la cotización a un pagador. Usa un id de Pagadores.
source.currencystringSíMoneda desde la que envías (ISO 4217). Debe ser la moneda de una de tus billeteras activas.
source.country_iso_codestringSíCódigo de 3 letras del país de envío, por ejemplo USA.
source.amountnumberCon SOURCE_AMOUNTImporte a enviar.
destination.currencystringSíMoneda que recibe el beneficiario, por ejemplo COP.
destination.country_iso_codestringSíCódigo de 3 letras del país de destino, por ejemplo COL.
destination.amountnumberCon DESTINATION_AMOUNTImporte que recibe el beneficiario.

Los importes son números positivos con dos decimales como máximo, de 0.01 a 99999999.99. Los códigos de moneda y de país no distinguen mayúsculas.

Ejemplo

Ventana de terminal
curl -X POST "https://sandbox-api.cashela.com/api/v1/pay-out/quotations" \
-u "$CASHELA_API_KEY:$CASHELA_API_SECRET" \
-H "Content-Type: application/json" \
-H "Accept: application/json" \
-H "X-Trace-Id: 6f1d2c4e-8b0a-4a57-9c1e-2f3a4b5c6d7e" \
-d '{
"external_identifier": "payout-2026-000123",
"mode": "SOURCE_AMOUNT",
"transaction_type": "C2C",
"service_id": 1,
"source": { "amount": 100, "currency": "USD", "country_iso_code": "USA" },
"destination": { "currency": "COP", "country_iso_code": "COL" }
}'
{
"success": true,
"data": {
"id": 98765,
"reference": "payout-2026-000123",
"external_identifier": "payout-2026-000123",
"status": "ONHOLD",
"status_message": null,
"idempotency": { "key": "payout-2026-000123", "external_identifier": "payout-2026-000123" },
"mode": "SOURCE_AMOUNT",
"transaction_type": "C2C",
"source": { "amount": 100, "currency": "USD", "country_iso_code": "USA" },
"destination": { "amount": 395000, "currency": "COP", "country_iso_code": "COL" },
"sent_amount": { "amount": 100, "currency": "USD" },
"wholesale_fx_rate": 3950,
"fee": { "amount": 3.5, "currency": "USD" },
"creation_date": "2026-10-19T12:00:00.000000Z",
"expiration_date": "2026-10-19T12:30:00.000000Z",
"payers_available": [
{ "id": 123, "name": "Example Bank", "currency": "COP", "country": "COL", "service": { "id": 2, "name": "Bank deposit" } }
],
"next_action": { "type": "execute_transaction", "endpoint": "..." }
},
"message": "Quotation created successfully."
}

Los importes, tasas e IDs son ilustrativos. Una llamada correcta responde 200.

Campos de la respuesta

CampoTipoDescripción
idintegerID de la cotización en Cashela.
referencestringReferencia de la cotización. Es tu external_identifier. Úsala en la ruta de la transacción.
external_identifierstringTu ID, devuelto tal cual.
statusstringONHOLD mientras se puede ejecutar, EXPIRED pasados 30 minutos. Una vez ejecutada, sigue a la transacción (PROCESSING, COMPLETED, FAILED).
status_messagestring o nullDetalle del estado, si lo hay.
idempotencyobjectLa cabecera Idempotency-Key que enviaste (o tu external_identifier si no enviaste ninguna) y tu external_identifier.
modestringModo que pediste.
transaction_typestringTipo de transacción que pediste.
sourceobjectImporte enviado, moneda y país.
destinationobjectImporte que recibe el beneficiario, moneda y país.
sent_amountobjectImporte enviado y su moneda.
wholesale_fx_ratenumberTasa de cambio aplicada a la cotización.
feeobjectComisión y su moneda (la moneda de origen).
creation_datestringCuándo se creó la cotización.
expiration_datestringCuándo caduca (30 minutos después de crearse).
payers_availablearrayPagadores que pueden entregar este pago: id, name, currency, country, service. Elige uno para la transacción.
next_action.typestringSiempre execute_transaction.

Idempotencia

La cotización se identifica por tu external_identifier:

  • Si envías otra vez el mismo cuerpo con el mismo external_identifier, recibes la cotización existente. No se crea otra.
  • Si envías un cuerpo distinto con un external_identifier que ya usaste, recibes 409 A quotation already exists for this external_identifier or idempotency key with a different payload.
  • Si la cotización existente ha caducado, la repetición la devuelve con estado EXPIRED. Crea una cotización nueva con un external_identifier nuevo.

Errores

EstadoMensaje (ejemplos)Qué hacer
422Validation failed. con errorsCorrige los campos que aparecen en errors. Una source.currency que no es moneda de ninguna de tus billeteras falla aquí.
422No eligible PayOut candidate was found for the requested destination.Ningún pagador atiende ese país, moneda y filtros. Revisa los catálogos.
422No PayOut quote could be calculated for the requested operation.Ningún pagador pudo cotizar ese importe. Prueba otro importe o pagador, o contacta con Cashela.
422The selected pay_out_service_id is not valid.Usa un id de Servicios de pago.
409A quotation already exists for this external_identifier ...Consulta Idempotencia.
503Exchange rate is currently unavailable for this destination.Reintenta más tarde.

Los errores de autenticación están en la descripción general.

Consultar una cotización

GET/api/v1/pay-out/quotations/{reference}

Devuelve el mismo objeto que la creación. {reference} es la reference de la cotización (tu external_identifier). Una referencia desconocida devuelve 404 Quotation not found for this partner.

Ventana de terminal
curl "https://sandbox-api.cashela.com/api/v1/pay-out/quotations/payout-2026-000123" \
-u "$CASHELA_API_KEY:$CASHELA_API_SECRET" \
-H "Accept: application/json"

Vista previa sin guardar

POST /api/v1/pay-out/calculate recibe el mismo cuerpo que una cotización (external_identifier es opcional) y devuelve las cotizaciones que pueden ofrecer los pagadores, sin crear una cotización. Úsalo para mostrar una estimación antes de que el usuario confirme.

La respuesta trae status: "calculated", una selected_quote (la que elegiría Cashela) y available_quotes. En cada una, lee:

CampoDescripción
pay_out_payer_idPagador de esta cotización.
payer_nameNombre del pagador.
amounts.send_amountImporte enviado.
amounts.receiving_amountImporte que recibe el beneficiario.
amounts.amount_paidImporte que se toma de tu billetera.
fee.estimated_feeComisión.
rate.platform_rateTasa de cambio.

Una vista previa no reserva la tasa. Crea una cotización para fijarla.

Siguiente paso

Ejecuta la transacción con la reference de la cotización y uno de los payers_available.