ARCA {API}
Cobros

Consultar el estado del cobro

Consultá si un comprobante fue pagado, con verificación activa opcional contra Mercado Pago.

Informa el estado de cobro de un comprobante. Es el camino soportado para enterarte de un pago: arca.api no emite webhooks salientes.

Endpoint

POST /api/wsfe/comprobante/cobro/estado

Funciona con cualquier scope de key, incluido read_only: consultar si te pagaron no modifica nada. Ver Scopes de API key.

Request

curl -X POST https://arca.api.com.ar/api/wsfe/comprobante/cobro/estado \
  -H "Authorization: Bearer ak_TuSecretoAqui" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "produccion",
    "representada": "27111111118",
    "cbteTipo": 6,
    "ptoVta": 1,
    "cbteNro": 42
  }'

Parámetros

CampoTipoDescripción
environment"homologacion" | "produccion"Entorno del comprobante
representadastring (11 dígitos)CUIT representado que emitió
cbteTiponumberTipo de comprobante
ptoVtanumberPunto de venta
cbteNronumberNúmero de comprobante
verificarboolean (opcional)Consulta activa contra Mercado Pago. Default false. Ver Verificación activa

Cobro pendiente

Status: 200

{
  "found": true,
  "paymentStatus": "pending",
  "initPoint": "https://www.mercadopago.com.ar/checkout/v1/redirect?pref_id=123456789-abcd-...",
  "amount": 24200,
  "mpPaymentId": null,
  "paidAt": null,
  "createdAt": "2026-07-18T10:00:00.000Z"
}

Cobro pagado

Status: 200

{
  "found": true,
  "paymentStatus": "paid",
  "initPoint": "https://www.mercadopago.com.ar/checkout/v1/redirect?pref_id=123456789-abcd-...",
  "amount": 24200,
  "mpPaymentId": "1234567890",
  "paidAt": "2026-07-20T14:03:11.000Z",
  "createdAt": "2026-07-18T10:00:00.000Z"
}
CampoTipoDescripción
foundbooleanSi el comprobante tiene un cobro asociado
paymentStatus"pending" | "paid"Estado del cobro
initPointstringLink de pago
amountnumberImporte del cobro, en pesos
mpPaymentIdstring | nullIdentificador del pago en Mercado Pago. Sólo cuando está pagado
paidAtstring | nullFecha de acreditación (ISO 8601, UTC). Sólo cuando está pagado
createdAtstringCuándo se generó el link (ISO 8601, UTC)

Status: 200

{ "found": false }

No es un error: el comprobante existe, simplemente nunca se le generó link. Puede ser porque la cuenta no tenía Mercado Pago conectado al emitir, porque la moneda no es cobrable, o porque todavía no lo pediste. Generalo si corresponde.

Si el comprobante no existe, en cambio, la respuesta es 404.

Verificación activa

Por defecto la consulta sólo lee el estado guardado: es barata y apta para consultar seguido.

Con verificar: true le preguntamos a Mercado Pago por el pago de ese comprobante y, si está aprobado, lo marcamos como pagado en el momento —la misma transición que aplicaría la notificación automática, y idempotente: repetirla sobre un cobro ya pagado no cambia nada ni altera los datos del pago.

curl -X POST https://arca.api.com.ar/api/wsfe/comprobante/cobro/estado \
  -H "Authorization: Bearer ak_TuSecretoAqui" \
  -H "Content-Type: application/json" \
  -d '{
    "environment": "produccion",
    "representada": "27111111118",
    "cbteTipo": 6,
    "ptoVta": 1,
    "cbteNro": 42,
    "verificar": true
  }'

La respuesta es la misma ya actualizada, más un campo verificacion que dice qué pasó al preguntar:

{
  "found": true,
  "paymentStatus": "paid",
  "initPoint": "https://www.mercadopago.com.ar/checkout/v1/redirect?pref_id=123456789-abcd-...",
  "amount": 24200,
  "mpPaymentId": "1234567890",
  "paidAt": "2026-07-20T14:03:11.000Z",
  "createdAt": "2026-07-18T10:00:00.000Z",
  "verificacion": { "status": "paid", "invoiceId": "…" }
}
verificacion.statusQué significa
"paid"Se encontró el pago aprobado y el cobro pasó a pagado
"pending"Preguntamos y no hay pago aprobado todavía
"skipped"No había nada que conciliar (reason lo explica: ya estaba pagado, no hay link, o la cuenta no tiene Mercado Pago conectado)
"failed"No pudimos preguntar (error lo explica). El paymentStatus que ves es el guardado, no uno verificado

"pending" y "failed" no son lo mismo, y confundirlos es el peor error posible acá. "pending" es preguntamos y no te pagaron; "failed" es no pudimos preguntar. Si vas a dar por impago a un cliente, exigí verificacion.status === "pending", no simplemente paymentStatus === "pending".

El campo verificacion sólo aparece cuando mandás verificar: true.

Patrón recomendado para detectar un pago

Como no hay webhooks salientes, detectar un pago es consultar. La forma sensata:

  1. Consultá espaciado, sin verificar. La consulta simple sólo lee la base y es barata; en el caso normal la notificación de Mercado Pago ya actualizó el estado y la vas a ver acá. Un intervalo de minutos alcanza — un pago no es un evento de milisegundos.
  2. Usá verificar: true antes de tomar una decisión, no en cada vuelta del ciclo. Cada verificación es una llamada a Mercado Pago. Los momentos que lo justifican: antes de dar por impago a un cliente, antes de mandar un recordatorio, antes de cortar un servicio, o cuando el pago viene demorado más de lo razonable.
  3. Distinguí "pending" de "failed" en verificacion, como dice el aviso de arriba.
  4. Dejá de consultar cuando paymentStatus sea "paid". Un cobro pagado no vuelve atrás.

Conciliación automática por webhook

Cuando alguien paga, Mercado Pago nos notifica y actualizamos el cobro solos. Ése es el camino rápido, y en el caso normal el estado ya está actualizado cuando consultás.

Validamos la firma de cada notificación antes de tocar nada, y la transición a pagado es idempotente: la misma notificación repetida no marca dos veces.

Aun así, no dependas sólo de eso. Una notificación puede perderse por razones mundanas —nuestro endpoint caído durante un despliegue, los reintentos agotados—, y cuando se pierde el cobro queda pendiente en silencio: cobraste y el sistema dice que no.

Por eso existe verificar: true: es un camino que no depende de que la notificación llegue. Si tu proceso no puede tolerar un pago que quede sin registrar, verificá activamente antes de decidir.

Errores

No hay 403 por scope: este endpoint funciona con keys de solo lectura. No consume cuota del plan.

En esta página