Add a new webhook definition
const url = 'https://sender.api.kivra.com/v2/webhooks/payments';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"url":"example","cid_filter":"example","tkey_filter":"example","types":["instant"],"events":["scheduled"]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://sender.api.kivra.com/v2/webhooks/payments \ --header 'Content-Type: application/json' \ --data '{ "url": "example", "cid_filter": "example", "tkey_filter": "example", "types": [ "instant" ], "events": [ "scheduled" ] }'Create a payment webhook definition with filters.
Request Body
Section titled “Request Body”object
The URL to which Kivra will try to deliver the webhook payloads. Must not be in a reserved domain, must have at least one IPv4 address and must not have any IPv4 addresses in a reserved range. The URL scheme must be HTTPS.
The client key of the party that made the API call to send the invoice the payment was based on to Kivra.
The tenant key of the sender of the invoice the payment was based on.
A list of the types of payments that the tenant wants to receive webhooks for.
A list of the payment lifecycle events that the tenant wants to receive webhooks for.
Responses
Section titled “Responses”The definition of the just-created webhook.
A definition used to send webhooks from Kivra to a sender.
object
The ID of the current webhook definition.
The target URL that Kivra will try to deliver to. The
hostname in the URL must not be in a restricted domain
(like for example example.org or local). The
hostname also must resolve to at least one IPv4 address,
and must not resolve to any addresses in an IPv4 range
reserved by IANA.
The client key filter for this webhook configuration.
The tenant key filter for this webhook cofiguration.
A list of the types of payments that should trigger webhooks.
A list of the payment events that should trigger webhooks. Not all events are meaningful for all payment types.
The newly created secret after a webhook definition was added or modified. The secret is a 256-bit random number that will be used to sign webhook payloads from Kivra. If a secret already exists when a new one is added (that is, when a webhook definition is modified rather han created), payloads will be signed with both the existing and the new secrets for the next 72 hours. For security reasons, this field will be missing in reponses to API calls that do not result in the creation of a new secret.
The time when this definition was created.
Example
{ "types": [ "instant" ], "events": [ "scheduled" ]}