Create a subscription, and read its signing secret once
DEVELOPER and above. Returns the signing secret ONCE, in this response and nowhere else. Unlike the machine route this takes no Idempotency-Key: an integrator retries blindly and needs a repeated POST to return the first subscription rather than create a second, but a person pressing a button does not, and asking them for an idempotency key would be asking them to understand a problem they do not have. One is minted per request, so the repository serialisation is not weakened for this door. The destination goes through the same guard as the machine route, which is what stops a subscription pointing at an internal address and being used to probe the network from inside.
DEVELOPER and above. Returns the signing secret ONCE, in this response and nowhere else.
Unlike the machine route this takes no Idempotency-Key: an integrator retries blindly and needs a repeated POST to return the first subscription rather than create a second, but a person pressing a button does not, and asking them for an idempotency key would be asking them to understand a problem they do not have. One is minted per request, so the repository serialisation is not weakened for this door.
The destination goes through the same guard as the machine route, which is what stops a subscription pointing at an internal address and being used to probe the network from inside.
Authorization
consoleSession Set by POST /console/v1/sessions. HttpOnly, Secure, SameSite=Strict, Path=/, __Host- prefixed. It is never readable by JavaScript and there is no header alternative: accepting both carriers would let an attacker choose the weaker one.
In: cookie
Path Parameters
uuidRequest Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/console/v1/companies/497f6eca-6276-4993-bfeb-53cbbbba6f08/webhooks/subscriptions" \ -H "Authorization: Bearer apf_v2_tu_credencial" \ -H "Content-Type: application/json" \ -d '{ "url": "http://example.com", "events": [ "document.accepted" ] }'{ "schemaVersion": "console.1", "requestId": "d385ab22-0f51-4b97-9ecd-b8ff3fd4fcb6", "subscriptionId": "d079718b-ff63-45dd-947b-4950c023750f", "url": "http://example.com", "events": [ "string" ], "status": "ACTIVE", "description": "string", "secretVersion": 0, "createdAt": "2019-08-24T14:15:22Z", "secret": "string"}The notification subscriptions this company has configured GET GET
DEVELOPER and above, which is the tier webhooks:manage occupies among the scopes: a notification is integration configuration, not third-party data nor a tax act. It is deliberately LOWER than the complaint book, where a consumer address is read, and than SIRE, where a tax period is closed. The signing secret is never returned here. It is not stored readable anywhere, so the only moments it can be read are creation and rotation.
Change destination, events or status; never the secret PATCH PATCH
DEVELOPER and above. Partial: an absent field is left alone, and status moves a subscription between ACTIVE and PAUSED. This never rotates the secret. Rotation has its own route because a PATCH that also rotated would leave a receiver that only wanted to change its event list without a valid signature.