# Mobile top-up

The payer tops up the balance of the recipient's mobile phone: the requisite is the phone number
and the requisite bank is the mobile operator. The payment works like
[SBP payments](sbp.md): the same API method, statuses, callbacks and retry rules. What differs is
`payment_method` and how the payer pays.

| | SBP | Mobile top-up |
| --- | --- | --- |
| `payment_method` | `sbp` | `mobile_topup` |
| What the payer gets | a phone number in `requisite` | a phone number in `requisite` |
| `requisite_bank` | the recipient's bank | the mobile operator, for example `МТС`, `Билайн`, `Мегафон` |
| How the payer pays | an SBP transfer by phone number | tops up this number's balance (mobile payment) |

## Create a payment { #create }

`POST /api/v1/payments` with `payment_method: "mobile_topup"`. The request is
[signed](signing.md) as for SBP, the other fields are as for SBP, see
[SBP payments → Request fields](sbp.md#request-fields). The method has no intrabank transfer
(`is_intrabank`). The method must be in your project's contract.

```json
{
  "merchant_payment_id": "order-1006",
  "amount": "1500.00",
  "payment_method": "mobile_topup"
}
```

## Response { #response }

```json
{
  "id": "7d2a4c1e-5f6b-4a8c-9e0d-2b3c4d5e6f70",
  "merchant_payment_id": "order-1006",
  "status": "processing",
  "amount": 1500,
  "initial_amount": 1500,
  "currency": "RUB",
  "geo_code": "RU",
  "payment_method": "mobile_topup",
  "requisite": "+79991234567",
  "requisite_bank": "МТС",
  "holder_name": null,
  "created_at": "2026-10-23T09:30:00Z",
  "updated_at": "2026-10-23T09:30:01Z"
}
```

- `requisite` — the phone number to top up;
- `requisite_bank` — the mobile operator of that number.

Other response fields and the `merchant_information` settlement are as for SBP:
[Response](sbp.md#response) and [Settlement `merchant_information`](sbp.md#merchant-information).

## What to show the payer { #payer-screen }

- **Phone number** — `requisite` with a "Copy" button.
- **Operator** — `requisite_bank`: the payer picks it in the mobile payments section.
- **Amount** — exactly `amount`, in one payment.
- **Deadline** — a countdown from `created_at` for your project's payment lifetime (15 minutes
  by default).

!!! warning "The number is for this payment only"
    Do not store the number or show it again. Create a new payment for a new purchase.

## Statuses and result { #result }

Statuses, callbacks and polling are the same as for SBP:
[Statuses](sbp.md#statuses) and [Getting the result](sbp.md#result).