Saltar al contenido principal

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:

  1. Estado de la facturaunpaid o expired. Las facturas canceladas y las ya pagadas no se pueden asociar. La cancelación es irreversible.
  2. El pago aún no está asociado a otra factura. Un pago solo puede vincularse a una factura.
  3. El pago llegó a una billetera que participa en esta factura.
  4. 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.amountFiatUSD se sobrescribe con el importe realmente recibido, convertido a USD al tipo de cambio del momento de la asociación. El importe original en invoice.amountFiat no 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ámetroTipo de datoDescripciónEjemplo¿Obligatorio?
invoiceIdUUIDID de la factura en formato UUIDade9550d-3dc7-4fd3-b94e-3b4c12aaaa0c
paymentIdUUIDID del pago en formato UUIDa4c9e2ee-9a03-43e5-a1a1-00caf679d16a

Ejemplo de respuesta

{
"result":"success",
"data":"Invoice binded to payment"
}