---
title: payments.paymentForm
description: Payment form
image: https://docs.madelineproto.xyz/favicons/android-chrome-256x256.png
---
# Constructor: payments.paymentForm
[Back to constructors index](index.md)
Payment form
### Attributes:
| Name | Type | Required | Description |
|----------|---------------|----------|-------------|
|can\_save\_credentials|[Bool](../types/Bool.md) | Optional|Whether the user can choose to save credentials.|
|password\_missing|[Bool](../types/Bool.md) | Optional|Indicates that the user can save payment credentials, but only after setting up a [2FA password](https://core.telegram.org/api/srp) (currently the account doesn't have a [2FA password](https://core.telegram.org/api/srp))|
|bot\_id|[int](../types/int.md) | Yes|Bot ID|
|invoice|[Invoice](../types/Invoice.md) | Yes|Invoice|
|provider\_id|[int](../types/int.md) | Yes|Payment provider ID.|
|url|[string](../types/string.md) | Yes|Payment form URL|
|native\_provider|[string](../types/string.md) | Optional|Payment provider name.
One of the following:
\- `stripe`|
|native\_params|[DataJSON](../types/DataJSON.md) | Optional|Contains information about the payment provider, if available, to support it natively without the need for opening the URL.
A JSON object that can contain the following fields:
\- `publishable_key`: Stripe API publishable key
\- `apple_pay_merchant_id`: Apple Pay merchant ID
\- `android_pay_public_key`: Android Pay public key
\- `android_pay_bgcolor`: Android Pay form background color
\- `android_pay_inverse`: Whether to use the dark theme in the Android Pay form
\- `need_country`: True, if the user country must be provided,
\- `need_zip`: True, if the user ZIP/postal code must be provided,
\- `need_cardholder_name`: True, if the cardholder name must be provided
|
|saved\_info|[PaymentRequestedInfo](../types/PaymentRequestedInfo.md) | Optional|Saved server-side order information|
|saved\_credentials|[PaymentSavedCredentials](../types/PaymentSavedCredentials.md) | Optional|Contains information about saved card credentials|
|users|Array of [User](../types/User.md) | Yes|Users|
### Type: [payments.PaymentForm](../types/payments.PaymentForm.md)
### Example:
```php
$payments.paymentForm = ['_' => 'payments.paymentForm', 'can_save_credentials' => Bool, 'password_missing' => Bool, 'bot_id' => int, 'invoice' => Invoice, 'provider_id' => int, 'url' => 'string', 'native_provider' => 'string', 'native_params' => DataJSON, 'saved_info' => PaymentRequestedInfo, 'saved_credentials' => PaymentSavedCredentials, 'users' => [User, User]];
```
Or, if you're into Lua:
```lua
payments.paymentForm={_='payments.paymentForm', can_save_credentials=Bool, password_missing=Bool, bot_id=int, invoice=Invoice, provider_id=int, url='string', native_provider='string', native_params=DataJSON, saved_info=PaymentRequestedInfo, saved_credentials=PaymentSavedCredentials, users={User}}
```