एकाउंटिंग एपीआई (Accounting API) क्या है? प्लेटफॉर्म बिल्डर्स के लिए एक सीधी-सपाट गाइड
एकाउंटिंग एपीआई की एक सीधी-सपाट परिभाषा, जो इसे टैक्स एपीआई या पेमेंट्स एपीआई से अलग करती है, और इसके साथ इंटीग्रेशन शुरू करने से पहले किन बातों की जाँच करनी चाहिए।
एकाउंटिंग एपीआई (Accounting API) एक ऐसा इंटरफ़ेस है जो एक प्रोग्राम को दूसरे प्रोग्राम के बही-खाते (books) मैनेज करने की अनुमति देता है। आपका सॉफ़्टवेयर HTTP के माध्यम से एक वित्तीय इवेंट भेजता है। एपीआई उस इवेंट को चार्ट ऑफ़ अकाउंट्स (chart of accounts) के मुकाबले संतुलित डबल-एंट्री (double-entry) जर्नल एंट्री में बदलती है, उन्हें सुरक्षित रूप से स्टोर करती है ताकि उनमें चुपचाप कोई बदलाव न किया जा सके, टैक्स संबंधी नियमों को लागू करती है, और उसी इंटरफ़ेस के ज़रिए आपको रिपोर्ट्स, दस्तावेज़ और एक्सपोर्ट्स वापस देती है।
वह परिभाषा अधिकांश काम कर देती है। इस लेख में बाकी सब कुछ उसी का परिणाम है।
एक-वाक्य वाला वर्शन
एक एकाउंटिंग एपीआई आपके एप्लिकेशन से वित्तीय इवेंट्स को स्वीकार करती है, प्रत्येक को एक संतुलित जर्नल एंट्री में बदलती है, इसे इसके टैक्स ट्रीटमेंट और सहायक प्रमाणों के साथ अपरिवर्तनीय रूप से स्टोर करती है, और परिणामी लेजर, दस्तावेजों और रिपोर्ट्स को प्रोग्राम करने योग्य एंडपॉइंट्स के रूप में प्रस्तुत करती है।
यदि कोई उत्पाद खुद को एकाउंटिंग एपीआई कहता है लेकिन जर्नल एंट्रीज उत्पन्न नहीं करता है, तो वह एक अच्छे नाम वाला कुछ और है। यह जरूरी नहीं कि बुरा हो। इसका सीधा सा मतलब है कि वह वह काम नहीं करेगा जिसके लिए आप उसे आजमाने जा रहे हैं।
एकाउंटिंग एपीआई क्या नहीं है
चार आसन्न उत्पाद श्रेणियां ऐसी हैं जिन्हें अक्सर प्रोजेक्ट के अंतिम चरण में एकाउंटिंग एपीआई समझ लिया जाता है।
| श्रेणी | यह क्या करती है | यह क्या नहीं करती |
|---|---|---|
| टैक्स कैलकुलेशन एपीआई (Tax calculation API) | किसी ट्रांजैक्शन के लिए सही दर या टैक्स राशि लौटाती है | आपके बही-खाते नहीं रखती, या रिटेंशन अवधि के लिए निर्णय के पीछे के प्रमाण को स्टोर नहीं करती |
| पेमेंट्स एपीआई (Payments API) | पार्टियों के बीच पैसे ट्रांसफर करती है और उन ट्रांसफर्स की रिपोर्ट देती है | अर्जित कमीशन, बकाया वैट (VAT), या भुगतान औरPayout के बीच विक्रेता की देनदारी को रिकॉर्ड नहीं करती |
| यूनिफाइड या एग्रीगेटर एपीआई (Unified or aggregator API) | आपके ग्राहक के मौजूदा एकाउंटिंग सॉफ़्टवेयर में डेटा पढ़ती और लिखती है | रिकॉर्ड के सिस्टम (system of record) के रूप में कार्य नहीं करती; आपकी बुक्स उस टूल में रहती हैं जिसका उपयोग प्रत्येक ग्राहक पहले से कर रहा है |
| रिपोर्टिंग या बीआई एपीआई (Reporting or BI API) | मौजूदा लेजर से आंकड़े पढ़ती है और उन्हें विज़ुअलाइज़ करती है | वे एंट्रीज़ नहीं बनाती जिनसे आंकड़े निकाले गए हैं |
इनमें से प्रत्येक के वास्तविक उपयोग हैं। जिस प्लेटफॉर्म को रिकॉर्ड का सिस्टम बनने की आवश्यकता है, उसे अपने नीचे एकाउंटिंग एपीआई की आवश्यकता होती है, न कि उसकी जगह पर।
पाँच काम जो एक एकाउंटिंग एपीआई को करने ही होते हैं
1. संतुलित एंट्रीज़ रिकॉर्ड करना। हर इवेंट डेबिट और क्रेडिट बन जाता है जो जुड़कर एक समान राशि बनाते हैं। जब कोई खरीदार ऐसे मार्केटप्लेस पर €100 का भुगतान करता है जो €15 कमीशन लेता है, तो एंट्री एक क्लियरिंग अकाउंट को €100 से डेबिट करती है, सेलर पेयेबल (payable) को €85 से क्रेडिट करती है, और कमीशन रेवेन्यू को €15 से क्रेडिट करती है। यह कोई बुककीपिंग का दिखावा नहीं है। यह एक संरचनात्मक जाँच है जो किसी रिपोर्ट तक पहुँचने से पहले ही इंटीग्रेशन की बड़ी गलतियों को पकड़ लेती है।
2. इतिहास (History) बनाए रखना। पोस्ट की गई एंट्री में संपादन नहीं किया जाता है। किसी गलती को सुधारने के लिए एक रिवर्सल और उसके साथ एक सुधारी हुई एंट्री जोड़ी जाती है, जो दोनों मूल से जुड़ी होती हैं। बंद किए गए महीनों को लॉक कर दिया जाता है ताकि उनमें कोई नई तारीख न डाली जा सके।
3. टैक्स का समाधान करना। यूरोपीय संघ (EU) के व्यापार के लिए, इसका मतलब है आपूर्ति का स्थान (place of supply), रिवर्स चार्ज, आधिकारिक रजिस्ट्री के मुकाबले चेक किए गए वैट आइडेंटिफिकेशन नंबर, और उस निर्णय को सही ठहराने वाले साक्ष्य, यह सब गणना के बाद हटाने के बजाय ट्रांजैक्शन के साथ ही स्टोर किए जाते हैं।
4. बाहरी पैसों का मिलान करना। जो बही-खाते कभी बैंक स्टेटमेंट से नहीं मिलते, वे सिर्फ एक अनुमान होते हैं। एपीआई को स्टेटमेंट या प्रोवाइडर सेटलमेंट्स को इनजेस्ट (ingest) करना होगा और उनका मिलान रिकॉर्ड की गई चीज़ों से करना होगा।
5. एक्सपोर्ट करना। रिपोर्ट्स, दस्तावेज़ और ऑडिट फाइलें, ऐसे प्रारूपों में जिन्हें एक मानव अकाउंटेंट और टैक्स अथॉरिटी स्वीकार करते हैं।
वह उत्पाद जो पहले तीन काम करता है लेकिन आखिरी दो नहीं, वह अभी भी हर महीने किसी इंसान से स्प्रेडशीट का काम करवाता रहेगा।
एक कॉल असल में कैसी दिखती है
मैकेनिक्स एकाउंटिंग की तुलना में सरल हैं। Nordlet के API में प्रत्येक ऑपरेशन एक अनुमानित आकार के साथ RPC-शैली का POST होता है:
POST /v1/{module}/{resource}/{action}
Authorization: Bearer <api key>
Idempotency-Key: <your event id>
आप एक सेल्स इनवॉइस बनाते हैं, फिर उसे जारी (issue) करते हैं। जारी करना वह पल होता है जब एकाउंटिंग होती है: दस्तावेज़ को उसका गैपलेस नंबर मिलता है, संतुलित जर्नल एंट्री पोस्ट होती है, और वैट लाइनें इसके साथ रिकॉर्ड हो जाती हैं। आपका प्लेटफॉर्म कभी भी डेबिट और क्रेडिट को हाथ से नहीं जोड़ता है।
उस स्निपेट में एंडपॉइंट के नाम से ज्यादा तीन बातें मायने रखती हैं:
- की (key) पर स्कोप। एक की में
sales:writeजैसी अनुमतियां होती हैं, इसलिए इंटीग्रेशन को केवल वही एक्सेस मिलता है जिसकी उसे आवश्यकता होती है। - आइडपोटेंसी की (Idempotency key)। एक ही पेलोड के साथ एक ही अनुरोध को दोबारा भेजें और आपको दूसरी इनवॉइस के बजाय स्टोर की गई प्रतिक्रिया वापस मिल जाएगी। एक अलग पेलोड के साथ वही की भेजें और अनुरोध को चुपचाप स्वीकार करने के बजाय
idempotency_key_reuseके साथ अस्वीकार कर दिया जाता है। - स्ट्रिंग्स के रूप में पैसे। राशियां दशमलव स्ट्रिंग्स होती हैं, फ़्लोटिंग-पॉइंट नंबर नहीं, क्योंकि फ़्लोट्स उन तरीकों से सेंट खो देते हैं जो वर्ष के अंत में सामने आते हैं।
यह आपके आर्किटेक्चर में कहाँ बैठता है
आपका एप्लिकेशन फ्रंट एंड और बिजनेस इवेंट्स का स्रोत बना रहता है। एकाउंटिंग एपीआई इसके पीछे वित्तीय रिकॉर्ड सिस्टम बन जाती है। प्रवाह आमतौर पर इस प्रकार होता है:
- आपके उत्पाद में कुछ घटित होता है: एक ऑर्डर, रिफंड, पेआउट, या सब्सक्रिप्शन रिन्यूअल।
- आपका बैकएंड इवेंट और एक आइडपोटेंसी की के साथ एकाउंटिंग एपीआई को कॉल करता है।
- एपीआई जर्नल एंट्री पोस्ट करती है, वैट लागू करती है, और पहचानकर्ता (identifiers) लौटाती है जिन्हें आप अपने स्वयं के रिकॉर्ड के मुकाबले स्टोर करते हैं।
sale_invoice.paidजैसा एक वेबहुक आपके सिस्टम को बताता है कि स्थिति कब बदलती है, जिससे आप उनके लिए पोलिंग करने के बजाय इवेंट्स पर प्रतिक्रिया देते हैं।- बैंक लेनदेन बैंक फीड या स्टेटमेंट इम्पोर्ट के माध्यम से आते हैं और रिकॉर्ड किए गए दस्तावेजों से मिलाए जाते हैं।
- अवधि के अंत में, रिपोर्ट और टैक्स रजिस्टर उसी डेटा से उत्पन्न होते हैं, और बंद महीने को लॉक कर दिया जाता है।
उस सूची में किसी भी चीज़ के लिए किसी इंसान को एकाउंटिंग एप्लिकेशन खोलने की आवश्यकता नहीं होती है। इस श्रेणी का उद्देश्य यही है।
यह विकल्पों की तुलना में कैसा है
| दृष्टिकोण | शुरू करने का प्रयास | ऑडिट की स्थिति | ट्रांजैक्शन वॉल्यूम के साथ स्केल होता है |
|---|---|---|---|
| स्प्रेडशीट और मैनुअल एंट्री | सबसे कम | कमज़ोर; इतिहास एडिट करने योग्य है | नहीं |
| एकाउंटिंग ऐप और सीएसवी (CSV) एक्सपोर्ट्स | कम | पूरी तरह से अनुशासन पर निर्भर | खराब तरीके से; कोई फाइलें इम्पोर्ट करता है |
| प्रत्येक ग्राहक की अपनी बुक्स में एग्रीगेटर एपीआई | मध्यम | ग्राहक का टूल जो भी करे, उसे विरासत में मिलता है | हाँ, लेकिन आप कभी भी रिकॉर्ड के मालिक नहीं बनते |
| एंबेडेड एकाउंटिंग एपीआई | मध्यम | मजबूत अगर लेजर अपरिवर्तनीय है और पीरियड्स लॉक हैं | हाँ |
| अपना खुद का लेजर बनाना | उच्चतम | केवल तभी मजबूत जब आप नियंत्रण भी बनाते हैं | हाँ, और आप इसे हमेशा बनाए रखते हैं |
अपनी खुद की प्रणाली बनाना कुछ टीमों के लिए एक वैध विकल्प है। मार्केटप्लेस के लिए हमारे बिल्ड-बर्सेस-बाय गाइड में इसे अधिक विस्तार से बताया गया है।
किसी एपीआई के साथ इंटीग्रेशन से पहले किन बातों की जाँच करनी चाहिए
- क्या बैलेंस निकाला गया है या स्टोर किया गया है? पूछें कि क्या सेलर बैलेंस जर्नल लाइन्स पर एक क्वेरी है या कोई कॉलम जिसे कोई अपडेट करता है। उनमें से केवल एक ही ऑडिट में टिक पाता है।
- दोबारा प्रयास (retry) करने पर क्या होता है? एक ही अनुरोध को दो बार भेजें और एंट्रीज़ गिनें।
- क्या आप पोस्ट की गई एंट्री को एडिट कर सकते हैं? इसका उत्तर नहीं होना चाहिए, जिसमें सुधार का एक प्रलेखित रास्ता हो।
- क्या लॉक की गई अवधि वास्तव में पोस्टिंग को अस्वीकार करती है? इसे एक सैंडबॉक्स में आज़माएं। Nordlet लॉक अवधि के भीतर दिनांकित पोस्टिंग के लिए
409लौटाता है। - पैसों को कैसे दर्शाया जाता है? दशमलव स्ट्रिंग्स या पूर्णांक छोटी इकाइयां (integer minor units)। कभी भी फ़्लोट्स नहीं।
- ऑडिट रिकॉर्ड में क्या है? अभिनेता (actor), कार्रवाई, इकाई, और खुद बदलाव, लॉग फाइलों में दबे होने के बजाय क्वेरी करने योग्य।
- रेट लिमिट क्या हैं? Nordlet प्रति एपीआई की प्रति मिनट 300 अनुरोधों की अनुमति देता है और प्रतिक्रिया हेडर में आपके शेष बजट की रिपोर्ट करता है। संख्या जो भी हो, अपने सिंक को डिज़ाइन करने से पहले इसे जान लें।
- आप अपना डेटा कैसे बाहर निकालते हैं? रिपोर्ट्स, दस्तावेज़ और जर्नल, ऐसे प्रारूपों में जिन्हें आप किसी अकाउंटेंट को सौंप सकते हैं।
इनमें से हर एक बात को सैंडबॉक्स कंपनी के खिलाफ एक दोपहर में परखा जा सकता है। वेंडर की फीचर लिस्ट कोई सबूत नहीं होती; एक पुनरुत्पादित परीक्षण (reproducible test) ही प्रमाण है।
FAQ
क्या एकाउंटिंग एपीआई, एकाउंटिंग सॉफ़्टवेयर जैसी ही होती है?
यह एकाउंटिंग सॉफ़्टवेयर है जिसका इंटरफ़ेस बदल दिया गया है। पारंपरिक एकाउंटिंग सॉफ़्टवेयर लेज़र के सामने एक इंसान को बिठाता है; एकाउंटिंग एपीआई आपके कोड को वहाँ रखती है। अंतर्निहित कर्तव्य, डबल-एंट्री संरचना और रिपोर्ट समान हैं।
यदि मैं इसका उपयोग करता हूँ, तो क्या मुझे अभी भी एक अकाउंटेंट की आवश्यकता है?
हाँ। एपीआई रिकॉर्डिंग, गणना और रिपोर्टिंग को स्वचालित करती है। यह वर्गीकरण, प्रावधानों, या किसी विशिष्ट अनुबंध के साथ कैसे व्यवहार किया जाना चाहिए, इस बारे में कोई निर्णय नहीं लेती है, और अधिकांश देशों में यह आपके वैधानिक खातों पर हस्ताक्षर या फाइल नहीं करती है।
क्या मैं डबल-एंट्री को समझे बिना एकाउंटिंग एपीआई का उपयोग कर सकता हूँ?
आंशिक रूप से। एक अच्छी एपीआई इनवॉइस जैसे व्यावसायिक दस्तावेज़ से आपके लिए जर्नल एंट्री बनाती है। जब आप कोई रिपोर्ट पढ़ते हैं या किसी ऑडिटर को बैलेंस समझाते हैं, तो आपको अभी भी यह समझने की आवश्यकता होती है कि खातों का क्या अर्थ है।
एकाउंटिंग एपीआई और लेज़र एपीआई में क्या अंतर है?
लेज़र एपीआई खातों के बीच संतुलित गतिविधियों को रिकॉर्ड करती है। एकाउंटिंग एपीआई ऐसा करती है और इसके ऊपर वैधानिक परत जोड़ती है: कानूनी नंबरिंग वाले दस्तावेज़, वैट ट्रीटमेंट, टैक्स रजिस्टर, अचल संपत्तियाँ (fixed assets), पीरियड क्लोज, और वे रिपोर्ट्स जिनकी एक क्षेत्राधिकार को अपेक्षा होती है। हर एकाउंटिंग एपीआई में एक लेज़र होता है; हर लेज़र एकाउंटिंग सिस्टम नहीं होता।
इसे इंटीग्रेट करने में कितना समय लगता है?
एक पहले कामकाजी प्रवाह के लिए - एक ग्राहक बनाएं, एक इनवॉइस जारी करें, भुगतान प्राप्त करें, जर्नल एंट्री देखें - टाइप किए गए SDK और सैंडबॉक्स के साथ हफ्तों के बजाय दिनों की योजना बनाएं। रिफंड, सुधार, मल्टी-करेंसी, मिलान (reconciliation) और पीरियड क्लोज को कवर करने वाला प्रोडक्शन इंटीग्रेशन एक बड़ा काम है, और इसका वास्तविक अनुमान इस बात पर निर्भर करता है कि आपका उत्पाद वास्तव में इनमें से कितने मामलों को उत्पन्न करता है।