Empieza gratis

Referencia de la API

Eventos del cliente

Registra compras y otras conversiones de tu sistema, atribuidas al último mensaje enviado al contacto dentro de la ventana (7 días por defecto).

  • 2 operaciones
  • URL basehttps://api.messages.ccxcompany.co
  • AutenticaciónBearer con tu clave de API

El texto técnico de abajo viene del contrato público, openapi.json, en el idioma en que se escribió el contrato.

Lista os eventos do cliente de um período

GET/v2/events

Do mais recente para o mais antigo, com a atribuição de cada um. Permissão: contacts:read.

Parámetros

CampoDóndeTipoDescripción
fromobligatorioquerystring · date-time
toobligatorioquerystring · date-time
nameopcionalquerystring
contactIdopcionalquerystring
limitopcionalqueryinteger

Respuestas

  • 200Default Response

    Campos y ejemplo de la respuesta
    CampoTipoDescripción
    itemsobligatorioobject[]
    items[].idobligatoriostring
    items[].nameobligatoriostring
    items[].eventIdobligatoriostring
    items[].contactIdopcionalstring
    items[].contactExternalIdopcionalstring
    items[].occurredAtobligatoriostring
    items[].valueopcionalnumber
    items[].currencyopcionalstring
    items[].propertiesopcionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    items[].attributionobligatorioobject | null
    items[].attribution.messageIdobligatoriostring
    items[].attribution.channelobligatoriostringValores:whatsappsmsrcsemail
    items[].attribution.campaignIdopcionalstring
    items[].attribution.sentAtobligatoriostring
    items[].attribution.horasAteOEventoobligatorionumber
    items[].attribution.journeyIdopcionalstring
    items[].attribution.journeyStepIdopcionalstring
    items[].attribution.journeyRunIdopcionalstring
    items[].duplicateobligatorioboolean
    JSON
    {  "items": [    {      "id": "string",      "name": "string",      "eventId": "string",      "contactId": "string",      "contactExternalId": "string",      "occurredAt": "string",      "value": 0,      "currency": "string",      "properties": {},      "attribution": {        "messageId": "string",        "channel": "whatsapp",        "campaignId": "string",        "sentAt": "string",        "horasAteOEvento": 0,        "journeyId": "string",        "journeyStepId": "string",        "journeyRunId": "string"      },      "duplicate": true    }  ]}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

Las respuestas de error siguen el formato RFC 7807 (application/problem+json), con un código estable en el campo code. Ver los códigos de error

Ejemplo en curl

cURL
curl 'https://api.messages.ccxcompany.co/v2/events?from=2026-10-16T12%3A00%3A00.000Z&to=2026-10-16T12%3A00%3A00.000Z' \  -H "Authorization: Bearer $CCX_API_KEY"
Solo los campos obligatorios. Cambia los valores de ejemplo por los tuyos.

Registra um evento do cliente (conversão) e devolve a atribuição

POST/v2/events

O que aconteceu fora da mensageria — compra, visita à loja, contrato — mandado pelo seu sistema. A CCX grava e ATRIBUI ao último toque: a mensagem enviada mais recente para o mesmo contato, em qualquer canal, dentro da janela (padrão 7 dias).

`eventId` deduplica: reenviar o mesmo eventId devolve o evento já gravado com duplicate: true.

Contato: por externalId (o seu Customer ID), contactId, phone ou email. A atribuição usa as mensagens que carregaram o contato no envio — envio pela API sem contactId não é atribuível.

Permissão: contacts:write.

Cuerpo de la peticiónapplication/json

CampoTipoDescripción
nameobligatoriostringNome do evento, ex.: purchase, agenda.visita_realizada.
contactobligatorioobject
contact.externalIdopcionalstringO Customer ID do seu sistema.
contact.contactIdopcionalstring
contact.phoneopcionalstring
contact.emailopcionalstring · email
eventIdobligatoriostringId do evento no seu sistema — deduplica o reenvio.
occurredAtopcionalstring · date-timeQuando aconteceu (padrão: agora).
valueopcionalnumberValor (ex.: da compra).
currencyopcionalstringISO 4217, padrão BRL.
propertiesopcionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
attributionWindowHoursopcionalintegerJanela de atribuição em horas (padrão 168 = 7 dias; máximo 720).
Ejemplo completo del cuerpo
JSON
{  "name": "string",  "contact": {    "externalId": "string",    "contactId": "string",    "phone": "string",    "email": "user@example.com"  },  "eventId": "string",  "occurredAt": "2026-10-16T12:00:00.000Z",  "value": 0,  "currency": "string",  "properties": {},  "attributionWindowHours": 1}

