Capxul Docs

Capability status

What is live, what is SDK-ready but not yet product-proven, and what is roadmap — verified against the published alpha.

This page is the honest map of the platform. Every capability below is graded against the published packages, not against ambition. If a page elsewhere in these docs disagrees with this one, this one wins — and the disagreement is a bug worth reporting.

Last verified: 2026-07-08 against @capxul/sdk@1.0.0-alpha.13 / @capxul/sdk-react@1.0.0-alpha.13.

How to read the grades

  • Live — published, exercised by a real consumer (the Capxul app or the reference app), safe to build on.
  • SDK-ready — the primitive is published and tested, but no product surface has proven it end-to-end yet. Expect rough edges; build against it with that expectation.
  • Partial — published, but with documented constraints that limit what you can ship on it today. The constraint is listed.
  • Roadmap — direction, not capability. Do not build against it; do not claim it.

Status matrix

CapabilityGradeHooks / APINotes
Email OTP auth, session, sign-outLiveuseCapxulSignIn, useCapxulVerifyOtp, useCapxulSession, useCapxulSignOutProven in the Capxul app and reference app.
Profile & current userLiveuseCapxulProfile, useCapxulCurrentUserProfile is null for a fresh identity until onboarding completes.
Account lifecycle / readinessLiveuseCapxulAccountLifecycle, useCapxulThe account lane runs automatically after sign-in when requirement !== "none".
Personal balanceLiveuseCapxulAccountBalance
Organizations: list, detail, switchingLiveuseCapxulOrgs, useCapxulOrg, useCapxulSwitchActingEntity
Org treasury, members, rolesLiveuseCapxulOrgTreasury, useCapxulOrgMembers, useCapxulOrgRolesTreasury returns the org's single treasury Account.
Org audit logRoadmap (typed contract published)useCapxulOrganizationAuditLogorg(orgId).auditLog() currently returns NOT_IMPLEMENTED on every call.
Onboarding completionLiveuseCapxulCompletePersonalOnboarding, useCapxulCompleteOrganizationOnboarding
Payments: pay, list, getPartialuseCapxulPay, useCapxulPayments, useCapxulPaymentpay requires typed recipients (handle, email, payee, request) and personal actors today; bare addresses are rejected by design. Amounts must use decimals: 6.
Cancel paymentRoadmap (typed contract published)useCapxulCancelPaymentpayments.cancel currently returns NOT_IMPLEMENTED on every call.
Wallet withdrawSDK-readyuseCapxulWithdrawExternal wallet cash-out with a Withdrawal document. Not yet wired into a product surface.
Payout to saved destinationPartialuseCapxulPayoutBackend settles wallet destinations only. Bank / mobile-money payouts are rejected.
Destinations (bank / mobile-money / wallet)PartialuseCapxulDestinations, useCapxulAddDestination, useCapxulRemoveDestinationDestination metadata can be stored for all three kinds; settlement exists only for wallet.
Offramp quotes & statusRoadmap (typed contract published)useCapxulOfframpQuote, useCapxulOfframpStatusThe hooks and types exist so integrations can be typed today, but every call currently returns NOT_IMPLEMENTED. No live rail yet.
Payment requests & inboxSDK-readyuseCapxulIssueRequest, useCapxulInbox, useCapxulApproveInboxRequest, …Create / send / approve / decline primitives exist; a full invoice product workflow does not.
Address book & insightsSDK-readyuseCapxulAddressBook, useCapxulInsightsSummary, …
Activity feedSDK-readyuseCapxulActivityOutbound payments feed. Published but not yet proven against a product screen.
Payroll roster & runsSDK-readyuseCapxulPayrollRoster, useCapxulRunPayroll, …Primitives exist; scheduling / streaming product UX is not SDK-complete.
Sub-accounts (envelopes) & transfersSDK-readyuseCapxulSubAccountsList, useCapxulTransfer, …
Bank / mobile-money settlementRoadmapThe next platform build direction. Destinations can be modeled today; cash-out cannot.
CardsRoadmapProduct vision. No SDK or backend surface exists.
@capxul/components (headless UI)RoadmapCompound-component families are specified in the domain canon but not yet implemented.

Known gaps the platform team is tracking

These are read-model gaps the Capxul frontend team has already hit; they are tracked as SDK public-contract work. If you hit them too, you are not doing it wrong — the contract does not exist yet:

  • A composite personal payments read model (metrics, payroll cards, invoice rows).
  • Multi-chain org treasury token balances (today's treasury read is a single account).
  • Org payment history rows with export.
  • Personal activity aggregates (earnings summaries).

The instant-send guardrail

One rule explains many "why was this rejected?" moments: an instant, irreversible payment is only permitted to a validated recipient. Paying anyone not yet validated always goes through a recoverable Commitment (escrowed, cancellable, redirectable). The SDK enforces this; it is not a bug to work around. See Money & accounts.

On this page