API /sandbox/v2/invoice/v1.0/bills

Avatar
  • обновлен

Взял пример запроса на python из https://developers.tochka.com/docs/tochka-api/api/create-invoice-invoice-api-version-bills-post sandbox


но всегда получаю {"code":"403","id":"db8f7cf2-5653-4442-930d-4b07906a2a6c","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Что может быть не так?

Avatar
Команда Точки Администратор
Добрый день! Проверим информацию по вашему вопросу и вернёмся с ответом.
Avatar
Команда Точки Администратор
Возвращаемся к вам. При работе в песочнице нужно указывать данные для работы в песочнице, а именно: customerCode: 1234567ab.
И вместо токена для авторизации (JWT-токена) в заголовке Authorization нужно использовать строку sandbox.jwt.token, которая даёт все разрешения во всех методах. Пример: Authorization: Bearer sandbox.jwt.token.

Любая другая строка в этом заголовке определяется как отсутствие разрешения на выполнения метода. Исправьте, пожалуйста, данные в запросе и попробуйте его повторить.
Avatar
love apples
Цитата от Команда Точки
Возвращаемся к вам. При работе в песочнице нужно указывать данные для работы в песочнице, а именно: customerCode: 1234567ab.
И вместо токена для авторизации (JWT-токена) в заголовке Authorization нужно использовать строку sandbox.jwt.token, которая даёт все разрешения во всех методах. Пример: Authorization: Bearer sandbox.jwt.token.

Любая другая строка в этом заголовке определяется как отсутствие разрешения на выполнения метода. Исправьте, пожалуйста, данные в запросе и попробуйте его повторить.

Сделал все по вашему совету, но проблема, к сожалению, не исчезла (код полностью скопирован из https://developers.tochka.com/docs/tochka-api/api/create-invoice-invoice-api-version-bills-post и подкорректирован по вашему ответу, а именно customerCode и Bearer sandbox.jwt.token).
На боевом, к слову, та же ошибка. 

import requests

import json

url = "https://enter.tochka.com/sandbox/v2/invoice/v1.0/bills"

payload = json.dumps({

"Data": {

"accountId": "40817810802000000008/044525104",

"customerCode": "1234567ab",

"SecondSide": {

"accountId": "40817810802000000008/044525104",

"legalAddress": "624205, РОССИЯ, СВЕРДЛОВСКАЯ обл, ЛЕСНОЙ г, ЛЕНИНА ул, ДОМ 96, офис КВ. 19",

"kpp": "668101001",

"bankName": "ООО БАНК ТОЧКА",

"bankCorrAccount": "30101810745374525104",

"taxCode": "660000000000",

"type": "company",

"secondSideName": "ООО Студия дизайна М-АРТ"

},

"Content": {

"Invoice": {

"Positions": [

{

"positionName": "Название товара",

"unitCode": "шт.",

"ndsKind": "nds_0",

"price": "1234.56",

"quantity": "1234.567",

"totalAmount": "1234.56",

"totalNds": "1234.56"

}

],

"date": "2010-10-29",

"totalAmount": "1234.56",

"totalNds": "1234.56",

"number": "1",

"basedOn": "Основание платежа",

"comment": "Комментарий к платежу",

"paymentExpiryDate": "2020-01-20"

}

}

}

})

headers = {

'Content-Type': 'application/json',

'Accept': 'application/json',

'Authorization': 'Bearer sandbox.jwt.token'

}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

{"code":"403","id":"b4f3fb78-cf7b-44ce-94d5-479ae872f269","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Avatar
Команда Точки Администратор
Цитата от love apples

Сделал все по вашему совету, но проблема, к сожалению, не исчезла (код полностью скопирован из https://developers.tochka.com/docs/tochka-api/api/create-invoice-invoice-api-version-bills-post и подкорректирован по вашему ответу, а именно customerCode и Bearer sandbox.jwt.token).
На боевом, к слову, та же ошибка. 

import requests

import json

url = "https://enter.tochka.com/sandbox/v2/invoice/v1.0/bills"

payload = json.dumps({

"Data": {

"accountId": "40817810802000000008/044525104",

"customerCode": "1234567ab",

"SecondSide": {

"accountId": "40817810802000000008/044525104",

"legalAddress": "624205, РОССИЯ, СВЕРДЛОВСКАЯ обл, ЛЕСНОЙ г, ЛЕНИНА ул, ДОМ 96, офис КВ. 19",

"kpp": "668101001",

"bankName": "ООО БАНК ТОЧКА",

"bankCorrAccount": "30101810745374525104",

"taxCode": "660000000000",

"type": "company",

"secondSideName": "ООО Студия дизайна М-АРТ"

},

"Content": {

"Invoice": {

"Positions": [

{

"positionName": "Название товара",

"unitCode": "шт.",

"ndsKind": "nds_0",

"price": "1234.56",

"quantity": "1234.567",

"totalAmount": "1234.56",

"totalNds": "1234.56"

}

],

"date": "2010-10-29",

"totalAmount": "1234.56",

"totalNds": "1234.56",

"number": "1",

"basedOn": "Основание платежа",

"comment": "Комментарий к платежу",

"paymentExpiryDate": "2020-01-20"

}

}

}

})

headers = {

'Content-Type': 'application/json',

'Accept': 'application/json',

'Authorization': 'Bearer sandbox.jwt.token'

}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

{"code":"403","id":"b4f3fb78-cf7b-44ce-94d5-479ae872f269","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Смотрим 👀
Avatar
Команда Точки Администратор
Цитата от love apples

Сделал все по вашему совету, но проблема, к сожалению, не исчезла (код полностью скопирован из https://developers.tochka.com/docs/tochka-api/api/create-invoice-invoice-api-version-bills-post и подкорректирован по вашему ответу, а именно customerCode и Bearer sandbox.jwt.token).
На боевом, к слову, та же ошибка. 

import requests

import json

url = "https://enter.tochka.com/sandbox/v2/invoice/v1.0/bills"

payload = json.dumps({

"Data": {

"accountId": "40817810802000000008/044525104",

"customerCode": "1234567ab",

"SecondSide": {

"accountId": "40817810802000000008/044525104",

"legalAddress": "624205, РОССИЯ, СВЕРДЛОВСКАЯ обл, ЛЕСНОЙ г, ЛЕНИНА ул, ДОМ 96, офис КВ. 19",

"kpp": "668101001",

"bankName": "ООО БАНК ТОЧКА",

"bankCorrAccount": "30101810745374525104",

"taxCode": "660000000000",

"type": "company",

"secondSideName": "ООО Студия дизайна М-АРТ"

},

"Content": {

"Invoice": {

"Positions": [

{

"positionName": "Название товара",

"unitCode": "шт.",

"ndsKind": "nds_0",

"price": "1234.56",

"quantity": "1234.567",

"totalAmount": "1234.56",

"totalNds": "1234.56"

}

],

"date": "2010-10-29",

"totalAmount": "1234.56",

"totalNds": "1234.56",

"number": "1",

"basedOn": "Основание платежа",

"comment": "Комментарий к платежу",

"paymentExpiryDate": "2020-01-20"

}

}

}

})

headers = {

'Content-Type': 'application/json',

'Accept': 'application/json',

'Authorization': 'Bearer sandbox.jwt.token'

}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

{"code":"403","id":"b4f3fb78-cf7b-44ce-94d5-479ae872f269","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Уточним информацию у коллег по вашему вопросу и вернёмся с ответом завтра.
Avatar
Команда Точки Администратор
Цитата от love apples

Сделал все по вашему совету, но проблема, к сожалению, не исчезла (код полностью скопирован из https://developers.tochka.com/docs/tochka-api/api/create-invoice-invoice-api-version-bills-post и подкорректирован по вашему ответу, а именно customerCode и Bearer sandbox.jwt.token).
На боевом, к слову, та же ошибка. 

import requests

import json

url = "https://enter.tochka.com/sandbox/v2/invoice/v1.0/bills"

payload = json.dumps({

"Data": {

"accountId": "40817810802000000008/044525104",

"customerCode": "1234567ab",

"SecondSide": {

"accountId": "40817810802000000008/044525104",

"legalAddress": "624205, РОССИЯ, СВЕРДЛОВСКАЯ обл, ЛЕСНОЙ г, ЛЕНИНА ул, ДОМ 96, офис КВ. 19",

"kpp": "668101001",

"bankName": "ООО БАНК ТОЧКА",

"bankCorrAccount": "30101810745374525104",

"taxCode": "660000000000",

"type": "company",

"secondSideName": "ООО Студия дизайна М-АРТ"

},

"Content": {

"Invoice": {

"Positions": [

{

"positionName": "Название товара",

"unitCode": "шт.",

"ndsKind": "nds_0",

"price": "1234.56",

"quantity": "1234.567",

"totalAmount": "1234.56",

"totalNds": "1234.56"

}

],

"date": "2010-10-29",

"totalAmount": "1234.56",

"totalNds": "1234.56",

"number": "1",

"basedOn": "Основание платежа",

"comment": "Комментарий к платежу",

"paymentExpiryDate": "2020-01-20"

}

}

}

})

headers = {

'Content-Type': 'application/json',

'Accept': 'application/json',

'Authorization': 'Bearer sandbox.jwt.token'

}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

{"code":"403","id":"b4f3fb78-cf7b-44ce-94d5-479ae872f269","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Спасибо, что подождали нас 😌
Здесь ещё нужно подкорректировать сам accountId на: 12345810901234567890/044525104
А в secondSide оставьте то, что есть, и повторите запрос.

Avatar
love apples
Цитата от Команда Точки
Уточним информацию у коллег по вашему вопросу и вернёмся с ответом завтра.

Доброе утро! Может ли причиной этой ошибки на боевом сервере быть заблокированный счёт?

Avatar
Команда Точки Администратор
Цитата от love apples

Доброе утро! Может ли причиной этой ошибки на боевом сервере быть заблокированный счёт?

Так как вы работаете в песочнице, это не должно повлиять. В песочнице есть свои тестовые данные, которые нужно использовать для вызова запросов. Когда вы перейдёте на боевой слой, нужно использовать реальные существующие данные, такие как свои accountId и customerCode.
В том числе и реквизиты контрагента должны тоже быть настоящими, чтобы сформировать счёт на оплату.
Avatar
love apples

Можно, пожалуйста, поподробнее про customerCode? Сейчас работаю с другим методом https://developers.tochka.com/docs/tochka-api/api/create-payment-operation-acquiring-api-version-payments-post и получаю ошибку {"code":"403","id":"17f1678b-b84b-46de-b0fe-1dab9e2fd2f6","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Предполагаю, что это из-за customerCode. В частности хотелось бы узнать как он получается для корректной отправки запроса

Avatar
Команда Точки Администратор
Цитата от love apples

Можно, пожалуйста, поподробнее про customerCode? Сейчас работаю с другим методом https://developers.tochka.com/docs/tochka-api/api/create-payment-operation-acquiring-api-version-payments-post и получаю ошибку {"code":"403","id":"17f1678b-b84b-46de-b0fe-1dab9e2fd2f6","message":"Что-то пошло не так","Errors":[{"errorCode":"Something going wrong","message":"Forbidden by consent","url":"https://developers.tochka.com/"}]}

Предполагаю, что это из-за customerCode. В частности хотелось бы узнать как он получается для корректной отправки запроса

customerCode - это уникальный код клиента в Точке.

Чтобы узнать свой customerCode, нужно вызвать метод Get Customers List (https://developers.tochka.com/docs/tochka-api/api/get-customers-list-open-banking-api-version-customers-get)
Параметр customerCode необходимо брать из поля customerType: "Business".