Respuestas

  • 200Default Response

    Campos y ejemplo de la respuesta
    CampoTipoDescripción
    idobligatoriostring
    nameobligatoriostring
    eventIdobligatoriostring
    contactIdopcionalstring
    contactExternalIdopcionalstring
    occurredAtobligatoriostring
    valueopcionalnumber
    currencyopcionalstring
    propertiesopcionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    attributionobligatorioobject | null
    attribution.messageIdobligatoriostring
    attribution.channelobligatoriostringValores:whatsappsmsrcsemail
    attribution.campaignIdopcionalstring
    attribution.sentAtobligatoriostring
    attribution.horasAteOEventoobligatorionumber
    attribution.journeyIdopcionalstring
    attribution.journeyStepIdopcionalstring
    attribution.journeyRunIdopcionalstring
    duplicateobligatorioboolean
    JSON
    {  "id": "string",  "name": "string",  "eventId": "string",  "contactId": "string",  "contactExternalId": "string",  "occurredAt": "string",  "value": 0,  "currency": "string",  "properties": {},  "attribution": {    "messageId": "string",    "channel": "whatsapp",    "campaignId": "string",    "sentAt": "string",    "horasAteOEvento": 0,    "journeyId": "string",    "journeyStepId": "string",    "journeyRunId": "string"  },  "duplicate": true}
  • 201Default Response

    Campos y ejemplo de la respuesta
    CampoTipoDescripción
    idobligatoriostring
    nameobligatoriostring
    eventIdobligatoriostring
    contactIdopcionalstring
    contactExternalIdopcionalstring
    occurredAtobligatoriostring
    valueopcionalnumber
    currencyopcionalstring
    propertiesopcionalobjectMetadados de correlação do seu sistema (ex.: customerId, journeyId), devolvidos intactos em todo webhook desta mensagem. Até 20 chaves; chave começa por letra e usa [A-Za-z0-9_.-] (até 64); valor é texto (até 256), número ou booleano. Não envie dado pessoal aqui.
    attributionobligatorioobject | null
    attribution.messageIdobligatoriostring
    attribution.channelobligatoriostringValores:whatsappsmsrcsemail
    attribution.campaignIdopcionalstring
    attribution.sentAtobligatoriostring
    attribution.horasAteOEventoobligatorionumber
    attribution.journeyIdopcionalstring
    attribution.journeyStepIdopcionalstring
    attribution.journeyRunIdopcionalstring
    duplicateobligatorioboolean
    JSON
    {  "id": "string",  "name": "string",  "eventId": "string",  "contactId": "string",  "contactExternalId": "string",  "occurredAt": "string",  "value": 0,  "currency": "string",  "properties": {},  "attribution": {    "messageId": "string",    "channel": "whatsapp",    "campaignId": "string",    "sentAt": "string",    "horasAteOEvento": 0,    "journeyId": "string",    "journeyStepId": "string",    "journeyRunId": "string"  },  "duplicate": true}
  • 400RFC 7807 problem details for BAD_REQUEST (400).

  • 401RFC 7807 problem details for UNAUTHORIZED (401).

  • 403RFC 7807 problem details for FORBIDDEN (403).

  • 422RFC 7807 problem details for VALIDATION_ERROR (422).

Las respuestas de error siguen el formato RFC 7807 (application/problem+json), con un código estable en el campo code. Ver los códigos de error

Ejemplo en curl

cURL
curl -X POST 'https://api.messages.ccxcompany.co/v2/events' \  -H "Authorization: Bearer $CCX_API_KEY" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "contact": {},    "eventId": "string"  }'
Solo los campos obligatorios. Cambia los valores de ejemplo por los tuyos.

¿Atascado en una ruta? Habla con quienes mantienen la API.

Si creas la cuenta desde la web, recibes 5 US$ de crédito de prueba.