Get one invoice

GEThttps://rebaar.in/api/v1/invoices/{id}View as Markdown

One invoice by id, with its client and project. `creditedPaise` / `debitedPaise` are the credit and debit notes issued against it; `netTotalPaise` = `total + debitedPaise − creditedPaise` is what the client owes in all.

Headers

HeaderValue
AuthorizationrequiredBearer ck_live_… — your API key from Settings → API keys

Parameters

NameInTypeDescription
idrequiredpathstringThe invoice id, as returned by the list endpoint.

Try it

Send runs this call against your API sandbox with a sandbox key (ck_test_…). About the sandbox

curl -X GET 'https://rebaar.in/api/v1/invoices/f1a8c3d5-2e6b-4c9f-a017-3b5d8e2c4f96' \
  -H 'Authorization: Bearer ck_live_xxxxxxxx_…'
Only sandbox keys (ck_test_…) — make one in Settings → API keys. It reaches your practice company, never your real data. 30 calls a minute.

Responses

200The invoice with linked client and project.
{
  "id": "f1a8c3d5-2e6b-4c9f-a017-3b5d8e2c4f96",
  "number": "INV-2026-0042",
  "status": "Partial",
  "subtotal": 10000000,
  "taxAmount": 1800000,
  "total": 11800000,
  "creditedPaise": 0,
  "debitedPaise": 0,
  "netTotalPaise": 11800000,
  "amountPaid": 5000000,
  "issueDate": "2026-10-01",
  "dueDate": "2026-10-31",
  "paidAt": null,
  "irn": null,
  "createdAt": "2026-10-01T06:10:00.000Z",
  "client": {
    "id": "7d3f1c2a-5b8e-4f0a-9c61-2e4b7a9d0c13",
    "name": "Marigold Estates",
    "gstin": null,
    "email": "[email protected]"
  },
  "balanceDuePaise": 6800000,
  "isOverdue": false,
  "project": {
    "id": "casa-verde",
    "name": "Casa Verde"
  }
}
401No `Authorization: Bearer …` header was sent. Or: The key is unknown, revoked or expired — or the company cannot use it.
unauthenticated — No `Authorization: Bearer …` header was sent.
{
  "error": "unauthenticated",
  "message": "Authorization: Bearer <api_key> required"
}
invalid_token — The key is unknown, revoked or expired — or the company cannot use it.
{
  "error": "invalid_token",
  "message": "API key not recognised, revoked, or expired"
}
402The company is not on the Scale plan, which includes the API. Or: The subscription is not active (trial over, payment failed, cancelled, paused, locked or closing). `reason` says which.
plan_required — The company is not on the Scale plan, which includes the API.
{
  "error": "plan_required",
  "message": "API access requires the Scale plan. This workspace is on Growth.",
  "currentPlan": "growth",
  "requiredPlan": "scale"
}
access_expired — The subscription is not active (trial over, payment failed, cancelled, paused, locked or closing). `reason` says which.
{
  "error": "access_expired",
  "reason": "payment_failed",
  "message": "Workspace does not currently have an active Scale subscription."
}
403The request came from an IP address that is not on the key's allowlist. Or: The key does not carry the scope this method needs: `read` for GET, `write` for POST, PATCH and DELETE.
ip_not_allowed — The request came from an IP address that is not on the key's allowlist.
{
  "error": "ip_not_allowed",
  "message": "Source IP 203.0.113.7 is not on the key's allowlist."
}
insufficient_scope — The key does not carry the scope this method needs: `read` for GET, `write` for POST, PATCH and DELETE.
{
  "error": "insufficient_scope",
  "message": "This API key does not have the 'write' scope.",
  "required": "write",
  "granted": [
    "read"
  ]
}
404No such invoice in this workspace.
{
  "error": "not_found"
}
429More than 120 requests in a minute with this key (30 with a sandbox key).
rate_limited — More than 120 requests in a minute with this key (30 with a sandbox key).
{
  "error": "Too many requests. Please try again later."
}
500Something failed on our side.
internal — Something failed on our side.
{
  "error": "internal"
}

Errors

Errors every call can return
StatusCodeMeaningWhat to do
401unauthenticatedNo `Authorization: Bearer …` header was sent.Send your API key as `Authorization: Bearer ck_live_…` on every request.
401invalid_tokenThe key is unknown, revoked or expired — or the company cannot use it.Check you copied the whole key. Make a new one in Settings → API keys if it was revoked or has expired.
403ip_not_allowedThe request came from an IP address that is not on the key's allowlist.Call from an allowed address, or change the key's IP allowlist in Settings → API keys.
402plan_requiredThe company is not on the Scale plan, which includes the API.The Owner moves the company to Scale in Settings → Billing.
402access_expiredThe subscription is not active (trial over, payment failed, cancelled, paused, locked or closing). `reason` says which.The Owner pays or renews in Settings → Billing; calls work again at once.
429—More than 120 requests in a minute with this key (30 with a sandbox key).Wait the number of seconds in the `Retry-After` header. Every reply carries `RateLimit-Remaining`, so you can slow down before this happens.
403insufficient_scopeThe key does not carry the scope this method needs: `read` for GET, `write` for POST, PATCH and DELETE.Make a key with the scope you need in Settings → API keys.
500internalSomething failed on our side.Retry with exponential backoff. If it keeps happening, email [email protected] with the time of the call.