---
title: "Reporta una conversión a Meta para un contacto (pasa por la compuerta)"
method: POST
path: "/conversions"
tags: ["Conversions"]
---

# Reporta una conversión a Meta para un contacto (pasa por la compuerta)

`POST /conversions`

## Request

- Base URL: `https://api.met.meteor.com.co/api/v1`
- URL: `https://api.met.meteor.com.co/api/v1/conversions`
- Auth: one of:
  - `bearer` (a scheme the document does not define)
  - HTTP bearer

Reporta a Meta una conversión atribuida a un contacto. Pasa por la compuerta de conversiones, así que no todo lo que mandes se emite: la compuerta decide qué califica.

## Request body

- CreateConversionDto
  - `bucket` string: Unidad de unicidad del hito (order_id, appointment_id…). Default: el contacto.
  - `contact_id` number, required: items.id del contacto (`_contacts`).
  - `currency` string
  - `event_name` string, required: Nombre del evento (debe estar en la taxonomía del workspace). Para WhatsApp business_messaging, Meta exige nombres como Purchase / LeadSubmitted / InitiateCheckout (no los del Pixel web).
  - `evidence` string: Justificación del hito (para eventos que exigen corroboración).
  - `value` number

## Response `201`

- object: Sobre en el que viaja toda respuesta correcta de la API. El recurso está en `data`. Los SDKs oficiales lo desenvuelven por ti; un cliente hecho a mano tiene que leer `.data`.
  - `success` true, required: Siempre `true` en una respuesta 2xx.
  - `data` ConversionResultDto, required
    - `decision` 'accepted' | 'pending_corroboration' | 'discarded' | 'duplicate', required: Qué hizo la compuerta: - `accepted` — se emitió a Meta. - `pending_corroboration` — falta evidencia; queda esperando y se reevalúa. - `discarded` — no se emitió. `reason` dice por qué. - `duplicate` — ya se había emitido una igual (dedup por `event_id`).
    - `deliveryId` string: Entrega hacia Meta, cuando se emitió.
    - `eventId` string: `event_id` con el que viajó a Meta. Es la llave de deduplicación.
    - `eventRowId` string: Fila del libro de conversiones, para auditar después.
    - `reason` string: Por qué se descartó o quedó pendiente. Ausente cuando se aceptó.

## Other responses

- `400`: La request no es válida: un campo no pasa validación, falta un parámetro requerido o el recurso no admite la transición solicitada.
- `401`: API key ausente, inválida, revocada o expirada — o el workspace está bloqueado.
- `403`: La key está autenticada pero no puede ejecutar esta operación: scope faltante, capacidad deshabilitada, modo test restringido o recurso fuera de su cartera.
- `404`: El recurso no existe o no está disponible dentro del alcance de la key. No revela la existencia de recursos de otros tenants.
- `409`: La operación entra en conflicto con el estado actual o con un Idempotency-Key en uso. No reintentes con el mismo key y un body distinto.
- `429`: Se superó el límite por minuto de la key o la cuota del plan. Respeta `Retry-After`; el SDK ya reintenta solo.
- `500`: Error del servidor o del Met que ejecutaba. El SDK reintenta los 5xx con backoff.

---

[API](https://skmtc.dev/meteor/apis/met-public-api.md) · [All operations](https://skmtc.dev/meteor/apis/met-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/meteor/apis/met-public-api/revisions/fc6d3aad75de?raw)
