xaxumessageAPI
Методы API

Оплата номеров

Счета на продление номеров для клиентов, которым оплату ведёт платформа. Суммы — в копейках.

Выставить счёт за номер

POST/v1/payments
API-ключ клиентаУспех: 201

Счёт на N периодов номера по вашему прайс-листу. Отправьте человека по ссылке payUrl; когда платёжная система подтвердит оплату, номер продлится на days дней и придёт событие payment.paid.

Только для клиентов, которым оплату ведёт платформа (billingMode: platform). Сумма — снимок прайса на момент создания.

Тело запроса

accountIduuidобязательно
какой номер оплачиваем
periodsint 1…12
сколько периодов (по умолчанию 1)
emailemail
куда прислать чек

Ошибки

422payments_disabledонлайн-оплата на платформе не настроена
422no_priceдля мессенджера номера нет цены
429rate_limitedбольше 10 неоплаченных счетов на номер за час — оплатите или используйте выставленный
403billing_managed_by_tenantвы сами ведёте оплату — используйте PUT /v1/accounts/{id}/billing
404not_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
API-ключ клиентаУспех: 200

Сначала новые. Тестовые счета (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
API-ключ клиентаУспех: 200

Параметры пути

iduuidобязательно
id счёта

Ошибки

404not_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
}