Integración de productos digitales en tu producto
Esta guía está pensada para propietarios de bots y servicios de Telegram que quieran usar Tribute como sistema de pago. Acepta pagos mediante SBP y Telegram Stars, recibe retiros en USDT sin un proveedor de pagos complejo
Beneficios de la integración de productos digitales de Tribute
Para ti, como propietario del servicio:
Aceptación de pagos - SBP y Telegram Stars
Integración sencilla - crea un producto, obtén un enlace, configura un webhook
Infraestructura lista - no necesitas integrar tú mismo a los proveedores de pago
Retiradas automáticas - recibe dinero en USDT
Para tus usuarios:
Pago conveniente - compra con un clic a través de Telegram
Métodos de pago disponibles - SBP, Telegram Stars
Cómo funciona: esquema general
1. Tú creas un producto digital en Tribute
Por ejemplo, para un asistente de IA podría ser "Acceso al asistente de IA durante 1 mes"
2. Obtén un enlace de pago único
Cada producto tiene su propio enlace en el formato:
Para Telegram:
https://telegram.me/tribute/app?startapp=p123Para navegador:
https://web.tribute.tg/p/123
3. Dirige a los usuarios a este enlace
En tu bot u otro servicio, añade un botón "Pagar" que lleve al enlace del producto
4. El usuario paga
El comprador puede:
Pagar directamente con Telegram Stars (si hay saldo disponible)
Comprar Stars vía SBP e intercambiarlas inmediatamente por el producto
5. Recibes un webhook sobre el pago exitoso
Después del pago, llega a tu servidor una solicitud POST con la información de la compra. Más sobre el formato del webhook en la documentación de webhooks
6. Proporciona acceso al usuario
Activa el servicio para el usuario usando el ID de Telegram del webhook
Instrucciones de configuración paso a paso
Paso 1: Registro en Tribute
Abre @tribute en Telegram
Haz clic en "Start" y sigue las instrucciones
Ve a la sección "Author Dashboard"
Paso 2: Creación de un producto digital
En el panel, selecciona "Digital Products" → "Create instant product"
Serás redirigido al chat del bot
Envía al bot un mensaje que se convertirá en tu producto digital. Puede ser cualquier mensaje: por ejemplo, una foto con descripción, un video, un archivo o incluso una nota de voz.
Texto de ejemplo para la integración:
Importante: Este es el mensaje exacto que recibirá el comprador después del pago. Añade instrucciones para el usuario para que entienda qué hacer a continuación. Una vez creado el producto, este mensaje no se puede editar (pero siempre puedes crear un nuevo producto digital con un mensaje diferente).
Después de enviar el mensaje, haz clic en el botón "Create Product" del mensaje del bot
Completa los campos obligatorios:
Moneda - elige la moneda de pago
Nombre - lo que verá el comprador (por ejemplo: "Asistente de IA durante 1 mes")
Descripción - breve descripción del producto
Precio - coste en la moneda seleccionada
Guarda el producto
Después de guardar, recibirás un enlace de pago único que se puede usar en tu integración
Paso 3: Obtención de la clave API
En el panel, abre el menú (tres puntos) → "Settings"
Ve a la sección "API Keys"
Haz clic en "Generate New Key"
Guarda la clave en un lugar seguro: la necesitarás para verificar los webhooks
Paso 4: Configuración de webhooks
En la sección "API Keys", busca el campo "Webhook URL"
Especifica la dirección de tu servidor para recibir webhooks:
Guardar configuración
Paso 5: Procesamiento de webhooks en tu servidor
Después de un pago exitoso de un producto digital, Tribute enviará una solicitud POST a tu URL:
Verificación de la firma del webhook
Cada solicitud contiene un trbt-signature encabezado con la firma HMAC-SHA256 del cuerpo de la solicitud. Los ejemplos de verificación de firma y procesamiento de webhooks están disponibles en la documentación de webhooks
Paso 6: Integración en tu bot
En tu bot de Telegram, añade un botón de pago
Trabajando con la API
Returns a single product by its ID
API key for authentication.
Product ID
Successful response
Product ID
2548Product type
digitalValores posibles: Product name
VPN Access - 1 MonthProduct description
High-speed VPN service with unlimited bandwidth and 50+ server locations worldwideProduct price in smallest currency units (cents for USD/EUR, kopecks for RUB). For physical products this is the starting price, taken from the cheapest variant.
499Currency code
usdValores posibles: Price in Telegram Stars
100Whether payment with Stars is enabled
trueProduct status
approvedValores posibles: Whether this is a custom product
falseWhether card payments are accepted
trueWhether wallet payments are accepted
falseWhether content protection is enabled
trueProduct creation date
2025-08-25T10:30:00ZProduct last update date
2025-08-25T10:30:00ZNumber of pending orders (for custom products)
3Product image URL
https://cdn.example.com/image.jpgDirect link to product in Telegram app
https://t.me/tribute_bot/app?startapp=pf6Web link to product
https://web.tribute.tg/p/f6Bad request (invalid product ID format)
Unauthorized (invalid API key)
Access denied
Product not found
GET /api/v1/products/{id} HTTP/1.1
Host: tribute.tg
Api-Key: YOUR_API_KEY
Accept: */*
{
"id": 2548,
"type": "digital",
"name": "VPN Access - 1 Month",
"description": "High-speed VPN service with unlimited bandwidth and 50+ server locations worldwide",
"amount": 499,
"currency": "usd",
"starsAmount": 100,
"starsAmountEnabled": true,
"status": "approved",
"isCustom": false,
"acceptCards": true,
"acceptWalletPay": false,
"protectContent": true,
"created": "2025-08-25T10:30:00Z",
"updated": "2025-08-25T10:30:00Z",
"pendingOrders": 3,
"imageUrl": "https://cdn.example.com/image.jpg",
"link": "https://t.me/tribute_bot/app?startapp=pf6",
"webLink": "https://web.tribute.tg/p/f6"
}Returns a paginated list of products
API key for authentication.
Page number
1Items per page
20Filter by product type
Sort by ID descending
falseSuccessful response
Bad request
Unauthorized (invalid API key)
GET /api/v1/products HTTP/1.1
Host: tribute.tg
Api-Key: YOUR_API_KEY
Accept: */*
{
"rows": [
{
"id": 2548,
"type": "digital",
"name": "VPN Access - 1 Month",
"description": "High-speed VPN service with unlimited bandwidth and 50+ server locations worldwide",
"amount": 499,
"currency": "usd",
"starsAmount": 100,
"starsAmountEnabled": true,
"status": "approved",
"isCustom": false,
"acceptCards": true,
"acceptWalletPay": false,
"protectContent": true,
"created": "2025-08-25T10:30:00Z",
"updated": "2025-08-25T10:30:00Z",
"pendingOrders": 3,
"imageUrl": "https://cdn.example.com/image.jpg",
"link": "https://t.me/tribute_bot/app?startapp=pf6",
"webLink": "https://web.tribute.tg/p/f6"
}
],
"meta": {
"total": 1,
"offset": 1,
"limit": 1
}
}Cancels a digital product purchase and refunds the payment.
Important: This endpoint only supports refunds for purchases paid with Telegram Stars. Purchases paid with other payment methods cannot be refunded via this endpoint.
API key for authentication.
Digital product purchase ID (ProductPurchase.ID)
12345Purchase successfully cancelled and payment refunded
Operation success status
trueCancelled purchase ID
12345Success message
purchase cancelled and payment refundedBad request
Unauthorized (invalid API key)
Access denied (not the product owner)
Purchase or user not found
Internal server error
POST /api/v1/products/purchases/{purchaseId}/cancel HTTP/1.1
Host: tribute.tg
Api-Key: YOUR_API_KEY
Accept: */*
{
"success": true,
"purchaseId": 12345,
"message": "purchase cancelled and payment refunded"
}Notification about a digital product purchase
new_digital_productValores posibles: Event creation time
2025-03-20T01:15:58.33246ZEvent sending time
2025-03-20T01:15:58.542279448ZWebhook successfully processed
okInvalid webhook data
Invalid webhook signature
Payload
{
"name": "new_digital_product",
"created_at": "2025-03-20T01:15:58.33246Z",
"sent_at": "2025-03-20T01:15:58.542279448Z",
"payload": {
"product_id": 456,
"product_name": "VPN Access - 1 Month",
"amount": 500,
"currency": "usd",
"trb_user_id": "T-31326",
"telegram_user_id": 12321321,
"telegram_username": "durov",
"purchase_id": 78901,
"transaction_id": 234567,
"purchase_created_at": "2025-03-20T01:15:58.33246Z"
}
}Notification about a digital product refund. This webhook is triggered when:
- A user refunds Stars through App Store, Google Play, or their bank
- A creator initiates a refund via the API
Important: Use purchase_id to match refunds with original purchases and revoke access to digital content.
digital_product_refundedValores posibles: Event creation time
2025-03-20T01:15:58.33246ZEvent sending time
2025-03-20T01:15:58.542279448ZWebhook successfully processed
okInvalid webhook data
Invalid webhook signature
Payload
{
"name": "digital_product_refunded",
"created_at": "2025-03-20T01:15:58.33246Z",
"sent_at": "2025-03-20T01:15:58.542279448Z",
"payload": {
"product_id": 456,
"product_name": "VPN Access - 1 Month",
"amount": 500,
"currency": "usd",
"trb_user_id": "T-31326",
"telegram_user_id": 12321321,
"telegram_username": "durov",
"purchase_id": 78901,
"transaction_id": 234567,
"refund_reason": "telegram_refund",
"refunded_at": "2025-03-20T02:30:00.33246Z"
}
}Creación de diferentes tarifas
Para diferentes niveles, crea varios productos digitales:
Asistente de IA - 1 mes (ID: 456) - $9.99
Asistente de IA - 3 meses (ID: 457) - $24.99
Asistente de IA - 1 año (ID: 458) - $79.99
Gestión de reintentos
Cuando falla la entrega del webhook, Tribute reintenta después de:
5 minutos
15 minutos
30 minutos
1 hora
10 horas
Asegúrate de que tu controlador sea idempotente (reprocesar el mismo pago no creará duplicados).
Retiradas
Puedes retirar los fondos ganados en USDT (las retiradas a tarjeta bancaria se añadirán en el futuro). Configura las retiradas automáticas en la sección "Wallet".
Preguntas frecuentes
Última actualización