صورتحساب
پلنها، کیف پول ریالی، شارژ، مصرف، فاکتورها و اطلاعات مالیاتی. مبلغها به ریال.
/v1/pricingThe public price list#
Plans, per-meter rials and the limits the platform enforces, from the dated price book. Cache-Control: public, max-age=300, with an ETag (If-None-Match gives 304). CORS: Access-Control-Allow-Origin * for GET. Pro is per developer seat (owner, admin, developer) per month, each seat's fee back as usage credit; a seat added mid-month pays the days left.
- دسترسی
- بدون اعتبارنامه
پاسخ
200Pricing
effective_fromstring (date)الزامیcurrencystringالزامیone of
IRRvat_percentnumbergrace_hoursnumberplansPublicPlan[]الزامیidstringالزامیone of
hobby,pro,enterpriseseat_fee_per_monthintegerrials per seat per month
usage_creditintegerrials per seat per month
per_seatbooleantrue for Pro
max_seatsinteger | null1 for Hobby; null for Pro
seat_rolesstring[]Pro: the roles that take a seat
free_rolesstring[]Pro: the roles that do not
prorationstringPro: daily, a seat added mid-month pays the days left
one of
dailyoveragebooleanfalse: the plan stops at its included amounts
spend_budget_defaultinteger | nullrials (1 toman = 10 rials)
limitsPlanLimitsdb_history_hoursintegerdb_branches_per_databaseintegerdb_backups_per_databaseintegercrons_per_projectintegercache_max_memory_mbintegerdeploy_static_filesintegerstatic files in a deployment
deploy_file_bytesintegerone static file, bytes
deploy_static_bytesintegerall static files of a deployment, bytes
deploy_function_bytesintegerthe function's code, compressed, bytes
run_function_copiesintegercopies of one function a server runs at once (D117); past them a request queues about 1 s, then 429 with Retry-After 1
custombooleanenterprise: priced by contract
metersobject[]الزامیmeterstringالزامیlabelstringunitstringالزامیlabel_fastring | nullunit_fastring | nullrialsintegerالزامیper unit, rounded as an invoice's unit price
includedobjecthobbynumberpronumber
خطاها
| وضعیت | توضیح |
|---|---|
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/pricing"/v1/billingPlan, state and wallet#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پاسخ
200Billing
planstringالزامیone of
hobby,prostatestringالزامیgrace_untilstring (date-time) | nullcurrencystringالزامیone of
IRRbalanceintegerالزامیrials (1 toman = 10 rials)
periodstringالزامیa Jalali month, YYYY-MM, e.g. 1405-08
pattern
^\d{4}-\d{2}$usage_this_periodintegerrials (1 toman = 10 rials)
seatsintegermembers that take a developer seat (owner, admin, developer)
seatobjectrolesstring[]maxinteger | null1 on Hobby; null on Pro
paid_this_periodintegerseats paid this month; removed and demoted ones stay paid to its end
free_nowintegerpaid seats no member uses: the next one added is free
next_seatobject | nullPro: what one more seat costs now when none is free
amountintegerrials (1 toman = 10 rials)
vatintegerrials (1 toman = 10 rials)
totalintegerrials (1 toman = 10 rials)
daysintegerperiod_daysintegerfull_monthboolean
usage_creditobject | nullPro: the month's seats' credit
totalintegerrials (1 toman = 10 rials)
leftintegerrials (1 toman = 10 rials)
spendobject | nulllimitintegerrials (1 toman = 10 rials)
pausebooleanusedintegerrials (1 toman = 10 rials)
burn_per_dayintegerrials (1 toman = 10 rials)
days_leftinteger | nullplansobjectproobjectper seat
per_seatbooleanseat_per_monthintegerrials (1 toman = 10 rials)
usage_creditintegerrials (1 toman = 10 rials)
payment_methodsobject[]the ways a top-up can be paid
idstringالزامیgoes in a top-up's method
labelstringالزامیfor people, e.g. card payment
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing" \
-H "Authorization: Bearer $KEY"/v1/billing/pricesThe price book#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پاسخ
200Prices
toman_per_usdnumbervat_percentnumberpricesPrice[]الزامیmeterstringالزامیlabelstringunitstringالزامیlabel_fastring | nullPersian
unit_fastring | nullPersian
usdnumberrialsintegerالزامیper unit
includedobjecthobbynumberpronumber
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/prices" \
-H "Authorization: Bearer $KEY"/v1/billing/usageUsage and cost per meter for a month#
Database compute is sold by the compute-hour.
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پارامترها
periodstringکوئریJalali month; default this month
pattern
^\d{4}-\d{2}$
پاسخ
200BillingUsage
periodstringالزامیa Jalali month, YYYY-MM, e.g. 1405-08
pattern
^\d{4}-\d{2}$metersMeterUsage[]الزامیmeterstringالزامیlabelstringunitstringlabel_fastring | nullPersian
unit_fastring | nullPersian
quantitynumberincludednumberbillablenumberamountintegerالزامیrials (1 toman = 10 rials)
notestring
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_period |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/usage" \
-H "Authorization: Bearer $KEY"/v1/billing/usage/historyUsage over time, for charts#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پارامترها
granularitystringکوئریday (default): each day of a month up to today; month: each of the last months
one of
day,monthperiodstringکوئریday: the Jalali month, default this one
pattern
^\d{4}-\d{2}$monthsintegerکوئریmonth: how many, 1-24, default 12
1–24
meterstringکوئریmeters to keep (comma list)
پاسخ
200UsageHistory
granularitystringالزامیone of
day,monthperiodstringa Jalali month, YYYY-MM, e.g. 1405-08
pattern
^\d{4}-\d{2}$metersobject[]الزامیmeterstringالزامیlabelstringالزامیunitstringالزامیlabel_fastring | nullunit_fastring | null
pointsobject[]الزامیatstringالزامیa Tehran date (YYYY-MM-DD) or a Jalali month (YYYY-MM)
totalintegerالزامیrials (1 toman = 10 rials)
metersobjectالزامی
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_param, bad_period |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/usage/history" \
-H "Authorization: Bearer $KEY"/v1/billing/transactionsThe wallet ledger (newest 200)#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پاسخ
200object
transactionsTransaction[]الزامیidintegerالزامیamountintegerالزامیrials (1 toman = 10 rials)
kindstringالزامیone of
topup,usage,plan_fee,vat,credit,refund,adjustmentrefstring | nullmemostring | nullcreated_atstring (date-time)balanceintegerrials (1 toman = 10 rials)
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/transactions" \
-H "Authorization: Bearer $KEY"/v1/billing/paymentsTop-up payments (newest 100)#
Masked card numbers are the payer's: billing roles only.
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
پاسخ
200object
paymentsPayment[]الزامیidstring (uuid)الزامیmethodstringthe payment method's label
amountintegerالزامیrials (1 toman = 10 rials)
statusstringالزامیone of
created,paid,failedref_idstring | nullcard_panstring | nullmasked
errorstring | nullone of
cancelled,the payment was not completedcreated_atstring (date-time)verified_atstring (date-time) | null
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/payments" \
-H "Authorization: Bearer $KEY"/v1/billing/topupsStart a top-up#
Returns a payment page; the wallet is credited when the provider confirms.
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
بدنهٔ درخواستapplication/json
amountintegerالزامیrials
100000–2000000000
methodstringthe id of one of
payment_methodsin GET /v1/billing; default the first
پاسخ
200TopupCreated
paymentstring (uuid)الزامیamountintegerrials (1 toman = 10 rials)
methodstringmethod_labelstringpay_urlstringالزامی
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_amount, bad_payment_method, bad_json |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden |
| 500 | internal: an unexpected failure |
| 502 | Upstream failure: psp |
نمونه
curl -X POST "https://api.ibel.ai/v1/billing/topups" \
-H "Authorization: Bearer $KEY" \
-d '{"amount":100000}'/v1/billing/callback/{method}Payment page redirect (not for API clients)#
Verifies the payment, credits the wallet and redirects to the dashboard.
- دسترسی
- بدون اعتبارنامه
پارامترها
methodstringمسیرالزامیthe payment method's id
Authoritystringکوئریthe payment's reference
پاسخ
302Redirect to the dashboard's billing page with ?payment=paid|failed&id=<payment>
خطاها
| وضعیت | توضیح |
|---|---|
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/callback/card"/v1/billing/spendSet the Pro spend budget#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
- تایید دوم
- با نشست داشبورد، عامل دوم در ۱۰ دقیقهٔ اخیر لازم است؛ کلید API نیازی ندارد.
بدنهٔ درخواستapplication/json
limitinteger | nullat least 0
pauseboolean
پاسخ
200Spend
limitinteger | nullat least 0
pauseboolean
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_limit, bad_json |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden, step_up_required |
| 500 | internal: an unexpected failure |
نمونه
curl -X PUT "https://api.ibel.ai/v1/billing/spend" \
-H "Authorization: Bearer $KEY" \
-d '{"limit":0,"pause":true}'/v1/billing/planChange plan#
Pro: the month's fee for every seat, plus VAT, now. Hobby: one seat at most; no refund.
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
- تایید دوم
- با نشست داشبورد، عامل دوم در ۱۰ دقیقهٔ اخیر لازم است؛ کلید API نیازی ندارد.
بدنهٔ درخواستapplication/json
planstringالزامیone of
pro,hobby
پاسخ
200object
planstringالزامی
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_plan, bad_json |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 402 | Payment required: insufficient_balance |
| 403 | Not allowed: forbidden, step_up_required |
| 409 | Conflict: seat_limit |
| 500 | internal: an unexpected failure |
نمونه
curl -X POST "https://api.ibel.ai/v1/billing/plan" \
-H "Authorization: Bearer $KEY" \
-d '{"plan":"pro"}'/v1/billing/tax-detailsThe buyer's tax details#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
پاسخ
200object
tax_detailsTaxDetails | nullالزامیbuyer_typestringالزامیone of
person,companylegal_namestringالزامیup to 200 characters
national_idstringالزامیeconomic_codestring | nullpostal_codestring | nullpattern
^\d{10}$addressstring | nullup to 500 characters
updated_atstring (date-time)
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/tax-details" \
-H "Authorization: Bearer $KEY"/v1/billing/tax-detailsSet the buyer's tax details#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- مالک، ادمین، مالی
- تایید دوم
- با نشست داشبورد، عامل دوم در ۱۰ دقیقهٔ اخیر لازم است؛ کلید API نیازی ندارد.
بدنهٔ درخواستapplication/json
buyer_typestringالزامیone of
person,companylegal_namestringالزامیup to 200 characters
national_idstringالزامیeconomic_codestring | nullpostal_codestring | nullpattern
^\d{10}$addressstring | nullup to 500 characters
updated_atstring (date-time)
پاسخ
200object
savedboolean
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_type, bad_name, bad_national_id, bad_economic_code, bad_postal_code, bad_json |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 403 | Not allowed: forbidden, step_up_required |
| 500 | internal: an unexpected failure |
نمونه
curl -X PUT "https://api.ibel.ai/v1/billing/tax-details" \
-H "Authorization: Bearer $KEY" \
-d '{"buyer_type":"person","legal_name":"…","national_id":"…"}'/v1/billing/invoicesIssued invoices#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پاسخ
200object
invoicesInvoiceSummary[]الزامیnumberstringالزامیpattern
^\d{4}-\d{6}$periodstringالزامیa Jalali month, YYYY-MM, e.g. 1405-08
pattern
^\d{4}-\d{2}$issued_atstring (date-time)netintegerrials (1 toman = 10 rials)
vatintegerrials (1 toman = 10 rials)
totalintegerالزامیrials (1 toman = 10 rials)
خطاها
| وضعیت | توضیح |
|---|---|
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/invoices" \
-H "Authorization: Bearer $KEY"/v1/billing/invoices/{number}An invoice, or preview for this month so far#
- دسترسی
- کلید API یا نشست داشبورد
- نقشها
- همهٔ نقشها
پارامترها
numberstringمسیرالزامیinvoice number, e.g. 1405-000001, or preview
periodstringکوئریpreview only: Jalali month
pattern
^\d{4}-\d{2}$
پاسخ
200Invoice
numberstring | nullالزامیdraftbooleanالزامیperiodstringالزامیa Jalali month, YYYY-MM, e.g. 1405-08
pattern
^\d{4}-\d{2}$issued_atstring (date-time) | nulllinesInvoiceLine[]الزامیkindstringالزامیone of
usage,discount,planmeterstringdescriptionstringالزامیdescription_fastringPersian (not on invoices issued before 4 Nov 2026)
quantitynumberplan lines: seats
unitstringplan lines: seat-month (the month's seats) or seat (a seat added in the month)
unit_fastringPersian
unit_priceintegerrials (1 toman = 10 rials)
amountintegerالزامیrials (1 toman = 10 rials)
credit_totalintegerdiscount line on Pro: the month's usage credit from its seats, rials
netintegerالزامیrials (1 toman = 10 rials)
vatintegerالزامیrials (1 toman = 10 rials)
totalintegerالزامیrials (1 toman = 10 rials)
statementobjectfromstring (date-time)tostring (date-time)openingintegerrials (1 toman = 10 rials)
topupsintegerrials (1 toman = 10 rials)
creditsintegerrials (1 toman = 10 rials)
chargesintegerrials (1 toman = 10 rials)
closingintegerrials (1 toman = 10 rials)
buyerobject | nulltax details as at issue; for viewer and developer roles only buyer_type and legal_name
sellerobjectnamestringeconomic_codestringnational_idstringaddressstring
خطاها
| وضعیت | توضیح |
|---|---|
| 400 | Bad request: bad_period |
| 401 | unauthorized: missing, invalid, expired or revoked credential |
| 404 | Not found: not_found |
| 500 | internal: an unexpected failure |
نمونه
curl "https://api.ibel.ai/v1/billing/invoices/1405-000001" \
-H "Authorization: Bearer $KEY"