Asociar un pago a una factura
Descripción general
En la gran mayoría de los casos, los clientes pagan a tu billetera cripto exactamente el importe indicado en la factura. Pero a veces un cliente se equivoca y paga algo distinto del importe reservado. En ese caso, el servicio no puede asociar automáticamente el pago a la factura y marcar la factura como pagada. Si esto ocurre, tú como comercio puedes asociar el pago a la factura manualmente, siempre que tengas la certeza de qué pago esperas. Puedes hacerlo en el panel o a través de la API.
Condiciones de la asociación
La asociación solo se realiza cuando se cumplen todas las condiciones a la vez:
- Estado de la factura —
unpaidoexpired. Las facturas canceladas y las ya pagadas no se pueden asociar. La cancelación es irreversible. - El pago aún no está asociado a otra factura. Un pago solo puede vincularse a una factura.
- El pago llegó a una billetera que participa en esta factura.
- El pago entra en la ventana de pago disponible —24 horas antes y 24 horas después de la creación de la factura. Un pago que llegó antes de crearse la factura puede asociarse; uno fuera de la ventana, no.
Si la factura pertenece a otro proyecto y la clave está restringida a un proyecto, el método responde con Restricted project. Si falla cualquier otra condición, vuelve un error genérico sin indicar el motivo —comprueba las condiciones en tu lado.
Qué ocurre después de la asociación
- La factura pasa a Pagada.
- Las notificaciones salen al correo, al bot de Telegram y al Webhook URL —igual que con la asociación automática.
- El importe de la factura
invoice.amountFiatUSDse sobrescribe con el importe realmente recibido, convertido a USD al tipo de cambio del momento de la asociación. El importe original eninvoice.amountFiatno cambia. - La comisión del servicio se recalcula según la tarifa del proyecto sobre el importe que recibiste. Con un pago en exceso es mayor que la calculada al crear la factura; con un pago insuficiente, menor.
Solicitud
curl -X POST https://api.bitsby.app/invoices/bindPayment \
-H "Authorization: Token MSvL2ltaDZdWVjmZURURMVWhqSJLT2NURjhL2Fla1Z1T1IxQTltKs1T3Ay" \
-F "invoiceId=ade9550d-3dc7-4fd3-b94e-3b4c12aaaa0c" \
-F "paymentId=a4c9e2ee-9a03-43e5-a1a1-00caf679d16a"
Parámetros de la solicitud
| Parámetro | Tipo de dato | Descripción | Ejemplo | ¿Obligatorio? |
|---|---|---|---|---|
invoiceId | UUID | ID de la factura en formato UUID | ade9550d-3dc7-4fd3-b94e-3b4c12aaaa0c | sí |
paymentId | UUID | ID del pago en formato UUID | a4c9e2ee-9a03-43e5-a1a1-00caf679d16a | sí |
Ejemplo de respuesta
{
"result":"success",
"data":"Invoice binded to payment"
}