{"version":"1.0.0","mcp":{"type":"streamable-http","url":"https://fawtar.app/api/mcp","headers":[{"name":"Authorization","description":"Optional API key bearer (fwt_live_ or fwt_test_). OAuth 2.1 is discovered through the protected-resource metadata.","isRequired":false,"isSecret":true,"format":"string"}]},"openapi":"https://fawtar.app/api/v1/openapi.json","tools":[{"name":"fawtar_list","title":"List records","scope":"read","credit_cost":0},{"name":"fawtar_get","title":"Fetch one record","scope":"read","credit_cost":0},{"name":"fawtar_create","title":"Create a record","scope":"write","credit_cost":1},{"name":"fawtar_create_invoice","title":"Issue an invoice","scope":"write","credit_cost":1},{"name":"fawtar_outstanding","title":"What is owed to this business","scope":"read","credit_cost":0},{"name":"fawtar_vat_summary","title":"VAT for a period","scope":"read","credit_cost":0}],"scopes":[{"scope":"invoices:read","plans":["pro","business"],"prepaid":true},{"scope":"invoices:write","plans":["pro","business"],"prepaid":true},{"scope":"customers:read","plans":["pro","business"],"prepaid":true},{"scope":"customers:write","plans":["pro","business"],"prepaid":true},{"scope":"products:read","plans":["pro","business"],"prepaid":true},{"scope":"products:write","plans":["pro","business"],"prepaid":true},{"scope":"vendors:read","plans":["business"],"prepaid":true},{"scope":"vendors:write","plans":["business"],"prepaid":true},{"scope":"bills:read","plans":["business"],"prepaid":true},{"scope":"bills:write","plans":["business"],"prepaid":true},{"scope":"payments:read","plans":["pro","business"],"prepaid":true},{"scope":"payments:write","plans":["pro","business"],"prepaid":true},{"scope":"quotes:read","plans":["pro","business"],"prepaid":true},{"scope":"quotes:write","plans":["pro","business"],"prepaid":true},{"scope":"accounts:read","plans":["business"],"prepaid":true},{"scope":"accounts:write","plans":["business"],"prepaid":true},{"scope":"journal:read","plans":["business"],"prepaid":true},{"scope":"journal:write","plans":["business"],"prepaid":true},{"scope":"payroll:read","plans":["business"],"prepaid":true},{"scope":"payroll:write","plans":["business"],"prepaid":true},{"scope":"assets:read","plans":["business"],"prepaid":true},{"scope":"assets:write","plans":["business"],"prepaid":true},{"scope":"pos:read","plans":["business"],"prepaid":true},{"scope":"pos:write","plans":["business"],"prepaid":true},{"scope":"webhooks:read","plans":["business"],"prepaid":true},{"scope":"webhooks:write","plans":["business"],"prepaid":true}],"resources":[{"path":"invoices","scope":"invoices","operations":["list","get","create"]},{"path":"credit_notes","scope":"invoices","operations":["list","get","create"]},{"path":"debit_notes","scope":"invoices","operations":["list","get"]},{"path":"quotes","scope":"quotes","operations":["list","get","create","update","delete"]},{"path":"orders","scope":"invoices","operations":["list","get","create","update"]},{"path":"customers","scope":"customers","operations":["list","get","create","update","delete"]},{"path":"products","scope":"products","operations":["list","get","create","update","delete"]},{"path":"categories","scope":"products","operations":["list","get","create","update","delete"]},{"path":"product_unit_types","scope":"products","operations":["list","get","create","update","delete"]},{"path":"vendors","scope":"vendors","operations":["list","get","create","update","delete"]},{"path":"bills","scope":"bills","operations":["list","get","create","update","delete"]},{"path":"simple_bills","scope":"bills","operations":["list","get","create","update","delete"]},{"path":"bill_payments","scope":"payments","operations":["list","get","create"]},{"path":"inventories","scope":"products","operations":["list","get","create","update","delete"]},{"path":"inventory_levels","scope":"products","operations":["list","get"]},{"path":"inventory_adjustments","scope":"products","operations":["list","create"]},{"path":"inventory_transfers","scope":"products","operations":["list","create"]},{"path":"invoice_payments","scope":"payments","operations":["list","get","create"]},{"path":"receipts","scope":"payments","operations":["list","get"]},{"path":"accounts","scope":"accounts","operations":["list","get","create","update"]},{"path":"journal_entries","scope":"journal","operations":["list","get","create"]},{"path":"recurring_journals","scope":"journal","operations":["list","get"]},{"path":"employees","scope":"payroll","operations":["list","get","create","update","delete"]},{"path":"payroll_runs","scope":"payroll","operations":["list","get"]},{"path":"payslips","scope":"payroll","operations":["list","get"]},{"path":"assets","scope":"assets","operations":["list","get","create","update","delete"]},{"path":"pos_tables","scope":"pos","operations":["list","get","create","update","delete"]},{"path":"pos_orders","scope":"pos","operations":["list","get"]}],"rate_limits":{"authenticated_per_minute":120,"sandbox_issuance_per_ip_per_day":3,"org_issuance_per_ip_per_day":3},"pricing":{"model":"prepaid","operations":{"read":0,"write":1},"pack":{"currency":"SAR","price_minor":9900,"credits":1000,"minimum_top_up_minor":9900},"subscription_keys":"Existing subscription keys retain their current plan access and are not metered."},"sandbox":{"lifetime_hours":24,"initial_credits":100,"issuance_per_ip_per_day":3,"endpoint":"/api/v1/sandbox-keys","signup_required":false,"invoice_tax_treatment":"ordinary","watermark":"SANDBOX — NOT A TAX INVOICE","live_tax_invoices":false,"zatca":false,"outbound_webhooks":false},"onboarding":{"endpoint":"/api/v1/orgs","fields":["email","name"],"key_issuance":"Verified Supabase session for the same email is required. Without it, receive a signup/login claim URL and no live key. After provider email verification, POST the claim token to /api/v1/orgs/claim with that Supabase session to obtain a key.","plan":"api_prepaid","verified_taxpayer":false,"tax_invoices":false,"zatca":false},"metering":{"charged":"Authorized write attempts, including ones Fawtar rejects as invalid. There is no automatic reversal: the credit is reserved before the write so the debit is atomic under concurrent calls, and reversing it correctly would have to settle against the outcome of the operation itself. Debug against a free sandbox key (100 credits, no signup) and pay only once the call works. Credits do not expire; a refunded credit pack is reclaimed.","header":"X-Fawtar-Credits-Remaining","idempotency":"POST invoices, credit_notes and invoice_payments debit once per Idempotency-Key and path; changed payloads return 409. Every call to other writes (including MCP) is charged, even with a repeated key, because those operations do not guarantee write replay safety."},"payment_required":{"status":402,"example":{"error":"payment_required","code":"insufficient_credits","balance":0,"required_credits":1,"top_up_url":"https://fawtar.app/api/v1/credits/top-up","top_up_method":"POST","pack":{"currency":"SAR","price_minor":9900,"credits":1000,"minimum_top_up_minor":9900}}},"purchase":{"endpoint":"/api/v1/credits/top-up","method":"POST","authentication":"API key bearer","result":"Lemon Squeezy hosted checkout URL. Payment completion grants one pack; order ids are deduplicated. If the organization carries a refund shortfall (credits that were spent and then refunded), it is settled out of the purchase first — GET /api/v1/credits reports refund_shortfall and next_pack_net_credits before you buy.","autonomous_payment":"Checkout requires a payment method supported by Lemon Squeezy; this endpoint does not charge a stored card autonomously."},"taxpayer_verification":"Claiming an organization proves email ownership only. A separate human fiscal review is required before tax invoices or ZATCA can be enabled."}