Cotizaciones
Fija el precio de un pago antes de hacerlo. Sabes cuánto sale y cuánto llega, con todo incluido.
POST/v1/quotes
201
| Campo | Obligatorio | Qué es |
|---|---|---|
source_currency | Sí | La moneda que sale de tu saldo. |
destination_currency | Sí | La moneda que recibe el beneficiario. |
amount | Sí | El monto. |
amount_side | Sí | destination: el monto es lo que recibe el beneficiario. source: es lo que sale de tu saldo. |
method | Para un pago | El método del beneficiario. |
{
"id": "quo_01m3sgaz0000000000000000",
"status": "open",
"method": "bank_transfer",
"source": {
"currency": "USDT",
"principal": "100.000000",
"platform_fee": "0.500000",
"tenant_markup": "0.000000",
"total": "100.500000"
},
"destination": { "amount": "350.00", "currency": "PEN" },
"rate": "3.500000000000000000",
"created_at": "2026-10-18T14:00:10Z",
"expires_at": "2026-10-18T14:01:40Z"
}| Campo | Qué es |
|---|---|
source.total | Lo que se descontará de tu saldo: principal + platform_fee + tenant_markup. |
source.tenant_markup | Tu margen, si tienes uno configurado. Se acredita en tus earnings. |
destination.amount | Lo que recibe el beneficiario. |
rate | Unidades de destino por unidad de origen, con los márgenes incluidos. |
expires_at | Hasta cuándo vale el precio. |
Reglas
- Una cotización paga una sola operación. Al usarla pasa a
used; usarla otra vez responde409 quote_already_used. - Vence. Normalmente en unos 90 segundos, a veces antes. Usa
expires_at, no una cuenta fija. Vencida responde422 quote_expired: pide otra. - Debe coincidir con el beneficiario. Su
methody sudestination_currencydeben ser los del beneficiario, o recibes422 quote_mismatch. - Si el pago falla por falta de fondos, la cotización ya quedó usada: pide una nueva para reintentar.
Errores de precio: pricing_unavailable (no hay precio ahora), amount_too_small, same_currency.