Skip to main content
GET
List the cancellation history for an invoice
Returns the full cancellation history for an invoice — every cancellation attempt ever requested, not only the latest one. A rejected attempt doesn’t block retries, so an invoice can have multiple rows here (e.g. rechazada followed by a new pendiente or aceptada). This is a flat route, same pattern as Cancel Invoice — no /organizations/{organizationId}/ prefix.

Authentication

Accepts either:
  • A Supabase Bearer session (Authorization: Bearer <token>) — the authenticated user must be a member of the invoice’s organization.
  • An API key (X-API-Key: sk_...) with the read:invoices scope — the key’s own organization must match the invoice’s organization, or the request is rejected with 403 Forbidden.

Path Parameters

Example Request

cURL
TypeScript

Example Response

Ordered by createdAt, newest first — matching List Invoices’ ordering convention.
The response is a plain array — not the { data, total, page, ... } envelope used by List Invoices, since this history is never paginated. See Cancel Invoice for the field reference on each entry (InvoiceCancellationDto).

Common Errors

401 Unauthorized

Missing or invalid Bearer token / API key.

403 Forbidden

The authenticated user is not a member of the invoice’s organization, or the API key does not have the read:invoices scope / belongs to a different organization than the one that owns the invoice.

404 Not Found

uuid does not match any invoice.

Authorizations

X-API-Key
string
header
required

API Key for authentication (format: sk_...)

Path Parameters

uuid
string
required

Folio fiscal UUID of the invoice

Response

id
string
required
Example:

"6a1b2c3d-4e5f-4890-9abc-def012345678"

invoiceId
string
required

Timbrix invoice record ID

Example:

"0f2a1c3e-1a2b-4c3d-9e8f-1234567890ab"

motivo
enum<string>
required
Available options:
01,
02,
03,
04
Example:

"02"

requiresApproval
boolean
required
Example:

false

cancellationStatus
enum<string>
required
Available options:
pendiente,
aceptada,
rechazada
Example:

"aceptada"

createdAt
string<date-time>
required
Example:

"2026-08-09T15:50:03.412Z"

folioSustitucion
string | null
Example:

null

respondBy
string<date-time> | null
Example:

null

requestedBy
string | null
Example:

"9f8e7d6c-5b4a-3210-fedc-ba9876543210"

resolvedBy
string | null
Example:

null

resolvedAt
string<date-time> | null
Example:

null