Фискализация без выплаты
Вы можете провести фискализацию отдельно от выплаты — то есть зарегистрировать выплату самозанятому в налоговой и получить чек.
Этот метод доступен по запросу. Подробности можно узнать у менеджера в Банке 131.
Если чек выдали по ошибке, фискализацию можно отменить.
Как провести фискализацию
Шаг 1. Создайте платежную сессию
Отправьте
запрос session/create
и получите идентификатор session_id
. Тело запроса — пустое.
Пример создания сессии
- cURL
- PHP
curl -X POST \
https://demo.bank131.ru/api/v1/session/create \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{}'
use Bank131\SDK\API\Request\Builder\RequestBuilderFactory;
use Bank131\SDK\Client;
use Bank131\SDK\Config;
$config = new Config(
'https://demo.bank131.ru',
'your_project_name',
file_get_contents('/path/to/your/private_key.pem')
);
$client = new Client($config);
$request = RequestBuilderFactory::create()
->createPayoutSession()
->build();
$response = $client->session()->create($request);
Шаг 2. Отправьте запрос на фискализацию
Создайте запрос с помощью метода fiscalization
.
В параметре session_id
передайте идентификатор сессии, созданной на предыдущем шаге.
В объекте professional_income_taxpayer
передайте:
- в поле
payer_type
значениеlegal
(если выплату отправляет российская компания); - в поле
payer_tax_number
— ИНН компании, которая отправляет выплату (нужен, еслиpayer_type: legal
); - в поле
tax_reference
— ИНН самозанятого; - в
services
— данные для формирования чека.
Пример запроса
curl --location --request POST 'https://demo.bank131.ru/api/v1/fiscalization' \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id": "ps_2704",
"fiscalization_details": {
"professional_income_taxpayer": {
"tax_reference": "123456789012",
"payer_type": "legal",
"payer_tax_number": "3316004777",
"payer_name": "ООО Вектор",
"services": [
{
"name": "Доставка товара",
"amount_details": {
"amount": 5000,
"currency": "rub"
}
},
{
"name": "Доставка сырья",
"amount_details": {
"amount": 5000,
"currency": "rub"
}
}
]
}
}
}'
Пример успешного ответа
{
"status": "ok",
"session": {
"id": "ps_2704",
"status": "in_progress",
"created_at": "2021-05-27T08:13:33.736384Z",
"updated_at": "2021-05-27T08:13:33.871729Z",
"payments": [
{
"id": "po_2705",
"status": "in_progress",
"created_at": "2021-05-27T08:13:33.860754Z",
"amount_details": {
"amount": 15000,
"currency": "rub"
},
"amounts": {
"gross": {
"amount": 15000,
"currency": "rub"
}
},
"fiscalization_details": {
"professional_income_taxpayer": {
"services": [
{
"name": "Доставка товара",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 2
},
{
"name": "Доставка сырья",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 1
}
],
"tax_reference": "123456789012",
"payer_type": "legal",
"payer_tax_number": "3316004777",
"payer_name": "ООО Вектор"
}
}
}
]
}
}
Шаг 3. Дождитесь уведомления о результате
Банк 131 отправит вам вебхук payment_finished
. В теле вебхука придут все данные, которые вы отправили в запросе, и ссылка на чек из налоговой — в параметре fiscalization_details.receipt
.
Пример вебхука
{
"type": "payment_finished",
"session": {
"id": "ps_2704",
"status": "accepted",
"created_at": "2021-06-08T09:07:34.689353Z",
"updated_at": "2021-06-08T09:07:53.491653Z",
"payments": [
{
"id": "po_23695",
"status": "succeeded",
"created_at": "2021-06-08T09:07:42.591416Z",
"finished_at": "2021-06-08T09:07:53.319963Z",
"amount_details": {
"amount": 15000,
"currency": "rub"
},
"amounts": {
"net": {
"amount": 15000,
"currency": "rub"
},
"gross": {
"amount": 15000,
"currency": "rub"
}
},
"fiscalization_details": {
"professional_income_taxpayer": {
"services": [
{
"name": "Доставка товара",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 2
},
{
"name": "Доставка сырья",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 1
}
],
"tax_reference": "645493572846",
"receipt": {
"id": "203zpt6nu5",
"link": "https://himself-ktr.nalog.ru/api/v1/receipt/645493572846/203zpt6nu5/print"
},
"payer_type": "legal",
"payer_tax_number": "3316004790",
"payer_name": "ООО Вектор"
}
}
}
]
}
}
Как отменить фискализацию
Иногда фискализацию нужно отменить, а выданный чек — аннулировать. Например, если выплата не прошла или чек выдали по ошибке.
Отправьте запрос на отмену фискализации
Создайте запрос session/refund
. В поле session_id
передайте идентификатор сессии из запроса на фискализацию, которую вы отменяете. В поле amount
— полную сумму чека.
Пример запроса
curl -X POST \
https://demo.bank131.ru/api/v1/session/refund \
-H 'Content-Type: application/json' \
-H 'X-PARTNER-PROJECT: your_project_name' \
-H 'X-PARTNER-SIGN: signature' \
-d '{
"session_id":"ps_2704"
}'
Дождитесь вебхука payment_refunded
Банк 131 пришлет вебхук payment_refunded
со ссылкой на аннулированный чек.
При отмене фискализации Банк 131 передает в налоговую причину аннулирования «Чек сформирован ошибочно».
Пример вебхука
{
"type": "payment_refunded",
"session": {
"id": "ps_2704",
"status": "accepted",
"created_at": "2021-06-08T09:07:34.689353Z",
"updated_at": "2021-06-08T09:16:48.624196Z",
"payments": [
{
"id": "po_23695",
"status": "succeeded",
"created_at": "2021-06-08T09:07:42.591416Z",
"finished_at": "2021-06-08T09:07:53.319963Z",
"amount_details": {
"amount": 15000,
"currency": "rub"
},
"amounts": {
"net": {
"amount": 15000,
"currency": "rub"
},
"gross": {
"amount": 15000,
"currency": "rub"
}
},
"fiscalization_details": {
"professional_income_taxpayer": {
"services": [
{
"name": "Доставка товара",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 2
},
{
"name": "Доставка сырья",
"amount_details": {
"amount": 5000,
"currency": "rub"
},
"quantity": 1
}
],
"tax_reference": "645493572846",
"receipt": {
"id": "203zpt6nu5",
"link": "https://himself-ktr.nalog.ru/api/v1/receipt/645493572846/203zpt6nu5/print"
},
"payer_type": "legal",
"payer_tax_number": "3316004790",
"payer_name": "ООО Вектор"
}
},
"refunds": [
{
"id": "rf_249",
"status": "accepted",
"created_at": "2021-06-08T09:16:42.897606Z",
"finished_at": "2021-06-08T09:16:48.517040Z",
"amount_details": {
"amount": 15000,
"currency": "rub"
}
}
]
}
]
}
}