← Billbook પર પાછા જાઓ

રિમોટ બુકકીપિંગ 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 કોડ સત્યનો સ્રોત છે.