Оплата номеров
Счета на продление номеров для клиентов, которым оплату ведёт платформа. Суммы — в копейках.
Выставить счёт за номер
POST
/v1/paymentsСчёт на N периодов номера по вашему прайс-листу. Отправьте человека по ссылке payUrl; когда платёжная система подтвердит оплату, номер продлится на days дней и придёт событие payment.paid.
Только для клиентов, которым оплату ведёт платформа (billingMode: platform). Сумма — снимок прайса на момент создания.
Тело запроса
accountIduuidобязательнокакой номер оплачиваем
periodsint 1…12сколько периодов (по умолчанию 1)
emailemailкуда прислать чек
Ошибки
| 422 | payments_disabled | онлайн-оплата на платформе не настроена |
| 422 | no_price | для мессенджера номера нет цены |
| 429 | rate_limited | больше 10 неоплаченных счетов на номер за час — оплатите или используйте выставленный |
| 403 | billing_managed_by_tenant | вы сами ведёте оплату — используйте PUT /v1/accounts/{id}/billing |
| 404 | not_found | номера нет или он принадлежит другому клиенту |
Запрос
curl -X POST "https://msg.xaxu.am/v1/payments" \
-H "Authorization: Bearer $XM_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"periods": 1,
"email": "buh@example.ru"
}'Ответ 201
{
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
"invoiceNumber": 1042,
"tenantId": "c3d4e5f6-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"status": "pending",
"amountMinor": 299000,
"currency": "RUB",
"periods": 1,
"days": 30,
"isTest": false,
"email": "buh@example.ru",
"description": "Номер WhatsApp «Отдел продаж», 30 дней",
"createdAt": "2026-10-10T09:40:00.000Z",
"paidAt": null,
"credited": false,
"note": null,
"payUrl": "https://auth.robokassa.ru/Merchant/Index.aspx?…"
}Список счетов
GET
/v1/paymentsСначала новые. Тестовые счета (isTest) оплачиваются «понарошку» и номер не продлевают.
Параметры запроса
accountIduuidсчета одного номера
status"pending" | "paid"неоплаченные / оплаченные
beforeintномер счёта из
next прошлого ответаlimitint 1…100размер страницы (по умолчанию 50)
Запрос
curl "https://msg.xaxu.am/v1/payments?status=pending&limit=20" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"payments": [
{
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
"invoiceNumber": 1042,
"tenantId": "c3d4e5f6-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"status": "pending",
"amountMinor": 299000,
"currency": "RUB",
"periods": 1,
"days": 30,
"isTest": false,
"email": "buh@example.ru",
"description": "Номер WhatsApp «Отдел продаж», 30 дней",
"createdAt": "2026-10-10T09:40:00.000Z",
"paidAt": null,
"credited": false,
"note": null,
"payUrl": "https://auth.robokassa.ru/Merchant/Index.aspx?…"
}
],
"next": null
}Один счёт
GET
/v1/payments/:idПараметры пути
iduuidобязательноid счёта
Ошибки
| 404 | not_found | счёта нет или он принадлежит другому клиенту |
Запрос
curl "https://msg.xaxu.am/v1/payments/{id}" \
-H "Authorization: Bearer $XM_API_KEY"Ответ 200
{
"id": "2a3b4c5d-6e7f-4a8b-9c0d-1e2f3a4b5c6d",
"invoiceNumber": 1042,
"tenantId": "c3d4e5f6-1a2b-4c3d-8e9f-0a1b2c3d4e5f",
"accountId": "5b1e9c3a-8f2d-4c71-9a0e-2d6f1b7c4e10",
"status": "paid",
"amountMinor": 299000,
"currency": "RUB",
"periods": 1,
"days": 30,
"isTest": false,
"email": "buh@example.ru",
"description": "Номер WhatsApp «Отдел продаж», 30 дней",
"createdAt": "2026-10-10T09:40:00.000Z",
"paidAt": "2026-10-10T09:44:10.000Z",
"credited": true,
"note": null,
"payUrl": null
}