Skip to main content
POST
Adjust participant balance
Manually credit or debit a participant’s balance. Intended for customer service corrections, manual workflows, and one-off adjustments outside of the rules engine.
  • CREDIT: adds funds. No upper bound
  • DEBIT: removes funds. Fails if the participant does not have sufficient available balance, unless allow_negative is true (used for clawbacks)
Every adjustment creates a journal entry in the participant’s transaction history for auditability.
For usage patterns and examples, see the Balance Operations guide.

Authorizations

X-API-Key
string
header
required

API key passed in the X-API-Key header.

Headers

Idempotency-Key
string

Idempotency key (1-255 printable ASCII chars). Equivalent to the idempotency_key body field; if both are provided they must match. Replays with the same key and identical parameters return the original journal_entry_id; the same key with different parameters returns 409 idempotency_conflict.

Maximum string length: 255

Path Parameters

id
string<uuid>
required

Participant ID

Body

application/json

Adjustment details

amount
string
required

Adjustment amount (must be positive)

Minimum string length: 1
Example:

"100.00"

asset_id
string<uuid>
required

Asset to adjust

Example:

"550e8400-e29b-41d4-a716-446655440001"

description
string
required

Reason for this adjustment

Required string length: 1 - 500
Example:

"Customer service credit"

program_id
string<uuid>
required

Program this adjustment belongs to

Example:

"550e8400-e29b-41d4-a716-446655440000"

type
enum<string>
required

Whether to credit or debit

Available options:
CREDIT,
DEBIT
Example:

"CREDIT"

allow_negative
boolean

DEBIT only. When true, allows this adjustment to overdraw and set a negative balance.

Example:

false

bucket
enum<string>

Balance bucket to adjust. Defaults to AVAILABLE

Available options:
AVAILABLE,
HELD
Example:

"AVAILABLE"

expires_at
string

CREDIT + LOT only. RFC3339 timestamp or positive duration from request processing time. Not supported with bucket HELD.

Required string length: 1 - 255
Example:

"90d"

idempotency_key
string

Client-provided key to dedupe retries. May also be supplied via the Idempotency-Key HTTP header; when both are present they must match. Identical adjusts with the same key return the original journal_entry_id; a reused key with different payload returns 409 idempotency_conflict.

Required string length: 1 - 255
Example:

"adjust-order-123"

matures_at
string

CREDIT + LOT only. RFC3339 timestamp or positive duration from request processing time. Future values route the credit to DEFERRED. Not supported with bucket HELD.

Required string length: 1 - 255
Example:

"7d"

Response

Adjustment applied

amount
string

Amount adjusted

Example:

"100.00"

asset_id
string<uuid>

Asset ID

Example:

"550e8400-e29b-41d4-a716-446655440001"

balance
object

Balance after the adjustment

bucket
string

Balance bucket that was adjusted

Example:

"AVAILABLE"

journal_entry_id
string<uuid>

Ledger journal entry created by this adjustment

Example:

"550e8400-e29b-41d4-a716-446655440000"

message
string

Confirmation message

Example:

"Balance adjusted successfully"

program_id
string<uuid>

Program ID

Example:

"550e8400-e29b-41d4-a716-446655440000"

type
string

Whether the adjustment was a credit or debit

Example:

"CREDIT"