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": 20,
  "vatNumber": "FR12345678901",
  "subtotalExcludingTax": "1041.67",
  "totalIncludingTax": "1250.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": "1250.00",
      "components": [
        {
          "type": "OFFICE",
          "amount": "800.00"
        }
      ],
      "feesStatus": "INVOICED",
      "isFxRateFrozen": false
    }
  ],
  "createdAt": "2026-01-10T08:30:00.000Z",
  "updatedAt": "2026-07-15T14:00: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 (Stripe fee_details style); 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[].feesStatusstringWhether these amounts are ESTIMATED (projected) or INVOICED (final: an invoice exists). One of: ESTIMATED, INVOICED.
fees[].isFxRateFrozenbooleanTrue when the FX rate used to compute these fees is frozen.
createdAtstring or nullISO 8601 timestamp (UTC). Format: date-time.
updatedAtstring or nullISO 8601 timestamp (UTC). 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.