રિમોટ બુકકીપિંગ API
છેલ્લે અપડેટ કર્યું: 10 મે 2026
વ્યક્તિગત API ટોકન વાપરીને cURL, iOS શોર્ટકટ્સ અથવા ઓટોમેશન સ્ક્રિપ્ટમાંથી એન્ટ્રીઓ નોંધો. ટોકન ફક્ત-લેખન છે — તે વ્યવહારો ઉમેરી શકે અને કેટેગરી / ટૅગ યાદીઓ વાંચી શકે, પણ કોઈ વ્યવહાર ડેટા વાંચી કે કાઢી શકતું નથી.
1. ટોકન મેળવો
admin તરીકે સાઇન ઇન કરો, સેટિંગ્સ → 🔑 રિમોટ બુકકીપિંગ API ખોલો અને "ટોકન બનાવો" પર ક્લિક કરો.
સાદો ટોકન ફક્ત એક જ વાર બતાવાય છે — તરત જ કૉપિ કરી લો. સર્વર ફક્ત તેનો SHA-256 હેશ સંગ્રહે છે, તેથી ખોવાયેલા ટોકનને માત્ર રોટેટ કરીને બદલી શકાય (જે જૂનાને રદ કરે છે).
ટોકન ફોર્મેટ: bb_<userId>_<secret>. દરેક વિનંતીમાં તેને Authorization: Bearer <token> તરીકે મોકલો.
2. POST /api/ingest — એક વ્યવહાર ઉમેરો
વિનંતી body આ ફીલ્ડ્સ સાથેનો JSON ઑબ્જેક્ટ છે:
title(string, આવશ્યક) — વ્યવહારનું નામamount(number, આવશ્યક) — ધન હોવું જોઈએtype(string, વૈકલ્પિક, ડિફૉલ્ટexpense) —expense/income/prepaid_expense/pending_incomeમાંથી એકcategory(string, વૈકલ્પિક) — કેટેગરીનું નામnote(string, વૈકલ્પિક) — મુક્ત નોંધcreated_at(string, વૈકલ્પિક) — ISO 8601; ડિફૉલ્ટ હમણાં
curl -X POST https://billbook.me/api/ingest \
-H "Authorization: Bearer bb_<userId>_<secret>" \
-H "Content-Type: application/json" \
-d '{"title":"Coffee","amount":120,"type":"expense","category":"Food"}'
# response: 201
{ "id": "...", "created_at": "..." }3. GET /api/ingest/categories — કેટેગરી યાદી
admin ની કેટેગરી નામો ડેશબોર્ડ ડ્રોપડાઉન ક્રમમાં પાછા આપે છે. પ્રતિસાદમાં ફક્ત નામ હોય છે — કોઈ ids, user ids કે વ્યવહાર ડેટા નહીં.
curl https://billbook.me/api/ingest/categories \
-H "Authorization: Bearer bb_<userId>_<secret>"
# response: 200
{ "categories": ["Food", "Rent", "..."] }4. GET /api/ingest/tags — તાજેતરમાં વપરાયેલા ટૅગ
સૌથી તાજેતરમાં અપડેટ થયેલા ટૅગ ઉપસર્ગો (શીર્ષકોમાં જડેલા #XXX માર્કર) પાછા આપે છે. ડિફૉલ્ટ 20; ઓવરરાઇડ કરવા ?limit= મોકલો (મહત્તમ 100).
tag_prefixes ટેબલ હજુ અસ્તિત્વમાં ન હોય તો ભૂલને બદલે ખાલી એરે પાછી આપે છે.
curl "https://billbook.me/api/ingest/tags?limit=20" \
-H "Authorization: Bearer bb_<userId>_<secret>"
# response: 200
{ "tags": ["#management-fee", "#travel", "..."] }5. ભૂલ કોડ
બધી ભૂલો JSON છે: { "error": "message" }.
401— અધિકૃતિ ગુમ, ખોટું ટોકન ફોર્મેટ, રદ થયેલ કે મેળ ન ખાતું402— સબ્સ્ક્રિપ્શન સમાપ્ત; લખવા માટે નવીકરણ જરૂરી405— મેથડ સમર્થિત નથી (દા.ત./api/ingestપર GET)501— સર્વર પાસેSUPABASE_SERVICE_ROLE_KEYનથી500— અન્ય આંતરિક ભૂલ
6. સુરક્ષા અને મર્યાદાઓ
ડિઝાઇન મુજબ, ટોકન ફક્ત તેની પોતાની સંસ્થામાં લખી શકે — તે અન્ય orgs નો ઢોંગ કરી શકતું નથી કે હાલનો ડેટા વાંચી શકતું નથી:
user_idહંમેશા ટોકન માલિક; ખોટું બનાવી શકાતું નથીorg_idહંમેશા માલિકનું org; orgs વચ્ચે લખવું અશક્ય- ટોકન ફક્ત admin ભૂમિકાને જારી થાય છે (manager / staff ને 403 મળે)
- પ્રતિસાદ ક્યારેય અન્ય પંક્તિઓ લીક કરતો નથી — ફક્ત
{ id, created_at }પાછું આપે છે - રદ તાત્કાલિક છે; સેટિંગ્સમાંથી ગમે ત્યારે રોટેટ કરો
7. iOS શોર્ટકટ ઉદાહરણ
એક "Get Contents of URL" ક્રિયા ઉમેરો, URL https://billbook.me/api/ingest, મેથડ POST, હેડર Authorization: Bearer bb_... અને Content-Type: application/json, અને વિનંતી body JSON તરીકે: {"title":"કૉફી","amount":120,"type":"expense"}. title અને amount ને શોર્ટકટ ઇનપુટ અથવા "દર વખતે પૂછો" ચલ સાથે જોડો.
આ દસ્તાવેજ ઝડપી સંદર્ભ છે; વાસ્તવિક વર્તન માટે backend કોડ સત્યનો સ્રોત છે.