3. Счета
Источник: https://docs.paykeeper.ru/dokumentatsiya-json-api/scheta/
API-вызовы раздела «Счета» позволяют автоматически выставлять счета или формировать прямые ссылки на оплату для показа в ЛК, email-рассылке или мессенджерах.
Список запросов
| URI | Назначение |
|---|---|
3.1 /info/invoice/byid/ | Данные счёта по номеру |
3.2 /info/invoice/list/ | История счетов за период |
3.3 /info/invoice/listcount/ | Количество счетов за период |
3.4 /change/invoice/preview/ | Подготовить счёт |
3.5 /change/invoice/send/ | Отправить созданный счёт |
3.6 /change/invoice/revoke/ | Аннулировать счёт |
3.7 /change/invoice/accept-cash/ | Пометить счёт оплаченным наличными |
3.8 /info/invoice/search/ | Поиск счетов |
3.1 Данные счёта /info/invoice/byid/
Тип: GET
Формат: /info/invoice/byid/?id=20140402085214805
Параметры: id — ID счёта.
Параметры ответа:
| Поле | Назначение | Формат |
|---|---|---|
id | Уникальный номер счёта | строка 0-9 |
status | Статус | created, sent, paid, expired |
pay_amount | Сумма | число |
clientid | Идентификатор клиента | строка |
orderid | Номер заказа | строка |
service_name | Название услуги | строка |
client_email | ||
client_phone | Телефон | строка |
expiry_datetime | Срок действия | YYYY-MM-DD HH:MM:SS |
created_datetime | Дата создания | YYYY-MM-DD HH:MM:SS |
paid_datetime | Дата оплаты | YYYY-MM-DD HH:MM:SS / null |
user_id | ID пользователя-создателя | число |
paymentid | Номер платежа | число / null |
Пример:
[
{
"id": "20110115085347329",
"clientid": "Ivanov Ivan Ivanovich",
"orderid": "1337",
"paymentid": "7331",
"service_name": "Document delivery",
"client_email": "ivanov@ivan.ivanovich.com",
"client_phone": "+79254973590",
"created_datetime": "2011-01-15 08:53:47",
"paid_datetime": "2011-01-16 14:12:00",
"expiry_datetime": "2011-01-19 00:00:00",
"pay_amount": "1205.98",
"status": "paid",
"user_id": 9
}
]3.2 История счетов /info/invoice/list/
Тип: GET
Формат: /info/invoice/list/?status[]=paid&start_date=2014-04-15&end_date=2014-04-25&from=30&limit=10
Параметры:
| Параметр | Назначение |
|---|---|
status[] | sent, paid, expired |
start_date | Начало (YYYY-MM-DD) |
end_date | Конец (YYYY-MM-DD) |
from | Пропустить N |
limit | Максимум результатов |
Формат ответа как в 3.1.
Пример:
[
{
"id": "20140415042846859",
"status": "expired",
"pay_amount": "5999.00",
"clientid": "Кристина Бушуева",
"orderid": "3946",
"service_name": "null",
"client_email": "hidden@paykeeper.ru",
"client_phone": "null",
"expiry_datetime": "2014-04-19 00:00:00",
"created_datetime": "2014-04-15 04:28:46",
"paid_datetime": "null"
}
]3.3 Количество счетов /info/invoice/listcount/
Тип: GET
Формат: /info/invoice/listcount/?status[]=expired&status[]=sent&status[]=paid&start_date=2014-04-15&end_date=2014-04-25
Параметры ответа:
| Поле | Назначение |
|---|---|
statuses | Группировка по статусу |
fullcount | Общее количество |
Пример:
{
"statuses": [
{"status": "paid", "count": "7"},
{"status": "expired", "count": "9"},
{"status": "sent", "count": "1"}
],
"fullcount": [{"count": "17"}]
}3.4 Подготовить счёт /change/invoice/preview/
Тип: POST
Формат: /change/invoice/preview/
Параметры:
| Параметр | Назначение |
|---|---|
pay_amount | Сумма |
clientid | ID клиента |
orderid | Номер заказа |
service_name | Название услуги |
client_email | |
client_phone | Телефон |
expiry | Срок (YYYY-MM-DD или YYYY-MM-DD H:i:s) |
token | Токен |
Создаёт счёт и возвращает HTML-превью письма.
Пример ответа:
{
"invoice_id": "20120229133742255",
"invoice_url": "https://pay.example.com/bill/20120229133742255",
"invoice": "<HTML><HEAD><META http-equiv=Content-Type ..."
}Созданные счета имеют статус created. Можно добавить ?pstype= для способа оплаты (например, sbp_default для QR СБП).
service_name как JSON-объект (для чека 54-ФЗ):
{
"cart": "[{\"name\":\"Товар 1\",\"price\":100,\"quantity\":1,\"sum\":\"100\",\"tax\":\"vat20\"},{\"name\":\"Товар 2\",\"price\":100,\"quantity\":2,\"sum\":\"200\",\"tax\":\"vat10\"}]",
"receipt_properties": "{\"agent\":{\"type\":\"other\"},\"supplier\":{\"name\": \"ООО ПОСТАВЩИК\", \"inn\": \"1234567890\", \"phones\": [\"+79990000000\"]}}",
"lang": "ru",
"user_result_callback": "https://ваш-сайт.ru/callback",
"service_name": "Онлайн-заказ"
}3.5 Отправить счёт /change/invoice/send/
Тип: POST
Формат: /change/invoice/send/
Параметры: id, token.
Ответ:
{"result": "success"}3.6 Аннулировать счёт /change/invoice/revoke/
Тип: POST
Формат: /change/invoice/revoke/
Параметры: id, token.
Ответ:
{"result": "success"}3.7 Пометить счёт оплаченным наличными /change/invoice/accept-cash/
Тип: POST
Формат: /change/invoice/accept-cash/
Параметры:
| Параметр | Назначение |
|---|---|
invoice_id | ID счёта |
client_phone | Телефон плательщика (опционально) |
token | Токен |
Ответ:
{
"result": "success",
"payment": {
"id": "20140415042846859",
"status": "success",
"pay_amount": "777.00",
"clientid": "Иван Иванов",
"orderid": "34567",
"service_name": "null",
"client_email": "hidden@paykeeper.ru",
"client_phone": "+79954332810",
"created_datetime": "2023-04-15 04:28:46",
"paid_datetime": "2023-04-19 04:29:15"
}
}3.8 Поиск счетов /info/invoice/search/
Тип: GET
Формат: /info/invoice/search/?query=4038*9682&start_date=2016-01-01&end_date=2017-04-04
Параметры:
| Параметр | Назначение |
|---|---|
query | Подстрока (id, payment id, clientid, orderid, service_name, email, phone). MySQL LIKE; * = % |
start_date | Начало |
end_date | Конец |
Параметры ответа: как в 3.1 + user_id.
Пример:
[
{
"id": "20240320163112427",
"user_id": "3",
"status": "paid",
"pay_amount": "123.00",
"clientid": "Иванов В.В.",
"orderid": "135",
"paymentid": "253",
"service_name": "Оплата за услуги",
"client_email": "test@test.ru",
"client_phone": "+7",
"expiry_datetime": null,
"created_datetime": "2024-03-20 16:31:12",
"paid_datetime": "2024-03-20 16:32:26"
}
]