Get an invoice reply
Scopeinvoice-replies:readReturns a reply with its full text, without masking and without the quoted original
message.
Keys are prefixed beel_sk_, and each one carries the scopes it was created with: a key
short of the scope an operation needs is answered 403. The scope an operation requires
is shown next to its title, and the full catalogue lives in the Scopes reference.
Keys are created from the BeeL dashboard. They are secret credentials: do not share them or commit them to source control.
In: header
Path Parameters
Unique identifier (UUID) of the company the operation acts on: its identifier, not its NIF. It is the only source of context: the account that owns it is derived from it, and the BeeL-Active-Company header plays no part. A company you do not reach answers 403, and so does a company that does not exist, so the existence of a company in another account is never disclosed.
uuidUnique identifier (UUID) of the reply, as returned by the list or by POST .../invoice-replies.
uuidResponse Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://app.beel.es/api/v1/companies/497f6eca-6276-4993-bfeb-53cbbbba6f08/invoice-replies/497f6eca-6276-4993-bfeb-53cbbbba6f08"{
"success": true,
"data": {
"id": "3f0c9a1e-6b2d-4c8f-a1e5-7d9b0c2e4f61",
"channel": "EMAIL",
"authenticated_by": "REPLY_TOKEN",
"connection_id": "8c3e1f7a-2b4d-4e6f-9a1c-5d7b3e9f2a41",
"invoice_id": "b71d5e2a-9c3f-4a7b-8e10-2f6d4c8a9b13",
"invoice_number": "F2026-0142",
"customer_id": "7a2c9e14-3b5d-4f6a-8c0e-1d2b3a4c5e6f",
"status": "RECEIVED",
"received_at": "2026-11-03T09:12:44Z",
"subject": "RE: Factura F2026-0142",
"excerpt": "Hola, el CIF que aparece no es el nuestro, es [NIF]. ¿Podéis corregirla?",
"sender": {
"address": "[EMAIL]",
"name": "Laura Gómez"
},
"external_id": "CAH7xQ2b9pLk3mZ0@mail.distribuciones-ejemplo.es",
"attachments": [
{
"id": "5b0e2c7a-91d4-4f3e-8a6b-2c1d9e0f7a34",
"url": "/v1/companies/9f1c2d3e-4a5b-6c7d-8e9f-0a1b2c3d4e5f/invoice-replies/3f0c9a1e-6b2d-4c8f-a1e5-7d9b0c2e4f61/attachments/5b0e2c7a-91d4-4f3e-8a6b-2c1d9e0f7a34",
"file_expires_at": "2026-11-18T10:15:00Z",
"content_type": "application/pdf",
"size_bytes": 48213,
"filename": "justificante-transferencia.pdf"
}
],
"text": "Hola, el CIF que aparece no es el nuestro, es B87654315. ¿Podéis corregirla?\nGracias,\nLaura",
"is_text_truncated": false
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNAUTHORIZED",
"message": "Authentication is required to access this resource"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "The provided data is not valid",
"details": {
"field": "specific error message"
}
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
},
"type": "https://docs.beel.es/errors/INVOICE_NO_LINES",
"title": "INVOICE_NO_LINES",
"detail": "The invoice must have at least one line",
"instance": "/v1/invoices/abc-123"
}{
"success": false,
"error": {
"code": "VALIDATION_ERROR",
"message": "The provided data is not valid",
"details": {
"field": "specific error message"
}
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
},
"type": "https://docs.beel.es/errors/INVOICE_NO_LINES",
"title": "INVOICE_NO_LINES",
"detail": "The invoice must have at least one line",
"instance": "/v1/invoices/abc-123"
}{
"success": false,
"error": {
"code": "RATE_LIMIT_EXCEEDED",
"message": "Too many requests. Please try again in 60 seconds."
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "INTERNAL_ERROR",
"message": "Internal server error"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}{
"success": false,
"error": {
"code": "UNSUPPORTED_MEDIA_TYPE",
"message": "Unsupported media type: text/plain. Supported: application/json"
},
"meta": {
"timestamp": "2025-01-15T10:30:00Z",
"request_id": "4bf92f3577b34da6a3ce929d0e0e4736"
}
}Delete an invoice reply DELETE
Erases the text, subject, sender, attachments, `external_id` and `connection_id` of the reply, to answer an erasure request, and delivers `invoice.reply.deleted`. Repeating it answers `204` and delivers nothing. The same `channel` and `external_id` can no longer be registered: a new attempt answers `409` without `reply_id`. Retrying the original registration with its same `Idempotency-Key` within 24 hours still replays the original response.
Get an attachment of an invoice reply GET
Returns the attachment with a temporary `download_url` for its file. BeeL. does not store the file: the link is requested when you call this operation and stays valid for about an hour, so call it again for a fresh one rather than keeping it. `download_url` and `download_url_expires_at` are `null` when there is no file to download: the attachment was registered with `POST .../invoice-replies`, or its file is no longer available (see `file_expires_at`).