Ir al contenido

Tipos compartidos

Tipos y campos que aparecen como subobjetos del objeto padre cuando la interacción los usa. Esta página es referencia transversal: todas las páginas del protocolo (iframe, estado, webhooks) reusan estos shapes.

Todas las interacciones del protocolo —postMessage e HTTP— usan este objeto. Los campos que no apliquen a una interacción específica se omiten.

CampoTipoDescripción
typeenumFamilia del mensaje en postMessage. Hoy se usa solo para display (configuración visual del iframe, ej: autosize), donde es obligatorio porque no hay status. Los mensajes del protocolo de negocio (ready, context, selección, etc.) no llevan type. No aplica a mensajes HTTP.
statusenumDiscriminador del paso/evento del protocolo de negocio. Obligatorio en todos los mensajes de protocolo (postMessage e HTTP). No aplica a type: "display". Ver tabla de valores en iframe y en los webhooks.
interactionstringID opaco emitido por el partner. Identifica una operación del partner. Aparece en postMessage y en las responses HTTP del partner. En los endpoints HTTP server-to-server viaja solo en la URL (/{interaction} / /{interaction}/events); los bodies de los webhooks de Crowder no lo repiten.
localestringBCP 47.
currencystringISO 4217. Moneda de toda la interacción (vive a nivel raíz, no por item).
eventInfoEventInfoDatos del evento (id, nombre, fecha).
venueVenueDatos del lugar del evento (nombre, ciudad, país).
userUserDatos del comprador.
itemsTicketItem[]Items de Crowder (tickets). Solo presentes cuando Crowder los envía como contexto al iframe.
partnerItemsPartnerItem[]Items del partner. Es lo que el partner ofrece o lo que quedó seleccionado en el iframe. Cada item declara refundable desde confirmed.
itemsRefundItem[]Items a devolver. Solo viaja en el webhook purchaseRefunded. Shape: uuid, quantity.
sizesSizesDimensiones que el iframe le informa al host para que ajuste el <iframe> sin scroll. Viaja únicamente en mensajes type: "display".

| completion | Completion | Política de obligatoriedad del slot. Lo emite Crowder hacia el iframe dentro de context. | | expiresAt | string ISO 8601 | Hasta cuándo el partner garantiza la reserva (precio + stock). Nace cuando el partner recibe purchaseReserved (lo devuelve en el ack), y se omite en cualquier otra interacción. Solo aparece en el GET de estado mientras el lifecycle sea reserved. | | purchase | Purchase | Datos de la compra. | | refund | Refund | Datos de la devolución. | | url | string | URL del partner asociada a la operación (ej: voucher, comprobante, página de detalle). Emitida por el partner únicamente en respuestas post-compra (confirmed, refunded). | | error | Error | Detalle del error o motivo. | | notes | string | Texto libre del partner para Crowder. ≤ 500 chars. |

Subobjeto dentro de un TicketItem cuando el evento exige nominación. Cuando holder está presente, los cuatro campos son obligatorios; si no aplica, el campo se omite por completo del item.

{
"firstName": "Juan",
"lastName": "Pérez",
"documentType": "DNI",
"documentNumber": "30123456"
}

documentType: DNI | CPF | RG | PASSPORT | OTHER.

{
"id": 16349,
"name": "Coldplay — River Plate",
"startAt": "2026-11-15T21:00:00-03:00"
}
{
"name": "Estadio Monumental",
"city": "Buenos Aires",
"country": "AR"
}
{
"email": "juan.perez@example.com",
"firstName": "Juan",
"lastName": "Pérez",
"country": "AR"
}

firstName, lastName y country son opcionales.

{ "id": 987654, "amount": 120000.00 }

amount es opcional: Crowder puede emitir Purchase con solo id cuando el monto no aplica o se resuelve fuera de banda.

{
"amount": 120000.00,
"reason": "user_request",
"refundedAt": "2026-05-01T09:59:30Z",
"refundId": "ref_xyz789"
}

reason: user_request | cancelled_by_partner | chargeback | fraud | other. Los valores chargeback y fraud bypasean el flag refundable de los items (la plata ya se fue; el partner debe revertir el fulfillment correspondiente).

{ "uuid": "TICKET-VIP", "quantity": 1 }

Subset de los partnerItems vigentes que Crowder pide devolver. Si abarca todos los items vigentes, la interacción transiciona a refunded; si es subset, queda en confirmed con partnerItems reducido.