Idempotencia
El campo reference
Sección titulada «El campo reference»B4bit Pay no expone una cabecera Idempotency-Key estándar, pero ofrece un equivalente funcional: el campo reference del POST /orders/.
- Tipo: string.
- Longitud: 1-256 caracteres.
- Alcance: usted decide el formato y la unicidad.
Recomendaciones
Sección titulada «Recomendaciones»- Use el ID interno de su pedido como
reference. Por ejemplo, si su e-commerce genera pedidosORD-2026-04-17-000123, páselo tal cual. - Garantice unicidad: si reintenta el
POST /orders/tras un timeout, no debería crear una orden duplicada en su sistema. Controle el reintento con una tabla local y un únicoreferencepor intento. - Persista el
identifierdevuelto por B4bit Pay junto a sureferencepara hacer lookups bidireccionales. - Formato recomendado: UUID v4 o
{tipo}-{fecha}-{id}-{random}(por ejemploORD-20260417-000123-ab34).
Reconciliación
Sección titulada «Reconciliación»Cuando reciba un webhook, úselo para localizar su pedido interno por reference:
// pseudocódigoasync function handleWebhook(body) { const order = await db.orders.findOne({ b4bit_identifier: body.identifier }); if (!order) { // no debería pasar si persistió `reference` + `identifier` al crear. logger.warn('Webhook de orden desconocida', { identifier: body.identifier }); return; } await db.orders.updateStatus(order.id, body.status, body);}Qué NO usar como reference
Sección titulada «Qué NO usar como reference»- ❌ El email del cliente (no único por pedido).
- ❌ El importe (no único por pedido).
- ❌ Un timestamp en segundos sin otro factor (colisiones fáciles bajo carga).