← 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 குறியீடே உண்மையின் ஆதாரம்.