Skip to main content
POST
/
v1
/
participants
/
{id}
/
balances
/
adjust
Adjust participant balance
curl --request POST \
  --url https://api.scrip.dev/v1/participants/{id}/balances/adjust \
  --header 'Content-Type: application/json' \
  --header 'X-API-Key: <api-key>' \
  --data '
{
  "amount": "100.00",
  "asset_id": "550e8400-e29b-41d4-a716-446655440001",
  "description": "Customer service credit",
  "program_id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "CREDIT",
  "allow_negative": false,
  "bucket": "AVAILABLE"
}
'
{
  "amount": "100.00",
  "asset_id": "550e8400-e29b-41d4-a716-446655440001",
  "balance": {
    "available": "1400.00",
    "deferred": "0.00",
    "held": "200.00"
  },
  "bucket": "AVAILABLE",
  "journal_entry_id": "550e8400-e29b-41d4-a716-446655440000",
  "message": "Balance adjusted successfully",
  "program_id": "550e8400-e29b-41d4-a716-446655440000",
  "type": "CREDIT"
}
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.

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"

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"