Top up (positive delta) or draw down (negative delta) a customer's wallet, in USD. No agentKey — a customer has exactly one wallet. Works whatever the customer's plan — even with no plan — and the wallet may read negative. Send pool: "reserved" to move the Reserved Wallet instead (when your workspace has it on); remaining is then the Reserved balance, and a reduce below zero is refused (422). Send an idempotencyKey to make it safe to retry.
Authorization
apiKey Organisation-scoped key from Settings → API Keys.
In: header
Path Parameters
Customer id.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/customers/cus_abc123/wallet/adjust" \ -H "Content-Type: application/json" \ -d '{ "delta": 25, "notes": "Goodwill top-up", "idempotencyKey": "topup:ord_1042" }'{ "statusCode": 200, "statusDetail": { "status": "SUCCESS", "message": "Wallet balance adjusted." }, "result": { "adjusted": true, "replayed": false, "remaining": 125.5, "customerArchived": false }}{ "statusCode": 400, "statusDetail": { "status": "ERROR", "message": "Request body must be valid JSON." }, "result": {}}{ "statusCode": 401, "statusDetail": { "status": "ERROR", "message": "Invalid API key." }, "result": {}}{ "statusCode": 404, "statusDetail": { "status": "ERROR", "message": "No customer with id \"cus_abc123\"." }, "result": {}}{ "statusCode": 422, "statusDetail": { "status": "ERROR", "message": "No credit with agent key \"summarize\" exists in this workspace." }, "result": {}}{ "statusCode": 500, "statusDetail": { "status": "ERROR", "message": "Could not complete the request." }, "result": {}}The same call, addressed by the customer's externalId. Same body and response.
Authorization
apiKey Organisation-scoped key from Settings → API Keys.
In: header
Path Parameters
Your own id for the customer (its externalId): 1–32 letters, numbers or "-", matched exactly (case-sensitive).
^[A-Za-z0-9-]{1,32}$1 <= length <= 32Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/customers/ext/acme-42/wallet/adjust" \ -H "Content-Type: application/json" \ -d '{ "delta": 25, "notes": "Goodwill top-up", "idempotencyKey": "topup:ord_1042" }'{ "statusCode": 200, "statusDetail": { "status": "SUCCESS", "message": "Wallet balance adjusted." }, "result": { "adjusted": true, "replayed": false, "remaining": 125.5, "customerArchived": false }}{ "statusCode": 400, "statusDetail": { "status": "ERROR", "message": "Request body must be valid JSON." }, "result": {}}{ "statusCode": 401, "statusDetail": { "status": "ERROR", "message": "Invalid API key." }, "result": {}}{ "statusCode": 404, "statusDetail": { "status": "ERROR", "message": "No customer with id \"cus_abc123\"." }, "result": {}}{ "statusCode": 422, "statusDetail": { "status": "ERROR", "message": "No credit with agent key \"summarize\" exists in this workspace." }, "result": {}}{ "statusCode": 500, "statusDetail": { "status": "ERROR", "message": "Could not complete the request." }, "result": {}}