{
  "id": "e723a67b-415f-4585-a224-e815f8f5f6d9",
  "slug": "xero",
  "name": "Xero Accounting API",
  "provider": "Xero",
  "category_slug": "finance-banking",
  "description": "Accounting API for the platform most SG SMEs and accountants run on: invoices, contacts, bank transactions, payroll and reports. Essential for any SG ERP or fintech that syncs books.",
  "base_url": "https://api.xero.com/api.xro/2.0",
  "docs_url": "https://developer.xero.com/documentation",
  "openapi_url": "https://raw.githubusercontent.com/XeroAPI/Xero-OpenAPI/master/xero_accounting.yaml",
  "auth_type": "oauth2",
  "auth_guide": [
    "Create a free developer account at developer.xero.com and add an app.",
    "Configure the OAuth 2.0 redirect URI and copy client id/secret.",
    "Run the authorization code flow requesting scopes like accounting.transactions offline_access.",
    "Exchange the code for access + refresh tokens; access tokens last 30 minutes.",
    "Call the API with Authorization: Bearer and the xero-tenant-id header from the connections endpoint."
  ],
  "pricing": "freemium",
  "rate_limit": "60 calls/min and 5,000 calls/day per tenant (documented by Xero)",
  "example_request": "curl -H 'Authorization: Bearer ACCESS_TOKEN' -H 'xero-tenant-id: TENANT_ID' -H 'Accept: application/json' 'https://api.xero.com/api.xro/2.0/Invoices?page=1'",
  "example_response_snippet": "{\"Invoices\":[{\"InvoiceID\":\"...\",\"Type\":\"ACCREC\",\"Contact\":{\"Name\":\"ABC Pte Ltd\"},\"AmountDue\":214.00,\"Status\":\"AUTHORISED\"}]}",
  "agent_notes": "Forgetting the xero-tenant-id header is the classic 403 cause. Refresh tokens rotate on every use; persist the newest one atomically.",
  "status": "live",
  "tags": [
    "xero",
    "accounting",
    "invoices",
    "oauth2",
    "sme"
  ],
  "sg_official": false,
  "created_at": "2026-07-05T08:44:12.301Z",
  "updated_at": "2026-07-05T09:15:26.975Z",
  "page_url": "https://singaporeapi.com/apis/xero"
}