Returns: Message

class aiogram.methods.send_invoice.SendInvoice(*, chat_id: int | str, title: str, description: str, payload: str, provider_token: str, currency: str, prices: ~typing.List[~aiogram.types.labeled_price.LabeledPrice], message_thread_id: int | None = None, max_tip_amount: int | None = None, suggested_tip_amounts: ~typing.List[int] | None = None, start_parameter: str | None = None, provider_data: str | None = None, photo_url: str | None = None, photo_size: int | None = None, photo_width: int | None = None, photo_height: int | None = None, need_name: bool | None = None, need_phone_number: bool | None = None, need_email: bool | None = None, need_shipping_address: bool | None = None, send_phone_number_to_provider: bool | None = None, send_email_to_provider: bool | None = None, is_flexible: bool | None = None, disable_notification: bool | None = None, protect_content: bool | ~aiogram.client.default.Default | None = <Default('protect_content')>, reply_parameters: ~aiogram.types.reply_parameters.ReplyParameters | None = None, reply_markup: ~aiogram.types.inline_keyboard_markup.InlineKeyboardMarkup | None = None, allow_sending_without_reply: bool | None = None, reply_to_message_id: int | None = None, **extra_data: ~typing.Any)[source]#

Use this method to send invoices. On success, the sent aiogram.types.message.Message is returned.


chat_id: int | str#

Unique identifier for the target chat or username of the target channel (in the format @channelusername)

title: str#

Product name, 1-32 characters

description: str#

Product description, 1-255 characters

payload: str#

Bot-defined invoice payload, 1-128 bytes. This will not be displayed to the user, use for your internal processes.

provider_token: str#

Payment provider token, obtained via @BotFather

currency: str#

Three-letter ISO 4217 currency code, see more on currencies

prices: List[LabeledPrice]#

Price breakdown, a JSON-serialized list of components (e.g. product price, tax, discount, delivery cost, delivery tax, bonus, etc.)

message_thread_id: int | None#

Unique identifier for the target message thread (topic) of the forum; for forum supergroups only

max_tip_amount: int | None#

The maximum accepted amount for tips in the smallest units of the currency (integer, not float/double). For example, for a maximum tip of US$ 1.45 pass max_tip_amount = 145. See the exp parameter in currencies.json, it shows the number of digits past the decimal point for each currency (2 for the majority of currencies). Defaults to 0

suggested_tip_amounts: List[int] | None#

A JSON-serialized array of suggested amounts of tips in the smallest units of the currency (integer, not float/double). At most 4 suggested tip amounts can be specified. The suggested tip amounts must be positive, passed in a strictly increased order and must not exceed max_tip_amount.

start_parameter: str | None#

Unique deep-linking parameter. If left empty, forwarded copies of the sent message will have a Pay button, allowing multiple users to pay directly from the forwarded message, using the same invoice. If non-empty, forwarded copies of the sent message will have a URL button with a deep link to the bot (instead of a Pay button), with the value used as the start parameter

provider_data: str | None#

JSON-serialized data about the invoice, which will be shared with the payment provider. A detailed description of required fields should be provided by the payment provider.

photo_url: str | None#

URL of the product photo for the invoice. Can be a photo of the goods or a marketing image for a service. People like it better when they see what they are paying for.

photo_size: int | None#

Photo size in bytes

photo_width: int | None#

Photo width

model_computed_fields: ClassVar[dict[str, ComputedFieldInfo]] = {}#

A dictionary of computed field names and their corresponding ComputedFieldInfo objects.

photo_height: int | None#

Photo height

need_name: bool | None#

Pass True if you require the user’s full name to complete the order

need_phone_number: bool | None#

Pass True if you require the user’s phone number to complete the order

need_email: bool | None#

Pass True if you require the user’s email address to complete the order

need_shipping_address: bool | None#

Pass True if you require the user’s shipping address to complete the order

send_phone_number_to_provider: bool | None#

Pass True if the user’s phone number should be sent to provider

send_email_to_provider: bool | None#

Pass True if the user’s email address should be sent to provider

is_flexible: bool | None#

Pass True if the final price depends on the shipping method

disable_notification: bool | None#

Sends the message silently. Users will receive a notification with no sound.

protect_content: bool | Default | None#

Protects the contents of the sent message from forwarding and saving

reply_parameters: ReplyParameters | None#

Description of the message to reply to

reply_markup: InlineKeyboardMarkup | None#

A JSON-serialized object for an inline keyboard. If empty, one ‘Pay total price’ button will be shown. If not empty, the first button must be a Pay button.

allow_sending_without_reply: bool | None#

Pass True if the message should be sent even if the specified replied-to message is not found

reply_to_message_id: int | None#

If the message is a reply, ID of the original message


As bot method#

result: Message = await bot.send_invoice(...)

Method as object#


  • from aiogram.methods.send_invoice import SendInvoice

  • alias: from aiogram.methods import SendInvoice

With specific bot#

result: Message = await bot(SendInvoice(...))

As reply into Webhook in handler#

return SendInvoice(...)

As shortcut from received object#