# sib_balance.begintransaction: Sendinblue Package for Balance operations that could not be mapped to a table.
sib_balance.begintransaction: Sendinblue Package for Balance operations that could not be mapped to a table.
Creates new transaction and returns informationParameters of Procedure
The following parameters can be used to control the behaviour of the procedure `sib_balance.begintransaction`. A value must be provided at all times for required parameters, but optional parameters in general do not need to have a value and the execution will default to a pre-defined behaviour. Values can be specified by position and by name. In both cases, all parameters not specified will be evaluated using their default values.
Value specification by position is done by listing all values from the first to the last needed value. For example: a `begin package.procedure(value1, value2, value3); end` on a procedure with four parameters will use the default value for the fourth parameter and the specified values for the first three.
Value specification by name is done by listing all values that require a value. For example with `begin package.procedure(name1 => value1, name3 => value3); end` on the same procedure will use the default values for the second and fourth parameters and the specified values for the first and third.
| Name | Data Type | Required | Default Value | Documentation |
|---|:---:|:---:|:---:|---|
| `p_pid` | `guid` | ☑ | | Loyalty Program Id |
| `amount` | `decimal` | ☑ | | Transaction amount. A positive value creates a credit transaction and a negative value creates a debit transaction (unless transactionType is explicitly provided). |
| `transactionType` | `string` | ☐ | | Explicit transaction type. If not provided, the type is inferred from the sign of the amount (positive = credit, negative = debit). (Values: credit, debit) |
| `balanceDefinitionId` | `guid` | ☑ | | Unique identifier (UUID) of the associated balance definition. |
| `contactId` | `int64` | ☐ | | Unique identifier of the contact involved in the transaction. Required unless `LoyaltySubscriptionId` is provided. |
| `LoyaltySubscriptionId` | `string` | ☐ | | Unique identifier for the loyalty subscription. Required unless `contactId` is provided. |
| `ttl` | `int64` | ☐ | | Time-to-live for the transaction in seconds. Must be at least 10 seconds if provided. |
| `eventTime` | `datetime` | ☐ | | Timestamp specifying when the transaction event occurred (ISO 8601 / RFC 3339 format). |
| `autoComplete` | `boolean` | ☐ | | Whether the transaction should be automatically completed. |
| `balanceExpiryInMinutes` | `int64` | ☐ | | Expiry time for the balance in minutes. Must be greater than 0 if provided. Only applicable when autoComplete is true. |