POST
/_serverFn/sendLoginOtpPublicAuthsendLoginOtp
Send a login one-time code to an email address.
Request body (JSON)
| Field | Type | Required |
|---|
| email | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/getOtpCooldownPublicAuthgetOtpCooldown
Check cooldown before another OTP can be requested.
Request body (JSON)
| Field | Type | Required |
|---|
| email | string | yes |
Response
{ secondsRemaining: number }
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/sendPhoneOtpPublicAuthsendPhoneOtp
Send an SMS OTP to a phone number.
Request body (JSON)
| Field | Type | Required |
|---|
| phone | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyPhoneOtpPublicAuthverifyPhoneOtp
Verify a phone OTP.
Request body (JSON)
| Field | Type | Required |
|---|
| phone | string | yes |
| code | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/isPhoneVerifiedBearerAuthisPhoneVerified
Whether the caller's phone has been verified.
Request body (JSON)
| Field | Type | Required |
|---|
| phone | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/resolveLoginIdentifierPublicAuthresolveLoginIdentifier
Resolve an @username or email to an account for PIN login.
Request body (JSON)
| Field | Type | Required |
|---|
| identifier | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/startPinLoginPublicAuthstartPinLogin
Log in with 6-digit login PIN.
Request body (JSON)
| Field | Type | Required |
|---|
| identifier | string | yes |
| pin | string | yes |
Response
{ session: SupabaseSession }
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getLoginPinStatusBearerAuthgetLoginPinStatus
Whether the caller has a login PIN enrolled.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/setLoginPinBearerAuthsetLoginPin
Enrol/update the 6-digit login PIN.
Request body (JSON)
| Field | Type | Required |
|---|
| pin | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/disableLoginPinBearerAuthdisableLoginPin
Turn off PIN login.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/claimSessionBearerAuthclaimSession
Claim exclusive single-device session.
Request body (JSON)
| Field | Type | Required |
|---|
| deviceId | string | yes |
| userAgent | string | no |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/heartbeatSessionBearerAuthheartbeatSession
Refresh session heartbeat.
Request body (JSON)
| Field | Type | Required |
|---|
| deviceId | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/releaseSessionBearerAuthreleaseSession
Release the current session.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/notifyLoginBearerAuthnotifyLogin
Record a login event and email an alert.
Request body (JSON)
| Field | Type | Required |
|---|
| device | string | no |
| method | string | no |
| sessionId | string | no |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/getMyTwoFactorBearer2FAgetMyTwoFactor
Return 2FA enrollment / challenge state.
Request body (JSON)
| Field | Type | Required |
|---|
| grantToken | string | no |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/beginTotpEnrollmentBearer2FAbeginTotpEnrollment
Start TOTP enrollment (returns provisioning URI).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/confirmTotpEnrollmentBearer2FAconfirmTotpEnrollment
Confirm TOTP setup by supplying a code.
Request body (JSON)
| Field | Type | Required |
|---|
| code | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/sendStepupEmailCodeBearer2FAsendStepupEmailCode
Send an email step-up code.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyStepupChallengeBearer2FAverifyStepupChallenge
Verify a step-up TOTP or email code.
Request body (JSON)
| Field | Type | Required |
|---|
| totpCode | string | yes |
Response
{ grantToken: string }
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/revokeGrantBearer2FArevokeGrant
Revoke a step-up grant.
Request body (JSON)
| Field | Type | Required |
|---|
| grantToken | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getWalletStateBearerWalletgetWalletState
Balance, locked bonuses, recent ledger.
Response
{ balance, lockedBonus, referralLockedBonus, log: WalletLedgerRow[] }
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/createTopupIntentBearerWalletcreateTopupIntent
Create a server-side top-up intent with an immutable reference.
Request body (JSON)
| Field | Type | Required |
|---|
| amount | number (₦100–₦1,000,000) | yes |
| processor | string | yes |
Response
{ id, reference, amount }
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getTopupIntentBearerWalletgetTopupIntent
Poll the status of your top-up intent.
Request body (JSON)
| Field | Type | Required |
|---|
| reference | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/debitWalletFnBearerWalletdebitWalletFn
Debit the caller's wallet (requires transaction PIN).
Request body (JSON)
| Field | Type | Required |
|---|
| amount | number (min ₦50) | yes |
| note | string | yes |
| pin | string (4 digits) | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/transferWalletFnBearerWallettransferWalletFn
Send funds to another Century user (KYC Tier 2 required).
Request body (JSON)
| Field | Type | Required |
|---|
| username | string | yes |
| amount | number | yes |
| note | string | no |
| pin | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/lookupProfileByUsernameBearerWalletlookupProfileByUsername
Resolve a @username to a recipient profile.
Request body (JSON)
| Field | Type | Required |
|---|
| username | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/startPaystackTopupBearerPaymentsstartPaystackTopup
Initialize a Paystack transaction and return an authorization URL.
Request body (JSON)
| Field | Type | Required |
|---|
| amount | number | yes |
| email | string | yes |
| callbackUrl | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyPaystackTopupBearerPaymentsverifyPaystackTopup
Verify a Paystack reference and credit the wallet if unsettled.
Request body (JSON)
| Field | Type | Required |
|---|
| reference | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getTopupReceiptBearerPaymentsgetTopupReceipt
Fetch a shareable top-up receipt.
Request body (JSON)
| Field | Type | Required |
|---|
| reference | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listPaymentHistoryBearerPaymentslistPaymentHistory
List the caller's payment intents/settlements.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listAirtimeNetworksBearerVTUlistAirtimeNetworks
Available airtime networks.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listDataNetworksBearerVTUlistDataNetworks
Available data networks.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listDataPlanTypesBearerVTUlistDataPlanTypes
Plan categories (SME/CG/GIFTING…) for a network.
Request body (JSON)
| Field | Type | Required |
|---|
| network | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listDataPlansBearerVTUlistDataPlans
All data plans for a network.
Request body (JSON)
| Field | Type | Required |
|---|
| network | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listDataPlansForCategoryBearerVTUlistDataPlansForCategory
Plans in one category.
Request body (JSON)
| Field | Type | Required |
|---|
| network | string | yes |
| planType | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listCableProvidersBearerVTUlistCableProviders
Cable TV providers.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listCablePlansBearerVTUlistCablePlans
Cable plans for a provider.
Request body (JSON)
| Field | Type | Required |
|---|
| identifier | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listElectricityPlansBearerVTUlistElectricityPlans
Available discos.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listBetCompaniesBearerVTUlistBetCompanies
Supported betting companies.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/quotePriceBearerVTUquotePrice
Return retail price after markup.
Request body (JSON)
| Field | Type | Required |
|---|
| service | string | yes |
| provider | string | no |
| wholesale | number | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyCableIUCBearerVTUverifyCableIUC
Lookup cable subscriber name.
Request body (JSON)
| Field | Type | Required |
|---|
| iuc | string | yes |
| identifier | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyMeterBearerVTUverifyMeter
Lookup meter/customer name.
Request body (JSON)
| Field | Type | Required |
|---|
| meter | string | yes |
| plan | string | yes |
| type | 'prepaid'|'postpaid' | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyBetAccountBearerVTUverifyBetAccount
Lookup betting customer.
Request body (JSON)
| Field | Type | Required |
|---|
| betting_company | string | yes |
| customer_id | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/buyAirtimeBearerVTUbuyAirtime
Purchase airtime (requires PIN).
Request body (JSON)
| Field | Type | Required |
|---|
| network | string | yes |
| phone | string | yes |
| amount | number | yes |
| pin | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/buyDataBearerVTUbuyData
Purchase a data bundle (requires PIN).
Request body (JSON)
| Field | Type | Required |
|---|
| network | string | yes |
| plan_id | string | yes |
| phone | string | yes |
| amount | number | yes |
| pin | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/subscribeCableBearerVTUsubscribeCable
Pay a cable subscription (requires PIN).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/buyElectricityBearerVTUbuyElectricity
Buy electricity token (requires PIN, min ₦1,000).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/fundBetBearerVTUfundBet
Fund a betting wallet (requires PIN).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/buyEducationPinBearerVTUbuyEducationPin
Buy an exam pin (requires PIN).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listMyVtuTransactionsBearerVTUlistMyVtuTransactions
Recent VTU transactions.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/getMyVtuTransactionBearerVTUgetMyVtuTransaction
Fetch one VTU transaction by id.
Request body (JSON)
| Field | Type | Required |
|---|
| id | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/submitNinKycBearerKYCsubmitNinKyc
Submit Tier 1 (NIN).
Request body (JSON)
| Field | Type | Required |
|---|
| nin | string | yes |
| slipPath | string | yes |
| fullName | string | no |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/submitBankKycBearerKYCsubmitBankKyc
Submit Tier 2 (bank + ID).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/submitTier3KycBearerKYCsubmitTier3Kyc
Submit Tier 3 (liveness frames).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/getKycFileUrlBearerKYCgetKycFileUrl
Signed URL for a KYC upload.
Request body (JSON)
| Field | Type | Required |
|---|
| path | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/lookupNinBearerKYClookupNin
Server-side NIN lookup.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/verifyBankAccountBearerKYCverifyBankAccount
NUBAN name enquiry.
Request body (JSON)
| Field | Type | Required |
|---|
| accountNumber | string | yes |
| bankCode | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listBanksBearerKYClistBanks
List Nigerian banks.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listNotificationsBearerNotificationslistNotifications
Caller's inbox.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/markAllNotificationsReadBearerNotificationsmarkAllNotificationsRead
Mark all as read.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/markNotificationReadBearerNotificationsmarkNotificationRead
Mark one as read.
Request body (JSON)
| Field | Type | Required |
|---|
| id | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listBroadcastsBearerNotificationslistBroadcasts
List active broadcasts.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/votePollBearerNotificationsvotePoll
Vote in a broadcast poll.
Request body (JSON)
| Field | Type | Required |
|---|
| pollId | uuid | yes |
| optionId | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getPushPublicKeyPublicPushgetPushPublicKey
VAPID public key for Web Push.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/savePushSubscriptionBearerPushsavePushSubscription
Register a push endpoint.
Request body (JSON)
| Field | Type | Required |
|---|
| endpoint | string | yes |
| p256dh | string | yes |
| auth | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/deletePushSubscriptionBearerPushdeletePushSubscription
Delete a push endpoint.
Request body (JSON)
| Field | Type | Required |
|---|
| endpoint | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/hasTransactionPinBearerSettingshasTransactionPin
Whether transaction PIN is set.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/setTransactionPinFnBearerSettingssetTransactionPinFn
Set/change 4-digit transaction PIN.
Request body (JSON)
| Field | Type | Required |
|---|
| pin | string (4 digits) | yes |
| currentPin | string | no |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getPreferencesBearerSettingsgetPreferences
User preferences.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/updatePreferencesBearerSettingsupdatePreferences
Update user preferences.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/closeAccountBearerSettingscloseAccount
Close the account.
Request body (JSON)
| Field | Type | Required |
|---|
| confirm | string ("DELETE") | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getMyReferralStatusBearerGrowthgetMyReferralStatus
Referral code, invitees and locked bonus.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getPendingMilestonesBearerGrowthgetPendingMilestones
Milestones awaiting acknowledgement.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/ackMilestoneBearerGrowthackMilestone
Acknowledge a milestone.
Request body (JSON)
| Field | Type | Required |
|---|
| threshold | number | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getCheckinStatusBearerGrowthgetCheckinStatus
Daily check-in status.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/claimCheckinBearerGrowthclaimCheckin
Claim today's check-in.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/withdrawCheckinBearerGrowthwithdrawCheckin
Withdraw accrued check-in bonus.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listSavingsLocksBearerSavingslistSavingsLocks
List savings locks.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/createSavingsLockBearerSavingscreateSavingsLock
Lock funds for N days.
Request body (JSON)
| Field | Type | Required |
|---|
| amount | number | yes |
| days | number | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/breakSavingsLockBearerSavingsbreakSavingsLock
Break a savings lock early.
Request body (JSON)
| Field | Type | Required |
|---|
| lockId | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getLoanOverviewBearerLoansgetLoanOverview
Loan eligibility and outstanding balance.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/takeLoanBearerLoanstakeLoan
Take a loan.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listMyMarketplaceOrdersBearerMarketplacelistMyMarketplaceOrders
Caller's marketplace orders.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/createMarketplaceOrderBearerMarketplacecreateMarketplaceOrder
Create a marketplace order.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/getMarketplaceOrderBearerMarketplacegetMarketplaceOrder
Fetch one order.
Request body (JSON)
| Field | Type | Required |
|---|
| id | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listMySubscriptionOrdersBearerSubscriptionslistMySubscriptionOrders
Caller's subscription orders.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/submitSubscriptionOrderBearerSubscriptionssubmitSubscriptionOrder
Submit a subscription order (requires PIN).
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/getOrCreateThreadBearerSupportgetOrCreateThread
Get or create the caller's support thread.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listThreadMessagesBearerSupportlistThreadMessages
List messages in a support thread.
Request body (JSON)
| Field | Type | Required |
|---|
| threadId | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/sendSupportMessageBearerSupportsendSupportMessage
Post a support message.
Request body (JSON)
| Field | Type | Required |
|---|
| threadId | uuid | yes |
| body | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listSchedulesBearerScheduleslistSchedules
List scheduled purchases.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/upsertScheduleBearerSchedulesupsertSchedule
Create or update a schedule.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/toggleScheduleBearerSchedulestoggleSchedule
Pause/resume a schedule.
Request body (JSON)
| Field | Type | Required |
|---|
| id | uuid | yes |
| active | boolean | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/deleteScheduleBearerSchedulesdeleteSchedule
Delete a schedule.
Request body (JSON)
| Field | Type | Required |
|---|
| id | uuid | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/createTransactionReportBearerReportscreateTransactionReport
Report a failed/disputed transaction.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/listMyReportsBearerReportslistMyReports
Caller's issue reports.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/_serverFn/signReceiptBearerReceiptssignReceipt
Sign a receipt payload.
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
GET
/_serverFn/verifyReceiptPublicReceiptsverifyReceipt
Public receipt verification lookup.
Request body (JSON)
| Field | Type | Required |
|---|
| needle | string | yes |
Errors
- 401 — Unauthorized – missing or invalid bearer token.
- 400 — Validation failed – input did not match the schema.
- 429 — Rate limited – slow down and retry.
- 500 — Server error – reported and logged with an error ID.
POST
/api/public/payments/webhook/paystackSigned webhookWebhooksPaystack webhook
Signed Paystack webhook. Verifies x-paystack-signature (HMAC-SHA512) before crediting wallets.
Errors
- 401 — Invalid signature.
- 200 — Event accepted.
POST
/api/public/report-issuePublicWebhooksPublic issue reporter
Post a client-side error/issue report (used by the ErrorScreen fallback).
POST
/api/public/login-failedPublicWebhooksLogin failure telemetry
Record failed login attempts for rate limiting and alerts.