> For the complete documentation index, see [llms.txt](https://wiki.tribute.top/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://wiki.tribute.top/br-pt/para-lojas/api/models.md).

# Models

## The Error object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"Error":{"type":"object","required":["error","message"],"properties":{"error":{"type":"string","description":"Error code","enum":["error_bad_request","error_not_found","error_not_permitted","no_access"]},"message":{"type":"string","description":"Error description"}}}}}}
```

## The Shop object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"Shop":{"type":"object","required":["id","userId","name","link","callbackUrl","recurrent","onlyStars","tokenCharging","status"],"properties":{"id":{"type":"integer","format":"uint64","description":"Shop ID"},"userId":{"type":"integer","description":"Shop owner user ID"},"name":{"type":"string","description":"Shop name"},"link":{"type":"string","description":"Shop link/slug"},"callbackUrl":{"type":"string","format":"uri","description":"Webhook callback URL for order notifications"},"recurrent":{"type":"boolean","description":"Whether recurring payments are available"},"onlyStars":{"type":"boolean","description":"Whether only Telegram Stars payment is accepted"},"tokenCharging":{"type":"boolean","description":"Whether merchant-initiated token charging is enabled"},"status":{"type":"integer","description":"Shop status (0 = inactive, 1 = active)","enum":[0,1]}}}}}}
```

## The ShopOrder object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrder":{"type":"object","required":["uuid","shopId","amount","currency","title","description","status","successUrl","failUrl","paymentUrl","createdAt","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID this order belongs to"},"amount":{"type":"integer","format":"int64","description":"Order amount in smallest currency units (cents/kopecks)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"title":{"type":"string","description":"Order title (max 100 UTF-16 characters)"},"description":{"type":"string","description":"Order description (max 300 UTF-16 characters)"},"status":{"type":"string","description":"Order status. `prepaid` is opt-in (per-seller rollout): card-to-Stars orders where stars have been credited to the buyer but the buyer has not yet confirmed the Telegram Stars charge. Sellers not opted in see `pending` instead.\n","enum":["pending","prepaid","paid","failed"]},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"successUrl":{"type":"string","format":"uri","description":"Redirect URL on successful payment"},"failUrl":{"type":"string","format":"uri","description":"Redirect URL on failed payment"},"paymentUrl":{"type":"string","format":"uri","nullable":true,"description":"Web URL for customer to complete payment in a browser.\n`null` for OnlyStars orders — they can only be paid inside Telegram via `webappPaymentUrl`.\n"},"webappPaymentUrl":{"type":"string","format":"uri","description":"Telegram WebApp payment URL for in-app payment"},"createdAt":{"type":"string","format":"date-time","description":"Order creation timestamp in ISO 8601 format"},"comment":{"type":"string","description":"Optional comment for the order"},"period":{"type":"string","description":"Billing period for recurring orders","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"memberStatus":{"type":"string","description":"Recurring subscription status (only for recurring orders)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format (only for recurring orders)"},"lastPaidTransactionAt":{"type":"string","format":"date-time","nullable":true,"description":"Date of the last paid transaction in ISO 8601 format. Null if no transactions exist."},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units. If set, the initial charge used this amount; subsequent charges use `amount`. Absent for orders without a first-period override.\n"},"sendEmail":{"type":"boolean","description":"Whether a receipt email is sent to the buyer after successful payment (inherited from the shop at creation)"},"image":{"type":"object","nullable":true,"description":"Order image displayed in Telegram Stars invoices and transactions. Null if no image is set.","properties":{"id":{"type":"integer","description":"Image ID"},"path":{"type":"string","format":"uri","description":"Image URL"},"thumbnail":{"type":"string","description":"Base64-encoded thumbnail"},"width":{"type":"integer","description":"Image width in pixels"},"height":{"type":"integer","description":"Image height in pixels"},"fileType":{"type":"string","description":"File type","enum":["image","video"]}}}}}}}}
```

## The ShopOrderPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderPayload":{"type":"object","required":["uuid","shopId","amount","currency","fee","status","isRecurrent"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"The order's regular recurring price — what the 2nd and subsequent\ncharges cost — in smallest currency units (cents/kopecks). For\nrecurring orders with a first-period override, the amount actually\ncharged on this initial CIT is carried by `firstPeriodAmount`.\n"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"fee":{"type":"integer","format":"int64","description":"Platform fee in smallest currency units"},"status":{"type":"string","description":"Order status (webhook is sent only when status = 'paid')","enum":["paid"]},"email":{"type":"string","format":"email","description":"Customer email (optional, may be empty)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"isRecurrent":{"type":"boolean","description":"Whether this is a recurring order"},"period":{"type":"string","description":"Billing period (only for recurring orders)","enum":["weekly","monthly","quarterly","halfyearly","yearly"]},"paymentToken":{"type":"string","format":"uuid","description":"Payment token UUID for merchant-initiated charges (only when tokenCharging is enabled and token was created)"},"cardLast4":{"type":"string","description":"Last 4 digits of the card used for payment (only when tokenCharging is enabled)"},"cardBrand":{"type":"string","description":"Card brand (only when tokenCharging is enabled)"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units — for this initial paid event, the amount actually charged. Present when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."},"memberStatus":{"type":"string","description":"Recurring subscription member status (only for recurring orders)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format (only for recurring orders)"}}}}}}
```

## The ShopOrderChargeFailedPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderChargeFailedPayload":{"type":"object","required":["uuid","shopId","amount","currency","period","chargeRetries"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"Amount attempted for the failed recurring period, in smallest\ncurrency units (cents/kopecks). Equals the order's recurring `amount`;\nthe first-period override (`firstPeriodAmount`) only affects the\ninitial CIT, not subsequent recurring charges.\n"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"period":{"type":"string","description":"Billing period","enum":["weekly","monthly","quarterly","halfyearly","yearly"]},"chargeRetries":{"type":"integer","description":"Number of failed charge attempts (1-3). Retry schedule: 2nd attempt ~2h after the first failed attempt, 3rd attempt ~8h after the first failed attempt. After 3 failures, the subscription is cancelled.","minimum":1,"maximum":3},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"isRecurrent":{"type":"boolean","description":"Whether this is a recurring order"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units. Set when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."},"memberStatus":{"type":"string","description":"Recurring subscription member status","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format"}}}}}}
```

## The ShopOrderChargeSuccessPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderChargeSuccessPayload":{"type":"object","required":["uuid","shopId","amount","currency","period"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"Amount charged for the current recurring period, in smallest currency\nunits (cents/kopecks). Equals the order's recurring `amount`; the\nfirst-period override (`firstPeriodAmount`) only affects the initial CIT,\nnot subsequent recurring charges.\n"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"period":{"type":"string","description":"Billing period","enum":["weekly","monthly","quarterly","halfyearly","yearly"]},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"isRecurrent":{"type":"boolean","description":"Whether this is a recurring order"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units. Set when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."},"memberStatus":{"type":"string","description":"Recurring subscription member status","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format"}}}}}}
```

## The ShopOrderCancelledPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderCancelledPayload":{"type":"object","required":["uuid","shopId","amount","currency","period","cancelReason"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"Order amount in smallest currency units (cents/kopecks)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"period":{"type":"string","description":"Billing period","enum":["weekly","monthly","quarterly","halfyearly","yearly"]},"cancelReason":{"type":"string","description":"Reason for cancellation.\n- `cancelled_by_seller` — cancelled by the shop owner.\n- `charge_failed` — recurring card charge could not be completed (e.g. all retry attempts exhausted, stale pending invoice, internal processing failure).\n- `payment_method_expired` — saved payment method (card) is no longer usable.\n- `stars_subscription_expired` — Telegram Stars subscription stopped renewing on Telegram's side. Covers both pure-Stars subscriptions (no fiat card on file; renewal is handled by Telegram) and OnlyStars card-to-Stars subscriptions whose buyer cancelled on Telegram's side (the card pre-charge is then stopped).\n- `seller_unavailable` — seller can no longer accept payments (account banned/deleted, payments disabled, or verification requirements not met).\n- `last_charge_refunded` — the buyer's most recently created shop-order buyer transaction was refunded. Refunding an older charge while a newer one still exists does NOT cancel the subscription.\n","enum":["cancelled_by_seller","charge_failed","payment_method_expired","stars_subscription_expired","seller_unavailable","last_charge_refunded"]},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"isRecurrent":{"type":"boolean","description":"Whether this is a recurring order"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units. Set when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."},"memberStatus":{"type":"string","description":"Recurring subscription member status (only for recurring orders)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format (only for recurring orders)"}}}}}}
```

## The ShopToken object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopToken":{"type":"object","required":["shopId","token","cardLast4","cardBrand","amount","currency","active","createdAt"],"properties":{"shopId":{"type":"integer","format":"uint64","description":"Shop ID this token belongs to"},"token":{"type":"string","format":"uuid","description":"Payment token UUID"},"cardLast4":{"type":"string","description":"Last 4 digits of the card number"},"cardBrand":{"type":"string","description":"Card brand (VISA, MASTERCARD, etc.)"},"customerId":{"type":"string","description":"Merchant's customer reference (optional)"},"amount":{"type":"integer","format":"int64","description":"Fixed charge amount in smallest currency units"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"active":{"type":"boolean","description":"Whether the token is active and can be charged"},"createdAt":{"type":"string","format":"date-time","description":"Token creation timestamp in ISO 8601 format"},"lastUsedAt":{"type":"string","format":"date-time","description":"Last time the token was charged (optional)"}}}}}}
```

## The ShopCharge object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopCharge":{"type":"object","required":["chargeUuid","shopId","status","amount","currency","createdAt"],"properties":{"chargeUuid":{"type":"string","format":"uuid","description":"Charge UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID this charge belongs to"},"status":{"type":"string","description":"Charge status","enum":["pending","processing","success","failed","timeout"]},"reference":{"type":"string","description":"Merchant reference (optional)"},"amount":{"type":"integer","format":"int64","description":"Charge amount in smallest currency units"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"token":{"type":"string","format":"uuid","description":"Payment token UUID"},"errorCode":{"type":"string","description":"Error code if charge failed (optional)"},"errorMessage":{"type":"string","description":"Error message if charge failed (optional)"},"createdAt":{"type":"string","format":"date-time","description":"Charge creation timestamp in ISO 8601 format"},"processedAt":{"type":"string","format":"date-time","description":"Charge processing completion timestamp (optional)"}}}}}}
```

## The ShopTokenChargeSuccessPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopTokenChargeSuccessPayload":{"type":"object","required":["chargeUuid","shopId","token","amount","currency","processedAt"],"properties":{"chargeUuid":{"type":"string","format":"uuid","description":"Charge UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"token":{"type":"string","format":"uuid","description":"Payment token UUID"},"amount":{"type":"integer","format":"int64","description":"Charge amount in smallest currency units"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"reference":{"type":"string","description":"Merchant reference (optional)"},"processedAt":{"type":"string","format":"date-time","description":"Charge completion timestamp in ISO 8601 format"}}}}}}
```

## The ShopTokenChargeFailedPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopTokenChargeFailedPayload":{"type":"object","required":["chargeUuid","shopId","token","amount","currency","errorCode","errorMessage"],"properties":{"chargeUuid":{"type":"string","format":"uuid","description":"Charge UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"token":{"type":"string","format":"uuid","description":"Payment token UUID"},"amount":{"type":"integer","format":"int64","description":"Charge amount in smallest currency units"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"reference":{"type":"string","description":"Merchant reference (optional)"},"errorCode":{"type":"string","description":"Error code"},"errorMessage":{"type":"string","description":"Detailed error message"}}}}}}
```

## The ShopOrderRefundedPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderRefundedPayload":{"type":"object","required":["uuid","shopId","transactionId","amount","currency","status"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"transactionId":{"type":"integer","format":"uint64","description":"ID of the refunded transaction"},"amount":{"type":"integer","format":"int64","description":"Refunded amount in smallest currency units (cents/kopecks)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"status":{"type":"string","description":"Refund status","enum":["initiated","completed"]},"refundedAt":{"type":"string","format":"date-time","description":"Time when the refund was completed (optional, only present when status is 'completed')"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"isRecurrent":{"type":"boolean","description":"Whether this is a recurring order"},"period":{"type":"string","description":"Billing period","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units. Set when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."},"memberStatus":{"type":"string","description":"Recurring subscription member status (only for recurring orders)","enum":["active","cancelled"]},"memberExpiresAt":{"type":"string","format":"date-time","description":"Recurring subscription expiration date in ISO 8601 format (only for recurring orders)"}}}}}}
```

## The ShopOrderPaymentFailedPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderPaymentFailedPayload":{"type":"object","required":["uuid","shopId","amount","currency","errorCode","errorMessage"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"The order's regular recurring price — what the 2nd and subsequent\ncharges cost — in smallest currency units (cents/kopecks). For\nrecurring orders with a first-period override, the amount that was\nactually attempted on this initial CIT is carried by `firstPeriodAmount`.\n"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"errorCode":{"type":"string","description":"Error code indicating the type of failure"},"errorMessage":{"type":"string","description":"Human-readable error message describing the failure reason"},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"firstPeriodAmount":{"type":"integer","format":"int64","nullable":true,"description":"First-period price in smallest currency units — for this failed initial CIT, the amount that was attempted. Present when the seller supplied `firstPeriodAmount` at order creation; absent otherwise."}}}}}}
```

## The ShopOrderPrepaidPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderPrepaidPayload":{"type":"object","required":["uuid","shopId","amount","currency","starsAmount","onlyStars","starsPurchaseId"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"Order amount in smallest currency units (cents/kopecks)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"period":{"type":"string","description":"Subscription period (omitted for one-time orders)"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars credited to the buyer"},"onlyStars":{"type":"boolean","description":"Always true for this event (card-to-Stars flow)"},"starsPurchaseId":{"type":"integer","format":"uint64","description":"Internal identifier for event correlation"},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"}}}}}}
```

## The ShopOrderPaymentReceivedPayload object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"ShopOrderPaymentReceivedPayload":{"type":"object","required":["uuid","shopId","amount","currency","starsAmount","onlyStars","starsPurchaseId"],"properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"shopId":{"type":"integer","format":"uint64","description":"Shop ID"},"amount":{"type":"integer","format":"int64","description":"Order amount in smallest currency units (cents/kopecks)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"period":{"type":"string","description":"Subscription period (omitted for one-time orders)"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"},"starsPurchaseId":{"type":"integer","format":"uint64","description":"Internal identifier for event correlation"},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"customerId":{"type":"string","description":"Merchant's customer identifier (optional, included if set when creating the order)"}}}}}}
```

## The Transaction object

```json
{"openapi":"3.1.0","info":{"title":"Tribute Shop API","version":"1.0.0"},"components":{"schemas":{"Transaction":{"type":"object","required":["id","type","amount","currency","createdAt","total"],"properties":{"id":{"type":"integer","format":"uint64","description":"Transaction ID"},"type":{"type":"string","description":"Transaction type"},"objectId":{"type":"integer","format":"uint64","description":"Related object ID"},"amount":{"type":"number","format":"double","description":"Transaction amount in currency units (e.g., EUR, RUB)"},"currency":{"type":"string","description":"Currency code (lowercase)","enum":["eur","rub","usd"]},"createdAt":{"type":"integer","format":"int64","description":"Transaction creation timestamp (Unix timestamp in seconds)"},"serviceFee":{"type":"number","format":"double","description":"Service fee amount"},"total":{"type":"number","format":"double","description":"Total amount after fees"},"paymentMethod":{"type":"string","description":"Payment method used"},"isRefunded":{"type":"boolean","description":"Whether the transaction has been refunded"},"isRefundable":{"type":"boolean","description":"Whether the transaction can be refunded"},"isRecurring":{"type":"boolean","description":"Whether this is a recurring payment transaction"},"shopOrder":{"type":"object","description":"Related shop order details (included for shop order transactions)","properties":{"uuid":{"type":"string","format":"uuid","description":"Order UUID"},"title":{"type":"string","description":"Order title"},"description":{"type":"string","description":"Order description"},"amount":{"type":"number","format":"double","description":"Order amount in currency units"},"currency":{"type":"string","description":"Currency code (lowercase)"},"status":{"type":"string","description":"Order status","enum":["pending","paid","failed"]},"email":{"type":"string","format":"email","description":"Customer email (optional)"},"successUrl":{"type":"string","format":"uri","description":"Success redirect URL"},"failUrl":{"type":"string","format":"uri","description":"Failure redirect URL"},"createdAt":{"type":"integer","format":"int64","description":"Order creation timestamp (Unix timestamp in seconds)"},"comment":{"type":"string","description":"Order comment (optional)"},"period":{"type":"string","description":"Billing period","enum":["onetime","weekly","monthly","quarterly","halfyearly","yearly"]},"shopName":{"type":"string","description":"Shop name"},"starsAmount":{"type":"integer","format":"int64","description":"Fixed amount in Telegram Stars (0 if not set)"},"onlyStars":{"type":"boolean","description":"Whether this order only accepts Telegram Stars payment"}}}}}}}}
```
