Una llave de un ambiente se rechaza en el otro con
401. Mientras integras, usa solo la llave de prueba y la URL del sandbox.1
Consigue tu llave de prueba
Pide a AC-PAY una llave Envíala en cada solicitud:
acpay_test_... para tu comercio. Guárdala como un secreto de tu servidor (por ejemplo, en una variable de entorno), nunca en el código ni en una aplicación web o móvil.Authorization: Bearer $ACPAY_TEST_KEY.2
Revisa tus secuencias
Para emitir necesitas una secuencia de e-NCF vigente del tipo que vas a usar (
usable: true).3
Emite una factura
Cada La respuesta (
POST lleva un Idempotency-Key único que generas tú (un UUID). Si la red falla, repites la solicitud con la misma llave y no se emite un segundo comprobante: ver Idempotencia.201) trae el id del documento y casi siempre status: pending: ya se firmó y se envió a la DGII, que todavía no responde. Guarda el id.4
Espera el resultado
El estado se actualiza solo, en segundo plano. Tienes dos formas de enterarte:
- Webhook (recomendado): registra una URL HTTPS de tu servidor y recibes
ecf.acceptedoecf.rejected. Ver Webhooks. - Consulta:
GET /v1/invoices/{id}devuelve el estado actual (y lo actualiza al momento si siguepending).
accepted o accepted_with_observations es un comprobante válido. rejected trae el motivo en statusMessage. Ver Estados de un e-CF.5
Descarga el PDF y el XML