Создание чека коррекции
Описание
Используется для создания чека коррекции.
POST (Уровень доступа: Базовый)
Онлайн-касса в настройках магазина должна быть "Выключена".
Мера предотвращает недоразумения о том, кто и когда формирует чеки.
Заголовки запроса
| Параметр | Свойства | Описание |
|---|---|---|
Accept |
STRING OPTIONAL application/json | Заголовок, указывающий формат данных, которые клиент хочет получить от сервера. |
Content-Type |
STRING OPTIONAL application/json application/xml | Заголовок, указывающий формат данных в теле запроса. |
Authorization |
STRING REQUIRED Bearer {token} | Заголовок, используемый для авторизации клиента с помощью Bearer-токена. Подробнее об использование Bearer-токена. |
Sign |
STRING REQUIRED | Заголовок с подписью для авторизации запроса. Подробнее об использовании контрольной подписи. Сигнатура подписи: UserToken::InvoiceId::DocumentId::MerchantReceiptCorrection::SignSecretKey |
Тело запроса
| Параметр | Свойства | Описание |
|---|---|---|
UserToken |
STRING REQUIRED | Токен-пользователя. Для получения использовать метод GetUserToken. |
InvoiceId |
STRING REQUIRED 3xxxxxxxxx | Номер СКО. |
DocumentId |
STRING REQUIRED | Номер чека. Для получения использовать методы: CreateReceipt, CreateReceiptCorrection. |
MerchantReceiptCorrection |
OBJECT REQUIRED | Чек коррекции для онлайн-кассы. Подробнее о правилах формирования чека. |
Тело ответа
| Поле | Тип | Описание |
|---|---|---|
OperationState |
OperationState | Статус выполнения операции. |
OperationId |
GUID | Идентификатор операции. |
EshopId |
INT | Номер магазина. |
Result |
CashboxReceiptCorrectionResponseData | Результат выполнения запроса. |
Примеры кода
C#
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.intellectmoney.ru/personal/cashBox/createReceiptCorrection");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Content-Type", "application/json");
request.Headers.Add("Authorization", "Bearer 9d97820c61424eb6ac0db414ccb7ac60");
request.Headers.Add("Sign", "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("UserToken", "YdUlqkFcVo62XmY6B9VLJfwUODqE9ODk8/q/s1uXguWmiiPUo+R8YpiYt6g/s/IM"));
collection.Add(new("InvoiceId", "3000000000"));
collection.Add(new("DocumentId", "0123456789abcdef0123456789abcdef"));
collection.Add(new("MerchantReceiptCorrection", "{
"Inn": "7000000000",
"Group": "Main_2",
"Content": {
"Type": 1,
"CorrectionType": 1,
"CustomerContact": "test@mail.ru",
"Positions": [{
"Quantity": "1.00",
"Price": "1.00",
"Tax": 9,
"Text": "Товар",
"PaymentSubjectType": 1,
"PaymentMethodType": 4
}
],
"CauseDocumentDate": "2025-01-01 12:00:00"
}
}"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());
PHP
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://api.intellectmoney.ru/personal/cashBox/createReceiptCorrection',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'UserToken=YdUlqkFcVo62XmY6B9VLJfwUODqE9ODk8/q/s1uXguWmiiPUo+R8YpiYt6g/s/IM&InvoiceId=3000000000&DocumentId=0123456789abcdef0123456789abcdef&MerchantReceiptCorrection={
"Inn": "7000000000",
"Group": "Main_2",
"Content": {
"Type": 1,
"CorrectionType": 1,
"CustomerContact": "test@mail.ru",
"Positions": [{
"Quantity": "1.00",
"Price": "1.00",
"Tax": 9,
"Text": "Товар",
"PaymentSubjectType": 1,
"PaymentMethodType": 4
}
],
"CauseDocumentDate": "2025-01-01 12:00:00"
}
}',
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/json',
'Authorization: Bearer 9d97820c61424eb6ac0db414ccb7ac60',
'Sign: e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855',
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
Пример ответов
JSON
{
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"Result": {
"State": {
"Code": 0,
"Desc": "Успешно обработан"
},
"CashboxReceiptResponseData": {
"ReceiptId": 5580144,
"Response": "{\n \"id\": \"0123456789abcdef0123456789abcdef\",\n \"deviceSN\": \"0000000000000001\",\n \"deviceRN\": \"0000000000000001\",\n \"fsNumber\": \"7000000000000000\",\n \"ofdName\": \"Такском\",\n \"ofdWebsite\": \"www.taxcom.ru\",\n \"ofdinn\": \"7000000000\",\n \"fnsWebsite\": \"www.nalog.gov.ru\",\n \"companyINN\": \"7000000000\",\n \"companyName\": \"ООО \\\"Организация\\\"\",\n \"documentNumber\": 10000,\n \"shiftNumber\": 50,\n \"documentIndex\": 300,\n \"processedAt\": \"2025-01-01T12:00:00\",\n \"processedAtTz\": \"2025-01-01T12:00:00.0000000+03:00\",\n \"content\": {\n \"type\": 1,\n \"positions\": [\n {\n \"quantity\": 1.000,\n \"price\": 1.0,\n \"tax\": 6,\n \"text\": \"Товар\"\n }\n ],\n \"checkClose\": {\n \"payments\": [\n {\n \"type\": 2,\n \"amount\": 1.00\n }\n ],\n \"taxationSystem\": 0\n },\n \"customerContact\": \"foo@example.com\",\n \"ffdVersion\": 4\n },\n \"change\": 0.0,\n \"fp\": \"2000000000\"\n}",
"Id": "0123456789abcdef0123456789abcdef",
"DeviceSN": "0000000000000001",
"DeviceRN": "0000000000000001",
"FSNumber": "7000000000000000",
"OFDName": "Такском",
"OFDInn": "7000000000",
"OFDWebsite": "www.taxcom.ru",
"FNSWebsite": "www.nalog.gov.ru",
"CompanyINN": "7000000000",
"CompanyName": "ООО \"Организация\"",
"DocumentNumber": "10000",
"ShiftNumber": 50,
"DocumentIndex": 300,
"ProcessedAt": "2025-01-01T12:00:00+03:00",
"Content": {
"FFDVersion": 4,
"Type": "In",
"Positions": [
{
"Quantity": 1.0,
"Price": 1.0,
"Tax": "None",
"Text": "Товар"
}
],
"CheckClose": {
"Payments": [
{
"Type": "Electronic",
"Amount": 1.0
}
],
"TaxationSystem": "Common"
},
"CustomerContact": "test@mail.ru"
},
"Change": 0.0,
"FP": "2000000000",
"ResponseState": "Ok",
"Errors": []
}
}
}
JSON
{
"OperationState": {
"Code": 0,
"Desc": "Успешно обработана"
},
"Result": {
"State": {
"Code": 0,
"Desc": "Успешно обработан"
},
"DocumentId": "0123456789abcdef0123456789abcdef",
"CashboxReceiptResponseData": {
"ReceiptId": 0,
"Response": "{\"errors\": [\"Сервер недоступен 500\"]}",
"ResponseState": "ServerErrorRetryLater",
"Errors": [
"Сервер недоступен 500"
]
}
}
}