小切手に関する情報を受け取るためのユニバーサルAPI

ハブルの住民にこんにちは。



この記事では、小切手を受け取るためのAPIについてお話したいと思います。これは、私たちが愛するすべての連邦税務局に提供したものではありません。



レシートにQRコードが表示されたとき、「すごい、すごい! コードをスキャンして、チェックに関するすべての情報が表示されていないかどうかを確認し、リンクを確認します。 そして、そのようなコードをスキャンして、私は次のようなものを見たとき、私の失望は何でしたか



t=20180518T220500&s=975.88&fn=8710000101125654&i=99456&fp=1250448795&n=1







しかし、私は動揺しませんでしたし、連邦税務局が私たちの面倒を見て、そのような情報を受け取るためのAPIを提供したと思いました。 グーグルでしばらくの間、私は連邦税務局が小切手を確認し、店から来た情報を表示するためのモバイルアプリケーションのみを提供していることに気付きました。



しかし! 店舗と税務署の間には別のリンクがあります-OFD-店舗から受け取った小切手情報を処理し、税務署に送信します。 そのため、必要な情報を取得するためのAPIを提供します。 すべてではありません。 そして、常に無料ではありません。



2018年3月1日現在のウィキペディアからの情報から判断すると、17のOFDが登録されました。 それらの10個がオープンで無料のAPIを提供しているとしましょう。 特定のストアがどのOFDで機能するかわからない場合、API 10の会計データオペレーターを調べる必要があります。 最良の選択肢とはほど遠い。



しばらくして、誤って、小切手からQRコードを使用して小切手に関する情報を受け取るアプリケーション(連邦税務局からではない)を見つけました。 しかし、彼らはすべてのOFDを「駆け抜け」、そこから情報を収集するわけではないと思いました。 再びGoogleに行き、そのような答えに出くわしました。



この回答の後、即席調査を終了できるように見えましたが、まだ質問がありました。





Android Device MonitorとSoapUIを起動すると、理解し始めました。 ここで、私が取得したすべての一般化された情報を投稿します。 FTSは次のパブリックAPIを提供します。



登録
投稿

https://proverkacheka.nalog.ru:9999/v1/mobile/users/signup

コンテンツタイプ:application / json; 文字セット= utf-8



内容:



 {"email":"some@mail.com","name":"SomeName","phone":"+79991234567"}
      
      





すべてのパラメーターが必要です。



結果が成功すると、ユーザーが作成され、パスワード付きのSMSが指定された番号に送信され、204 No contentが返されます。



ユーザーが既に存在する場合、409 Conflictと「user exists」というメッセージが返されます。

電話番号が正しくない場合、500 Internal Server Errorと「failed with code 20101」というメッセージが返されます。



