Elixir SDK
There is no Elixir SDK today. Paycux is a plain HTTPS and JSON API; this page says what that means for a Elixir project.
No SDK today
Paycux does not publish a Elixir SDK today. No package named paycux on Hex is ours, and the planned client library is not published. Integrate from Elixir with the HTTP client your runtime already has.
Do not add a dependency
Nothing on this page needs a package. The examples below are plain HTTPS and JSON and work from any runtime that can send a request.
The three credentials
Paycux has no secret API keys. Each route family accepts exactly one credential, and they are never mixed.
- Dashboard member session: the
__Host-paycux_sessioncookie set by the console sign-in, for/v1/projects,/v1/environments,/v1/workspaceand/v1/auth/*. - End-user usage credential:
Authorization: Bearer <realm access token>from the identity realm Paycux provisions per environment, for/v1/usage/eventsand/v1/billing/*. - Agent connection: a short-lived
pcx_token bound to one project's development environment, for/v1/agent/*and/v1/verifications/*; thepaycuxCLI and thepaycux-mcpserver read it from a protected pipe.
Your first call over HTTPS
The live control-plane host is https://api.paycux.com. This records one usage event with the end-user credential and reads the allow or deny decision back; the quickstart shows the steps that come before it.
1curl -X POST https://api.paycux.com/v1/usage/events \2 -H "Authorization: Bearer $REALM_ACCESS_TOKEN" \3 -H "Idempotency-Key: usage-2026-10-13-000001" \4 -H "Content-Type: application/json" \5 -d '{6 "projectId": "<project uuid>",7 "environmentId": "<environment uuid>",8 "realmId": "<realm uuid>",9 "billingAccountId": "<billing account uuid>",10 "meterKey": "api_calls",11 "quantity": 1,12 "occurredAt": "2026-10-13T09:00:00Z"13 }'
- The body scope (
projectId,environmentId,realmId) must match the credential, and the identity must be an active member of the billing account. Idempotency-Keyis 8 to 128 characters; repeating a key returns the same decision withduplicate: true.
Conventions
- JSON in, JSON out: camelCase keys, UUID identifiers,
204for no body. - Failures return
{ error, message }with codes such asINVALID_INPUT,CREDENTIAL_INVALID,FORBIDDEN,NOT_FOUND,CONFLICT,PLAN_LIMIT_EXCEEDEDandRATE_LIMITED(withRetry-After). - Usage events, hosted checkout and workspace billing writes take an
Idempotency-Key; changing the payload under the same key is a409. - Provider API keys and webhook secrets are stored by reference and are never returned, logged or echoed in an error.
Where the contract lives
Every implemented route and its credential is listed under What exists today at /docs/implemented, rendered verbatim from docs/API_CONTRACTS.md. Anything not listed there is not implemented.
When a client library ships
If a Elixir SDK is published it will be announced here with a real package name and version. Until then this page is deliberately short: it exists so the navigation does not promise a package that cannot be installed.