Skip to content

CreditTransaction

Sanitized authoritative credit movement with lot and reservation provenance.

const CreditTransaction: Schema.toTaggedUnion<"type", readonly [Schema.Struct<{
type: Schema.Literal<"issued">;
lotId: Schema.brand<Schema.String, "CreditLotId">;
lotSequence: Schema.brand<Schema.Int, "CreditLotHistorySequence">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
occurredAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
recordedAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
paymentId: Schema.brand<Schema.String, "PaymentId">;
checkoutId: Schema.brand<Schema.String, "CheckoutId">;
benefitIndex: Schema.Int;
}>, Schema.Struct<{
type: Schema.Literal<"reserved">;
lotId: Schema.brand<Schema.String, "CreditLotId">;
lotSequence: Schema.brand<Schema.Int, "CreditLotHistorySequence">;
reservationId: Schema.brand<Schema.String, "CreditReservationId">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
occurredAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
recordedAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
expiresAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
}>, Schema.Struct<{
type: Schema.Literal<"consumed">;
lotId: Schema.brand<Schema.String, "CreditLotId">;
lotSequence: Schema.brand<Schema.Int, "CreditLotHistorySequence">;
reservationId: Schema.brand<Schema.String, "CreditReservationId">;
occurredAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
recordedAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
}>, Schema.Struct<{
type: Schema.Literal<"released">;
lotId: Schema.brand<Schema.String, "CreditLotId">;
lotSequence: Schema.brand<Schema.Int, "CreditLotHistorySequence">;
reservationId: Schema.brand<Schema.String, "CreditReservationId">;
occurredAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
recordedAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
reason: Schema.Literals<readonly ["merchant_released", "reservation_expired"]>;
}>, Schema.Struct<{
type: Schema.Literal<"refunded">;
lotId: Schema.brand<Schema.String, "CreditLotId">;
lotSequence: Schema.brand<Schema.Int, "CreditLotHistorySequence">;
quantity: Schema.brand<Schema.BigInt, "UsageCreditQuantity">;
occurredAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
recordedAt: Schema.brand<Schema.Int, "EpochMilliseconds">;
}>]>;