Create a wallet

Open a new end-user wallet under your organization, with optional inline KYC.

POST/v1/wallets
wallet

Opens a new end-user wallet under your organization. You may submit KYC inline at creation time, or later via submit KYC. The wallet's email is unique within your org and environment.

Try it, for realPOST /walletsscope: wallet

Test keys only. Never paste a live key. Your key is stored only in this browser (localStorage) and sent only to the same-origin playground proxy.

Equivalent request (curl / TypeScript)
curl
curl -X POST https://sandbox.api.acute.network/v1/wallets \
  -H "Authorization: Bearer acuinf_test_…" \
  -H "Content-Type: application/json" \
  -d '{"email":"ada@example.com","fullName":"Ada Lovelace","externalReference":"cust_8842"}'
TypeScript
const res = await fetch("https://sandbox.api.acute.network/v1/wallets", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.ACUTE_TEST_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({"email":"ada@example.com","fullName":"Ada Lovelace","externalReference":"cust_8842"}),
});
const { data, meta } = await res.json();

# create an end-user wallet
curl -X POST https://sandbox.api.acute.network/v1/wallets \
  -H "Authorization: Bearer acuinf_test_…" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "ada@example.com",
    "fullName": "Ada Lovelace",
    "externalReference": "cust_8842"
  }'
{
  "success": true,
  "statusCode": 201,
  "data": {
    "id": "acuinf483920175566wlt",
    "kind": "end_user",
    "email": "ada@example.com",
    "fullName": "Ada Lovelace",
    "phone": null,
    "externalReference": "cust_8842",
    "kycStatus": "none",
    "status": "active",
    "currency": "NGN",
    "createdAt": "2026-06-24T09:14:02.118Z"
  },
  "meta": { "requestId": "req_4f9c2a7e1b0d8c3a5e6f10a2" }
}

emailstringbodyrequired

The end user's email. Must be a valid email and unique within your organization; a duplicate returns 409 (WALLET_EMAIL_TAKEN).

fullNamestringbodyoptional

The end user's full name.

phonestringbodyoptional

The end user's phone number.

externalReferencestringbodyoptional

Your own correlation id for this customer. Stored and echoed back on every wallet response.

kycWalletKycPayloadbodyoptional

Optional inline KYC. If present, the wallet is created at tier1. Same shape as the submit KYC body: bvn (11 digits), dateOfBirth (YYYY-MM-DD), gender, phone, addressLine1, city, state, plus optional addressLine2, country, postalCode.

WalletResponseData.

idstringrequired

The wallet reference (acuinf…wlt). Store this; it's how you address the wallet.

kind'settlement' | 'end_user'required

Always end_user from the public API.

emailstringrequired

The end user's email.

fullNamestring | nullrequired

The name, or null if not provided.

phonestring | nullrequired

The phone, or null.

externalReferencestring | nullrequired

Your correlation id, or null.

kycStatus'none' | 'tier1'required

tier1 if KYC was submitted (inline or later), else none.

status'active' | 'frozen' | 'closed'required

New wallets start active.

currencystringrequired

The wallet currency (NGN).

createdAtstringrequired

ISO-8601 creation timestamp.