電子メールアドレスが正しくない場合、400 Bad Requestが返され、メッセージ「[」オブジェクトはフォーマット電子メールの検証に合格しませんでした:<指定した電子メールアドレス> "]"。

電子メールアドレスが既に使用されていて、電話がない場合、エラーは発生せず、登録は成功します。



ユーザー名
ゲット

https://proverkacheka.nalog.ru:9999/v1/mobile/users/login



プリエンプティブな基本認証はヘッダーで送信され、電話番号は「+79991234567」の形式でユーザー名として転送され、パスワードは登録またはパスワード回復中にSMSで受信したコードです。



すべてが順調であれば、200 OKでjsonメッセージが返されます



 { "email": "<  ,   >", "name": "<,   >" }
      
      





間違った電話番号またはパスワードを指定すると、403 Forbiddenと「ユーザーが見つからないか、指定されたパスワードが正しくありません」というメッセージが返されます。



電話番号やパスワードを提供しない場合、何も返されません。



パスワード回復
投稿

https://proverkacheka.nalog.ru:9999/v1/mobile/users/restore

コンテンツタイプ:application / json; 文字セット= utf-8



内容:



 {"phone":"+79991234567"}
      
      





電話番号が見つかった場合、204 No Contentが返され、新しいパスワードのSMSが電話に届きます。



電話番号が見つからないか、番号が正しくない場合、404 Not Foundと「ユーザーが見つかりませんでした」というメッセージが返されます。



チェックの存在を確認する
ゲット

https://proverkacheka.nalog.ru:9999/v1/ofds/*/inns/*/fss/<FN number> / operations / <現金領収書のタイプ> /チケット/ <ID番号>?fiscalSign = <ID番号> &日付= 2018-05-17T17:57:00&合計= 3900

どこで



  • FN番号(会計番号)-16桁の番号。 たとえば、8710000100518392
  • Number FD(会計文書)-最大10文字。 例54812
  • FPD番号(ドキュメントフィスカルタグ、FPとも呼ばれる)は最大10文字です。 例3522207165
  • 現金領収書の種類。 チェックでは、n = 1(領収書)およびn = 2(領収書の返品)としてマークされます。
  • 日付-チェックからの日付。 形式は異なる場合があります。 私は日付を反転させようとしました(つまり、17-05-2018)、Tの代わりにスペースを入れて、秒を削除しました
  • 金額-コペックの小切手からの金額


チェックが見つかった場合、204 No Contentが返されます。

チェックが見つからない場合、406 Not Acceptableが返されます。

日付/金額が間違っているか、チェックで示された日付/金額と一致しない場合、406 Not Acceptableが返されます。 この場合、秒は考慮されません。

日付/金額のパラメーターを指定しない場合、400 Bad Requestとメッセージ「[」Missing required property:<property_name> "]が返されます。



小切手の詳細情報を取得する
ゲット

https://proverkacheka.nalog.ru:9999/v1/inns/*/kkts/*/fss/<FN number> / ticket / <number>?fiscalSign = <number>&sendToEmail = no

どこで



  • FN番号(会計番号)-16桁の番号。 たとえば、8710000100518392
  • Number FD(会計文書)-最大10文字。 例54812
  • FPD番号(ドキュメントフィスカルタグ、FPとも呼ばれる)は最大10文字です。 例3522207165


少なくとも空のdevice-idおよびdevice-osヘッダーを指定することも必須です

誤ったユーザーデータが指定された場合、403 Forbiddenが返され、「ユーザーが見つからなかったか、指定されたパスワードが正しくありませんでした」というメッセージが返されます。



電話番号やパスワードを指定しないと、何も返されません。



チェックが見つからない場合、406 Not Acceptableが返されます。 また、十分に長く受信された場合、チェックが見つからない場合があります。 連邦税務局は、常に小切手に関する情報を保存するわけではありません。 この記事の執筆時点で、連邦税務局は約2〜3か月間詳細な情報を保持していました。



このメソッドの呼び出しの前にチェックの存在のチェックがなかった場合、202 Acceptedが返されます(メッセージとコンテンツなし)。 再度電話をかけると、小切手の情報が返されます。



「sendToEmail」パラメーターで「yes」に置き換えようとすると、500 Internal Server Errorと「connect ECONNREFUSED 127.0.0.1-00-0065」というメッセージが返されます。 他の値( "true"、1など)を置換しようとすると、400 Bad Requestが返され、メッセージ "[" No enum match for:<渡そうとした値> "]"が返されます。



すべてが正常であれば、200 OKが返され、json形式のコンテンツは次のようになります。



 {"document": {"receipt": { "operationType": 1, "fiscalSign": 3522207165, "dateTime": "2018-05-17T17:57:00", "rawData": "AwAzAREEEAA4NzEwMDAwMTAwNTE4MzEzDQQUADAwMDExOTM1MTQwNDE0MDUgICAg+gMMADc4MjU3MDYwODYgIBAEBAAJ2gAA9AMEAGzC/Vo1BAYAMQTSDyLSDgQEABYBAAASBAQAogAAAB4EAQAB/AMCADwPPAQPAD0EAwCKrqQ+BAQARzYzNyMERQAGBCcAKjM0OTIyNzcgTkVTVC6MruAuTUFYSUIukZKQgJeAkoWLLjE0MKyrNwQCAJ8P/wMEAAZAQg8TBAIAnw9PBAIAbAH9Aw4AhK6ro+PopaKgIICtraAHBAIAPA85BAEAAE8EAgBsARgEDACAo+Cu4q7goyCOjo7xAyoANjIwMDE3LCCjLiCFqqDipeCoraHj4KMsIOOrLiCAp6itoCwgpC4gMTimHwQBAAE=", "totalSum": 3900, "nds10": 364, "userInn": "7825706086", "taxationType": 1, "operator": "< >", "fiscalDocumentNumber": 54812, "properties": [ { "value": "G637", "key": "" }], "receiptCode": 3, "requestNumber": 162, "user": " ", "kktRegId": "0001193514041405", "fiscalDriveNumber": "8710000100518392", "items": [ { "sum": 3999, "price": 3999, "name": "*3492277 NEST..MAXIB..140", "quantity": 1, "nds10": 364 }], "ecashTotalSum": 0, "retailPlaceAddress": "620017, . , . , . 18", "cashTotalSum": 3900, "shiftNumber": 278 }}}
      
      



/ Vo1BAYAMQTSDyLSDgQEABYBAAASBAQAogAAAB4EAQAB / AMCADwPPAQPAD0EAwCKrqQ + BAQARzYzNyMERQAGBCcAKjM0OTIyNzcgTkVTVC6MruAuTUFYSUIukZKQgJeAkoWLLjE0MKyrNwQCAJ8P / wMEAAZAQg8TBAIAnw9PBAIAbAH9Aw4AhK6ro + PopaKgIICtraAHBAIAPA85BAEAAE8EAgBsARgEDACAo + Cu4q7goyCOjo7xAyoANjIwMDE3LCCjLiCFqqDipeCoraHj4KMsIOOrLiCAp6itoCwgpC4gMTimHwQBAAE ="、 {"document": {"receipt": { "operationType": 1, "fiscalSign": 3522207165, "dateTime": "2018-05-17T17:57:00", "rawData": "AwAzAREEEAA4NzEwMDAwMTAwNTE4MzEzDQQUADAwMDExOTM1MTQwNDE0MDUgICAg+gMMADc4MjU3MDYwODYgIBAEBAAJ2gAA9AMEAGzC/Vo1BAYAMQTSDyLSDgQEABYBAAASBAQAogAAAB4EAQAB/AMCADwPPAQPAD0EAwCKrqQ+BAQARzYzNyMERQAGBCcAKjM0OTIyNzcgTkVTVC6MruAuTUFYSUIukZKQgJeAkoWLLjE0MKyrNwQCAJ8P/wMEAAZAQg8TBAIAnw9PBAIAbAH9Aw4AhK6ro+PopaKgIICtraAHBAIAPA85BAEAAE8EAgBsARgEDACAo+Cu4q7goyCOjo7xAyoANjIwMDE3LCCjLiCFqqDipeCoraHj4KMsIOOrLiCAp6itoCwgpC4gMTimHwQBAAE=", "totalSum": 3900, "nds10": 364, "userInn": "7825706086", "taxationType": 1, "operator": "< >", "fiscalDocumentNumber": 54812, "properties": [ { "value": "G637", "key": "" }], "receiptCode": 3, "requestNumber": 162, "user": " ", "kktRegId": "0001193514041405", "fiscalDriveNumber": "8710000100518392", "items": [ { "sum": 3999, "price": 3999, "name": "*3492277 NEST..MAXIB..140", "quantity": 1, "nds10": 364 }], "ecashTotalSum": 0, "retailPlaceAddress": "620017, . , . , . 18", "cashTotalSum": 3900, "shiftNumber": 278 }}}





どこで



  • すべての金額はコペックにあります
  • 異なる店舗のキャッシャーデータにはさまざまな形式があります(ある場合には「姓名」が返され、別の「姓I.
  • 要素の順序は異なる場合があります
  • 異なる店舗は異なるパラメータのセットを使用し、ある店舗からの領収書に何らかのパラメータが返された場合、このパラメータが別の店舗からの領収書に含まれているという事実ではありません
  • 店舗住所の形式は異なる場合があります


返されたチェックの別の例
 {"document": {"receipt": { "cashTotalSum": 0, "fiscalSign": 1301551154, "nds18": 4859, "operationType": 1, "userInn": "7728029110", "dateTime": "2018-05-18T22:05:00", "fiscalDocumentNumber": 12654, "receiptCode": 3, "ecashTotalSum": 97588, "nds10": 5976, "requestNumber": 395, "retailPlaceAddress": "., ., .50", "fiscalDriveNumber": "871000010459859", "taxationType": 1, "user": "  ", "operator": "< >", "items": [ { "sum": 3799, "quantity": 1, "price": 3799, "name": "18074   100", "nds10": 345 }, { "sum": 7490, "quantity": 0.872, "nds18": 1143, "name": "2000339  . 1", "price": 8590 } ], "totalSum": 97588, "rawData": "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", "shiftNumber": 262, "kktRegId": "0001248888049341" }}}
      
      



/ 1o1BAYAMQRNlDKEDgQEAAYBAAASBAQAiwEAAB4EAQAB / AMDADR9ASMEMwAGBBYAMTgwNzQgk6rgrq8gr6CqpeIgMTAwozcEAgDXDv8DAwAD6AMTBAIA1w5PBAIAWQEjBEEABgQkADIwMDAzMzkgn6GrrqqoIJGFh46NLo + QhYSLjoaFjYiFIDGqozcEAgCOIf8DAwADaAMTBAIAQh1OBAIAdwQjBD4ABgQiACozMDc3NDA0IJGPryCBoKOl4iDhIKrjrabj4q6sIDE1MKM3BAIAxwP / AwMAA9AHEwQCAI4HTwQBALAjBDkABgQcADMyMjYzMTQgjKDhq64giJCBiJKRio6FIDE4MKM3BAIA7ir / AwMAA + gDEwQCAO4qTwQCAOcDIwQ5AAYEHQAqMzIyNjQzNCCKoODiruSlq + wg4KCtraipIDGqozcEAgDGB / 8DAwAD5gMTBAIAwgdPBAEAtSMENQAGBBkAKjMyMjY0NDAgi + OqIJCFj5eAkpuJIDGqozcEAgDGB / 8DAwADWAETBAIArQJPBAEAPiMENwAGBBoAKjMyMjczOTEgg + Dj6KggipCAkY2bhSAxqqM3BAIAPx // AwMAA2IBEwQCABALTgQCALABIwQyAAYEFQAzMjI3NDAzIICvpavs4ait6yAxqqM3BAIArx3 / AwMAA14CEwQCAP0RTgQCAL4CIwQ9AAYEIAAzMjU1MjQ4IIyu4Kquouwgr64tqq7gpanhqqggMTAwozcEAgBkMv8DAwADRgETBAIAbRBOBAIAgQIjBDsABgQeADMzMzAzNjggkayl4qCtoCAyMCUgr6sv4eIgNDAwozcEAgCmHf8DAwAD6AMTBAIAph1PBAIAsgIjBD8ABgQiADMzMzkx {"document": {"receipt": { "cashTotalSum": 0, "fiscalSign": 1301551154, "nds18": 4859, "operationType": 1, "userInn": "7728029110", "dateTime": "2018-05-18T22:05:00", "fiscalDocumentNumber": 12654, "receiptCode": 3, "ecashTotalSum": 97588, "nds10": 5976, "requestNumber": 395, "retailPlaceAddress": "., ., .50", "fiscalDriveNumber": "871000010459859", "taxationType": 1, "user": " ", "operator": "< >", "items": [ { "sum": 3799, "quantity": 1, "price": 3799, "name": "18074 100", "nds10": 345 }, { "sum": 7490, "quantity": 0.872, "nds18": 1143, "name": "2000339 . 1", "price": 8590 } ], "totalSum": 97588, "rawData": "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", "shiftNumber": 262, "kktRegId": "0001248888049341" }}}



8DAgADyBMEAgDYE04EAgAHAyMEPwAGBCMAkzM0MTQzOTMgiqXkqOAggYWLm4UgkI6RmyAzLDIlIDUwMKM3BAIANAj / AwMAA + gDEwQCADQITwQBAL8jBD0ABgQgADM0MjYyNjgggq6koCCXhZCNjoOOi46CkYqAnyAxLDWrNwQCAC0J / wMDAAPoAxMEAgAtCU4EAgBmASMEMAAGBBMAMzQyNzU5OCCMrquuqq4gMCw5qzcEAgCkC / 8DAwAD6AMTBAIApAtPBAIADwEjBD0ABgQgADM0NDMwOTMgkqKu4K6jIIiQgYiSkYqIiSCMhyAzNTCjNwQCABki / wMDAAPoAxMEAgAZIk8EAgAaAyMEMAAGBBQAMzQ0NTIxOCCPpeLg4 + iqoCA1MKM3BAIAlwj / AwMAA + gDEwQCAJcITwQBAMgjBDoABgQdADM0ODQzMTUgn6nmriCKkJODi5uJIIOOhCAxMOjiNwQCAPcR / wMDAAPoAxMEAgD3EU8EAgCiASMEQAAGBCMAMzQ5NTA4MCCCrqSgIEpFWUVBIENSWVNUQUxOQVlBIDAsNas3BAIAsxT / AwMAA + gDEwQCALMUTgQCACgDIwQ9AAYEIAAzNTAzMzY2IIqu4qul4usgipCTg4ubiSCDjoQgNDUwozcEAgBXG / 8DAwAD6AMTBAIAVxtPBAIAfAIjBDkABgQdADM2MDExMjIgiuDjr6Agn5eNhYKAnyD8MiA4MDCjNwQCAGcG / wMDAAPoAxMEAgBnBk8EAQCV / QMUAJHj5aDgpaKgII4goOHhqOHipa3iBwQBAAA5BAMANH0BTgQCAPsSTwQCAFgXGAQRAICOIJKEII + l4KWq4KXh4q6q {"document": {"receipt": { "cashTotalSum": 0, "fiscalSign": 1301551154, "nds18": 4859, "operationType": 1, "userInn": "7728029110", "dateTime": "2018-05-18T22:05:00", "fiscalDocumentNumber": 12654, "receiptCode": 3, "ecashTotalSum": 97588, "nds10": 5976, "requestNumber": 395, "retailPlaceAddress": "., ., .50", "fiscalDriveNumber": "871000010459859", "taxationType": 1, "user": " ", "operator": "< >", "items": [ { "sum": 3799, "quantity": 1, "price": 3799, "name": "18074 100", "nds10": 345 }, { "sum": 7490, "quantity": 0.872, "nds18": 1143, "name": "2000339 . 1", "price": 8590 } ], "totalSum": 97588, "rawData": "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", "shiftNumber": 262, "kktRegId": "0001248888049341" }}}









ログインにはあまり意味がありませんが、モバイルアプリケーションで使用されます。 おそらく将来的には何かのために便利になるでしょう。



このAPIへの接続を実装する例に興味がある人は、C#で記述されたライブラリのgithubプロジェクトへのリンクです。



すべての質問またはコメントについては、コメントしてください。



UPD小規模なチェックの後、連邦税務局はすべてのチェックに関する詳細情報を保存しないことが判明しました。 OFDにこの情報があり、FTSモバイルアプリケーションがチェックが正しいと報告しているにもかかわらず、少なくとも2018年5月22日には、2017年12月、2018年1月および2月から完全なチェックを取得できませんでした。 2018年3月には、小切手が既に受領されています。



UPD IvanGneoman36のユーザーが述べたように 、n = 1は「現金領収書の表示」です。 1-「返却」、2-「到着の返却」を意味します。 チェックの存在をチェックするときに同じ番号を挿入する必要があります。



UPDユーザーEcho77が指摘したように 、2018年12月から、APIは応答コード451「不正なパブリックAPIの使用」を返し始めたため、チェックを要求する前に、チェックが存在するかどうかをチェックする要求を行う必要があります。



Actieによると、トースターに関するこの質問に対する回答として、 2018年末に連邦税務局は公式の小切手検証APIをリリースしました。 「声明を書いて、電子署名で証明し、それを使用する理由と方法を教えれば、APIへのアクセスが与えられます。」(C)



トークンのドキュメント



私が理解している限り、個人にトークンを取得することは不可能です。 法的のみ 人または個人。 また、アプリケーションを作成するときは、チェックに関する情報を要求するIPアドレスを明確に示す必要があります。

同じユーザー(組織(?))- ActieはRubyのgemを実装しました。 しかし、再び、トークンなしでそれを使用すると動作しないことに注意してください。 リポジトリへのリンク

同じリポジトリでは、多数のチェックを行うと、この記事で説明したAPIが安定して機能しないことが示されています。 個人的に、私はチェックしませんでした。



All Articles