pulse.collectionSessions.create(payload, { idempotencyKey }).
- Naira gate
- USD gate
The
naira gate carries per-user identity: add user_ref and an account
block — { provision: true, bvn, nin } for a first-time customer, so Pulse
provisions their named virtual account, or { provision: false, virtual_account_ref } for a returning one.BVN/NIN are sensitive — they travel server-to-server only in this call
and never reach the browser.
Idempotency
Pass anidempotencyKey (e.g. keyed off your own deposit/order id) so a retried
request — a network blip, a duplicate click — mints the same session instead of
a second one.
The returned shape
session.session_token to your frontend — it is the only Pulse
credential the browser ever holds. See
Render the payment moment for how the client
consumes it, and Webhooks for how you confirm settlement.