Nikolas
Nikolas

Reputation: 85

Can't send Invoice in Telegram ("Bad Request: can\'t parse prices JSON object")

I'm trying to send an invoice message in the Telegram bot, but get an error {"ok":false,"error_code":400,"description":"Bad Request: can't parse prices JSON object"} Here is my send invoice def:

def sendInvoice(chat_id):

    invoice = {'chat_id': chat_id,
               'title': 'Оплата услуги',
               'description': 'Лайки на фото для инстаграм',
               'payload': 'Payload',
               'provider_token': 'provider_token',
               'start_parameter': 'insta pay',
               'currency': 'UAH',
               'prices': {'label': 'Цена', 'amount': 300000},
               }


    url = URL + 'sendInvoice'
    response = requests.post(url, invoice)
    print(response.__dict__)

Upvotes: 1

Views: 2187

Answers (2)

user14875536
user14875536

Reputation:

You need to convert your list of prices to json serializable - use the json module built it in python

json.dumps([
    {
        "label": "My product",
        "amount": 999999
    }
])

Upvotes: 2

Purya
Purya

Reputation: 133

you can use telebot library :

pip install pyTelegramBotAPI

Code :

import telebot

bot = telebot.TeleBot("TOKEN")
bot.send_invoice()

you can see send_invoice params in github.

Upvotes: 0

Related Questions