What it does
The Registrations module lets approved integrations create registrations from outside Confera. It’s built for: event websites, partner portals, and offline registration desks.
The flow is intentionally structured: fetch config → build a form →submit.
Scopes
- registrations:read – required for config, list/get, universities, receipts
- registrations:write – required to create registrations
Best practice: use separate keys. One key with registrations:write for the form, another key with registrations:read for back-office verification.
Get config
/api/public/v1/registrations/configThis tells you whether registrations are open and what fields/options are currently valid: fields, required keys, open phase, ticket types, payment methods, and pricing.
Search universities
/api/public/v1/registrations/universitiesInstitutions must be selected from the official list. Use this endpoint to power an autocomplete. Query params: q and limit (max 50).
Upload proof (optional but recommended)
The create endpoint accepts paymentProofUrl as either anhttps:// URL or a private Confera storage URI (storage://registration-evidence/...).
If you want private storage managed by Confera, use the SDK helper below. It creates a short-lived signed upload URL, uploads bytes, and returns the storageUri you can pass intopaymentProofUrl.
Create registration
/api/public/v1/registrations/registrationsThis endpoint enforces real rules: required fields, valid ticket type/payment method, and an open pricing phase.
List registrations
/api/public/v1/registrations/registrationsFilters: email, status,verification_status. Uses limit/offset (default 50, max 200).
Get registration
/api/public/v1/registrations/registrations/:registrationIdReceipt URL
/api/public/v1/registrations/registrations/:registrationId/receiptReturns a signed URL when the receipt is stored privately. If the stored URL is public, it may be returned as-is.
Rules & gotchas (read this)
Even if registrations are enabled, creation can fail with 409if no pricing phase is currently open.
Provide institutionId from the universities search. Passing a random institution name will be rejected.
Creation does a best-effort duplicate check on email and can return 409. Handle that by showing "Already registered" and offering support contact.
paymentProofUrl must be an https://URL or a storage://registration-evidence/... URI.