Skip to content

Webhooks

Planned — on our roadmap. This capability is documented so you can design your integration ahead of time. It is not yet enabled to call; for initial go-live, investment flows transact via USSD. If it is part of your integration plan, contact us. See what’s available today.

Webhooks are event driven operations within the Pipevest system. Whenever an event is triggered a JSON payload is sent to all urls that have subscribed to the event. This document will guide you on how to create, update and get webhook details.

To create a webhook:

Terminal window
curl --request POST \
--url https://api.pipevest.com/v1/webhooks\
--header 'Authorization: Bearer 123456' \
--header 'Content-Digest: sha-512=:RK/0qy18MlBSVnWgjwz6lZEWjP/lF5HF9bvEF8FabDg=:' \
--header 'Content-Length: 18' \
--header 'Content-Type: application/json' \
--header 'Signature: sig1=:OTEyMjY4...A5NTNDMEQ=:' \
--header 'Signature-Input: sig1=("authorization" "content-digest" "content-length" "content-type" "x-client-id" "x-idempotency-key" "@method" "@target-uri" "@path" "@query");keyid="staging-pipevest-ed25519";created=1732893484;expires=1732893584' \
--header 'X-Idempotency-Key: 123456' \
...
--data '{"url": "https://companyx.com/webhook2", "subscriptions": ["ALL"]}'

To test a webhook:

Terminal window
curl --request POST \
--url https://api.pipevest.com/v1/webhooks/test\
--header 'Authorization: Bearer 123456' \
--header 'Signature: sig1=:OTEyMjY4...A5NTNDMEQ=:' \
--header 'Signature-Input: sig1=("authorization" "x-client-id" "x-idempotency-key" "@method" "@target-uri" "@path" "@query");keyid="staging-pipevest-ed25519";created=1732893484;expires=1732893584' \
--header 'X-Idempotency-Key: 123456' \
...

If you need to change a webhook’s details:

Terminal window
curl --request PUT \
--url https://api.pipevest.com/v1/webhooks\
...
--data '{"url": "https://companyx.com/webhook2", "subscriptions": ["ACCOUNT"]}'

To retrieve a webhook’s configuration:

Terminal window
curl --request GET \
--url https://api.pipevest.com/v1/webhooks\
--header 'Authorization: Bearer 123456' \
--header 'Signature: sig1=:OTEyMjY4...A5NTNDMEQ=:' \
--header 'Signature-Input: sig1=("authorization" "x-client-id" "@method" "@target-uri" "@path" "@query");keyid="staging-pipevest-ed25519";created=1732893484;expires=1732893584' \
--header 'X-Client-Id: 123456' \

To retrieve a webhook’s public key:

Terminal window
curl --request GET \
--url https://api.pipevest.com/v1/webhooks/key\
--header 'Authorization: Bearer 123456' \
--header 'Signature: sig1=:OTEyMjY4...A5NTNDMEQ=:' \
--header 'Signature-Input: sig1=("authorization" "x-client-id" "@method" "@target-uri" "@path" "@query");keyid="staging-pipevest-ed25519";created=1732893484;expires=1732893584' \
--header 'X-Client-Id: 123456' \
Property Definition
webhookId Unique webhook identifier
status The status of the webhook
url A valid https url
subscriptions List of webhook subscriptions
createdAt Created at unix timestamp
updatedAt Updated at unix timestamp
Name Definition
ACTIVE Webhook is currenting live
DEACTIVED Webhook has been deactived
Subscription Definition Domain
WEBHOOK Only events that deal with webhooks Webhooks
WEBHOOK.CREATED Triggered when a webhook is created. Subscription created automatically Webhooks
WEBHOOK.UPDATED Triggered when a webhook is updated Webhooks
Webhook Concepts

Deep dive into webhooks on the Pipevest platforms