Skip to content

Get an invoice

GET /api/v2/external/invoices/{invoiceId}

Authentication: x-api-key header, with the invoices:read scope. See Authentication and limits.

Returns a single patent invoice owned by the authenticated client, identified by its opaque Renewr UUID.

Path parameters

NameTypeRequiredDescription
invoiceIdstringYesThe opaque, stable Renewr UUID of the invoice.

Response

200 The invoice matching the provided UUID.

json
{
  "object": "invoice",
  "id": "c4a1b2d3-e4f5-4a6b-8c7d-9e0f1a2b3c4d",
  "reference": "INV-2026-0087",
  "number": 87,
  "issueDate": "2026-07-22",
  "origin": "GENERATED",
  "ipRightType": "PATENT",
  "currency": "EUR",
  "vatRate": 0.2,
  "vatNumber": "FR12345678901",
  "subtotalExcludingTax": "975.00",
  "totalIncludingTax": "1170.00",
  "hasPdfDocument": true,
  "hasXlsxDocument": false,
  "fees": [
    {
      "object": "fees",
      "invoiceId": "c4a1b2d3-e4f5-4a6b-8c7d-9e0f1a2b3c4d",
      "eventId": "9f0d1e7a-3b2c-4d5e-8f6a-7b8c9d0e1f2a",
      "patent": {
        "id": "7c9e6679-7425-40de-944b-e07fc1f90ae7",
        "providerId": "ACME-2021-0042"
      },
      "currency": "EUR",
      "total": "975.00",
      "components": [
        {
          "type": "OFFICE",
          "amount": "800.00"
        },
        {
          "type": "AGENT",
          "amount": "150.00"
        },
        {
          "type": "RENEWR",
          "amount": "25.00"
        }
      ],
      "feesStatus": "INVOICED",
      "isFxRateFrozen": false,
      "regularizedInvoiceId": null,
      "regularizationReason": null
    }
  ],
  "createdAt": "2026-01-10T08:30:00.000Z"
}
Response fields
FieldTypeDescription
objectstringString describing the object type (auto-description). One of: invoice.
idstringOpaque, stable Renewr UUID of the invoice. Format: uuid.
referencestringStable, unique display reference (the only field guaranteed across all 3 origins).
numberstring or nullSequential invoice number; absent (null) for IMPORTED invoices.
issueDatestring or nullISO date string.
originstringOne of: GENERATED, IMPORTED, REGULARIZATION.
ipRightTypestringPATENT | TRADEMARK: asset family discriminant. One of: PATENT, TRADEMARK.
currencystringISO 4217 currency code the client is invoiced in.
vatRatenumber or nullVAT rate applied (non-monetary number, e.g. 0.2 for 20%).
vatNumberstring or nullVAT number on the invoice.
subtotalExcludingTaxstring or nullSubtotal before tax, in invoice currency (decimal string).
totalIncludingTaxstring or nullTotal including tax, in invoice currency (decimal string).
hasPdfDocumentbooleanTrue when a PDF document is available for this invoice.
hasXlsxDocumentbooleanTrue when an XLSX document is available for this invoice.
feesarray of objectsFull per-component fee breakdown of the invoice.
fees[].objectstringString describing the object type (auto-description). One of: fees.
fees[].invoiceIdstring or nullBack-reference to the invoice these fees belong to. Format: uuid.
fees[].eventIdstring or nullPublic UUID of the patent event these fees belong to (trace each fee line back to its event). Format: uuid.
fees[].patentobjectThe patent this fee line belongs to: identified both ways (Renewr id + your own reference).
fees[].patent.idstring or nullRenewr UUID of the patent. Format: uuid.
fees[].patent.providerIdstring or nullThe client's own matching reference for that patent.
fees[].currencystringISO 4217 currency code the client is invoiced in.
fees[].totalstring or nullTotal of all components, in invoice currency (decimal string).
fees[].componentsarray of objectsPer-type fee breakdown; a component that does not apply is absent (never null). Sums to total.
fees[].components[].typestringOFFICE (national office) | AGENT (external agent) | RENEWR (service fee) | GRACE_PERIOD (late surcharge). One of: OFFICE, AGENT, RENEWR, GRACE_PERIOD.
fees[].components[].amountstringAmount of this component, in invoice currency (decimal string).
fees[].feesStatusstringESTIMATED (projected, recomputed live) | LOCKED (fixed when the PROCEED instruction was executed, no invoice yet) | INVOICED (an invoice exists, invoiceId set). One of: ESTIMATED, LOCKED, INVOICED.
fees[].isFxRateFrozenbooleanTrue when the FX rate used to compute these fees is frozen.
fees[].regularizedInvoiceIdstring or nullLines of a REGULARIZATION invoice only: UUID of the original invoice whose line is regularized. Null on every other line. Format: uuid.
fees[].regularizationReasonstring or nullLines of a REGULARIZATION invoice only: NOT_PAYABLE (the original fees are credited) | ANNUITY_ERROR (office and grace fees corrected) | ACCOUNTING_ERROR (invoiced amounts corrected). Null on every other line. One of: NOT_PAYABLE, ANNUITY_ERROR, ACCOUNTING_ERROR.
createdAtstringTimestamp at which the invoice was recorded in Renewr. The reliable bound for an incremental sync: the issueDate of an IMPORTED invoice is entered by hand and may be backdated. Format: date-time.

Errors

Errors use the application/problem+json envelope with stable machine-readable codes. See the Errors guide.

StatusDescription
400Validation failed (validation_failed): carries per-field errors[] with RFC 6901 JSON Pointers.
401Missing or invalid API key (invalid_api_key), or expired key (api_key_expired).
403API key lacks the required scope (insufficient_scope, with requiredScope extension) or the operation is not enabled for this client (forbidden).
404The resource does not exist in your portfolio (not_found).
429Daily API call limit exceeded (rate_limit_exceeded): the Retry-After header gives the seconds until reset.

Example request

bash
curl "https://api.renewr.example/api/v2/external/invoices/$INVOICE_ID" \
  -H "x-api-key: $RENEWR_API_KEY"

Renewr External API v2. Access on invitation.