Create a customer balance transaction

POST /v1/customers/:id/balance_transactions

Creates an immutable transaction that updates the customer’s credit balance.

Parameters

  • amountintegerRequired

    The integer amount in the smallest currency unit to apply to the customer’s credit balance.

  • currencyenumRequired

    Three-letter ISO currency code, in lowercase. Must be a supported currency. Specifies the invoice_credit_balance that this transaction will apply to. If the customer’s currency is not set, it will be updated to this value.

  • descriptionstring

    An arbitrary string attached to the object. Often useful for displaying to users.

    The maximum length is 350 characters.

  • metadatamap

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

Returns

Returns a customer balance transaction object if the call succeeded.

curl https://api.stripe.com/v1/customers//balance_transactions \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-d amount=-500 \
-d currency=usd
Response
{
"object": "customer_balance_transaction",
"amount": -500,
"created": 1680216086,
"credit_note": null,
"currency": "usd",
"customer": "",
"description": null,
"ending_balance": -500,
"invoice": null,
"livemode": false,
"metadata": {},
"type": "adjustment"
}

Update a customer credit balance transaction

POST /v1/customers/:id/balance_transactions/:id

Most credit balance transaction fields are immutable, but you may update its description and metadata.

Parameters

  • descriptionstring

    An arbitrary string attached to the object. Often useful for displaying to users.

    The maximum length is 350 characters.

  • metadatamap

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

Returns

Returns a customer balance transaction object if the call succeeded.

curl https://api.stripe.com/v1/customers//balance_transactions/ \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:" \
-d "metadata[order_id]=6735"
Response
{
"object": "customer_balance_transaction",
"amount": -500,
"created": 1680216086,
"credit_note": null,
"currency": "usd",
"customer": "",
"description": null,
"ending_balance": -500,
"invoice": null,
"livemode": false,
"metadata": {
"order_id": "6735"
},
"type": "adjustment"
}

Retrieve a customer balance transaction

GET /v1/customers/:id/balance_transactions/:id

Retrieves a specific customer balance transaction that updated the customer’s balances.

Parameters

No parameters.

Returns

Returns a customer balance transaction object if a valid identifier was provided.

curl https://api.stripe.com/v1/customers//balance_transactions/ \
-u "sk_test_BQokikJOvBiI2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2:"
Response
{
"object": "customer_balance_transaction",
"amount": -500,
"created": 1680216086,
"credit_note": null,
"currency": "usd",
"customer": "",
"description": null,
"ending_balance": -500,
"invoice": null,
"livemode": false,
"metadata": {},
"type": "adjustment"
}