{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/brevo/main/json-schema/brevo-balance-definition-schema.json", "title": "balanceDefinition", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/brevo-balance-api-openapi.yml#/components/schemas/balanceDefinition", "type": "object", "properties": { "id": { "type": "string", "format": "uuid", "description": "Unique identifier for the balance definition." }, "name": { "type": "string", "description": "Name of the balance definition." }, "description": { "type": "string", "description": "Short description of the balance definition." }, "imageRef": { "type": "string", "format": "uri", "description": "Optional image reference URL." }, "meta": { "type": "object", "additionalProperties": { "description": "Any type" }, "description": "Additional metadata for the balance definition." }, "unit": { "$ref": "#/$defs/BalanceDefinitionUnit", "description": "Unit of balance measurement." }, "minAmount": { "type": "number", "format": "double", "description": "Minimum allowable balance." }, "maxAmount": { "type": "number", "format": "double", "description": "Maximum allowable balance." }, "maxCreditAmountLimit": { "type": "number", "format": "double", "description": "Maximum credit allowed per operation." }, "maxDebitAmountLimit": { "type": "number", "format": "double", "description": "Maximum debit allowed per operation." }, "balanceOptionAmountOvertakingStrategy": { "$ref": "#/$defs/BalanceDefinitionBalanceOptionAmountOvertakingStrategy", "description": "Partial enables partial credit of balance if maximum balance limit is reached. Strict enables rejection of a transaction if it will breach the max balance limit." }, "balanceOptionCreditRounding": { "$ref": "#/$defs/BalanceDefinitionBalanceOptionCreditRounding", "description": "Rounding strategy for credit transactions." }, "balanceOptionDebitRounding": { "$ref": "#/$defs/BalanceDefinitionBalanceOptionDebitRounding", "description": "Rounding strategy for debit transactions." }, "balanceAvailabilityDurationValue": { "type": "integer", "description": "Number of time units before the balance expires." }, "balanceAvailabilityDurationUnit": { "$ref": "#/$defs/BalanceDefinitionBalanceAvailabilityDurationUnit", "description": "Unit of time for the balance availability duration." }, "balanceAvailabilityDurationModifier": { "$ref": "#/$defs/BalanceDefinitionBalanceAvailabilityDurationModifier", "description": "Modifier for balance availability duration. startOfPeriod causes expiry at the start of the period, endOfPeriod at the end. noModification uses the exact duration from the credit date." }, "balanceExpirationDate": { "type": "string", "description": "Fixed expiration date in dd/mm format. The balance expires when this date next appears in the calendar. Only one of balanceExpirationDate or balance availability duration fields can be used." }, "createdAt": { "type": "string", "format": "date-time", "description": "Timestamp of balance definition creation." }, "updatedAt": { "type": "string", "format": "date-time", "description": "Timestamp of the last update." }, "deletedAt": { "type": "string", "format": "date-time", "description": "Timestamp of balance definition deletion (nullable)." } }, "$defs": { "BalanceDefinitionBalanceAvailabilityDurationModifier": { "type": "string", "enum": [ "noModification", "startOfPeriod", "endOfPeriod" ], "description": "Modifier for balance availability duration. startOfPeriod causes expiry at the start of the period, endOfPeriod at the end. noModification uses the exact duration from the credit date.", "title": "BalanceDefinitionBalanceAvailabilityDurationModifier" }, "BalanceDefinitionBalanceAvailabilityDurationUnit": { "type": "string", "enum": [ "day", "week", "month", "year" ], "description": "Unit of time for the balance availability duration.", "title": "BalanceDefinitionBalanceAvailabilityDurationUnit" }, "BalanceDefinitionBalanceOptionAmountOvertakingStrategy": { "type": "string", "enum": [ "strict", "partial" ], "description": "Partial enables partial credit of balance if maximum balance limit is reached. Strict enables rejection of a transaction if it will breach the max balance limit.", "title": "BalanceDefinitionBalanceOptionAmountOvertakingStrategy" }, "BalanceDefinitionBalanceOptionCreditRounding": { "type": "string", "enum": [ "lower", "upper", "natural" ], "description": "Rounding strategy for credit transactions.", "title": "BalanceDefinitionBalanceOptionCreditRounding" }, "BalanceDefinitionBalanceOptionDebitRounding": { "type": "string", "enum": [ "lower", "upper", "natural" ], "description": "Rounding strategy for debit transactions.", "title": "BalanceDefinitionBalanceOptionDebitRounding" }, "BalanceDefinitionUnit": { "type": "string", "enum": [ "POINTS", "EUR", "USD", "MXN", "GBP", "INR", "CAD", "SGD", "RON", "JPY", "MYR", "CLP", "PEN", "MAD", "AUD", "CHF", "BRL" ], "description": "Unit of balance measurement.", "title": "BalanceDefinitionUnit" } } }