Appearance
Get the fees of a patent event
GET /api/v2/external/patents/{patentId}/events/{eventId}/feesAuthentication: x-api-key header, with the patents:read scope. See Authentication and limits.
Returns the fee breakdown of an event (office, agent, Renewr, grace period), all amounts in the invoice currency as decimal strings. Unified estimated|invoiced: while no invoice exists the response carries the projected amounts (feesStatus: ESTIMATED, invoiceId: null); once invoiced it carries the billed amounts (feesStatus: INVOICED).
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
eventId | string | Yes | The opaque, stable Renewr UUID of the patent event. |
patentId | string | Yes | The opaque, stable Renewr UUID of the patent. |
Response
200 The fee breakdown of the event.
json
{
"object": "fees",
"invoiceId": null,
"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": "ESTIMATED",
"isFxRateFrozen": false
}Response fields
| Field | Type | Description |
|---|---|---|
object | string | String describing the object type (auto-description). One of: fees. |
invoiceId | string or null | Back-reference to the invoice these fees belong to. Format: uuid. |
eventId | string or null | Public UUID of the patent event these fees belong to (trace each fee line back to its event). Format: uuid. |
patent | object | The patent this fee line belongs to: identified both ways (Renewr id + your own reference). |
patent.id | string or null | Renewr UUID of the patent. Format: uuid. |
patent.providerId | string or null | The client's own matching reference for that patent. |
currency | string | ISO 4217 currency code the client is invoiced in. |
total | string or null | Total of all components, in invoice currency (decimal string). |
components | array of objects | Per-type fee breakdown (Stripe fee_details style); a component that does not apply is absent (never null). Sums to total. |
components[].type | string | OFFICE (national office) | AGENT (external agent) | RENEWR (service fee) | GRACE_PERIOD (late surcharge). One of: OFFICE, AGENT, RENEWR, GRACE_PERIOD. |
components[].amount | string | Amount of this component, in invoice currency (decimal string). |
feesStatus | string | Whether these amounts are ESTIMATED (projected) or INVOICED (final: an invoice exists). One of: ESTIMATED, INVOICED. |
isFxRateFrozen | boolean | True when the FX rate used to compute these fees is frozen. |
Errors
Errors use the application/problem+json envelope with stable machine-readable codes. See the Errors guide.
| Status | Description |
|---|---|
| 400 | Validation failed (validation_failed): carries per-field errors[] with RFC 6901 JSON Pointers. |
| 401 | Missing or invalid API key (invalid_api_key), or expired key (api_key_expired). |
| 403 | API key lacks the required scope (insufficient_scope, with requiredScope extension) or the operation is not enabled for this client (forbidden). |
| 404 | The resource does not exist in your portfolio (not_found). |
| 429 | Daily 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/patents/$PATENT_ID/events/$EVENT_ID/fees" \
-H "x-api-key: $RENEWR_API_KEY"