Download OpenAPI specification:Download
The Laabam One API lets your systems and approved third parties read and write data in your company's Laabam One account — invoices, customers, products, payments — and send messages over SMS, WhatsApp and email.
Every request sends two headers: X-Client-Id and X-Client-Secret
(created in Settings → API Keys). The secret is shown once and stored
hashed. A key belongs to exactly one company, so most endpoints do not take a
company in the URL. The public website APIs (recruitment, leads, storefront)
are the exception — they carry {company} in the path because they are
embedded in public web pages.
resource:read / resource:write).X-RateLimit-* headers, 429 + Retry-After).x-status: available — implemented and callable today.x-status: planned — contract defined, not yet built.| limit | integer [ 1 .. 100 ] Default: 25 Page size (1–100). |
| cursor | string Opaque cursor from the previous response's paging.next_cursor. |
| status | string Enum: "unpaid" "partial" "paid" "voided" |
| customer_id | string |
| from | string <date> |
| to | string <date> |
| sort | string Field to sort by; prefix with - for descending (e.g. -invoice_date). |
{- "data": [
- {
- "id": "inv_5c1a",
- "number": "INV/2025-26/041",
- "status": "unpaid",
- "customer_id": "string",
- "currency": "INR",
- "subtotal": "3000.00",
- "tax_amount": "540.00",
- "round_off": "0.00",
- "total": "3540.00",
- "due_amount": "3540.00",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "created_at": "2019-08-24T14:15:22Z"
}
], - "paging": {
- "next_cursor": "string",
- "has_more": true
}
}Totals (tax, round‑off, grand total) are computed server‑side and are authoritative; client‑sent totals are ignored.
| Idempotency-Key | string <uuid> A unique UUID so retries don't double‑create/charge/send. Cached 24h. |
| customer_id required | string |
| currency | string |
| invoice_date | string <date> |
| due_date | string <date> |
required | Array of objects (InvoiceItem) |
| notes | string |
{- "customer_id": "string",
- "currency": "INR",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "notes": "string"
}{- "data": {
- "id": "inv_5c1a",
- "number": "INV/2025-26/041",
- "status": "unpaid",
- "customer_id": "string",
- "currency": "INR",
- "subtotal": "3000.00",
- "tax_amount": "540.00",
- "round_off": "0.00",
- "total": "3540.00",
- "due_amount": "3540.00",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "data": {
- "id": "inv_5c1a",
- "number": "INV/2025-26/041",
- "status": "unpaid",
- "customer_id": "string",
- "currency": "INR",
- "subtotal": "3000.00",
- "tax_amount": "540.00",
- "round_off": "0.00",
- "total": "3540.00",
- "due_amount": "3540.00",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| customer_id required | string |
| currency | string |
| invoice_date | string <date> |
| due_date | string <date> |
required | Array of objects (InvoiceItem) |
| notes | string |
{- "customer_id": "string",
- "currency": "INR",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "notes": "string"
}{- "data": {
- "id": "inv_5c1a",
- "number": "INV/2025-26/041",
- "status": "unpaid",
- "customer_id": "string",
- "currency": "INR",
- "subtotal": "3000.00",
- "tax_amount": "540.00",
- "round_off": "0.00",
- "total": "3540.00",
- "due_amount": "3540.00",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "data": {
- "id": "inv_5c1a",
- "number": "INV/2025-26/041",
- "status": "unpaid",
- "customer_id": "string",
- "currency": "INR",
- "subtotal": "3000.00",
- "tax_amount": "540.00",
- "round_off": "0.00",
- "total": "3540.00",
- "due_amount": "3540.00",
- "invoice_date": "2019-08-24",
- "due_date": "2019-08-24",
- "items": [
- {
- "product_id": "string",
- "quantity": 0,
- "unit_price": "1500.00",
- "tax_rate": 18,
- "amount": "3540.00"
}
], - "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| channel | string Default: "email" Enum: "email" "whatsapp" |
{- "channel": "email"
}{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| limit | integer [ 1 .. 100 ] Default: 25 Page size (1–100). |
| cursor | string Opaque cursor from the previous response's paging.next_cursor. |
| q | string Free‑text search (name / email / phone). |
{- "data": [
- {
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}, - "id": "cus_8d2f",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "paging": {
- "next_cursor": "string",
- "has_more": true
}
}| Idempotency-Key | string <uuid> A unique UUID so retries don't double‑create/charge/send. Cached 24h. |
| name required | string |
string <email> | |
| phone | string |
| gstin | string |
object (Address) |
{- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}
}{- "data": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}, - "id": "cus_8d2f",
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "data": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}, - "id": "cus_8d2f",
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| name required | string |
string <email> | |
| phone | string |
| gstin | string |
object (Address) |
{- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}
}{- "data": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "gstin": "string",
- "billing_address": {
- "line1": "string",
- "city": "string",
- "state": "string",
- "postal_code": "string",
- "country": "IN"
}, - "id": "cus_8d2f",
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| limit | integer [ 1 .. 100 ] Default: 25 Page size (1–100). |
| cursor | string Opaque cursor from the previous response's paging.next_cursor. |
| q | string |
| category_id | string |
{- "data": [
- {
- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true,
- "id": "prd_19a",
- "current_stock": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
], - "paging": {
- "next_cursor": "string",
- "has_more": true
}
}| name required | string |
| sku | string |
| category_id | string |
| unit_price | string |
| tax_rate | number |
| track_stock | boolean |
{- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true
}{- "data": {
- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true,
- "id": "prd_19a",
- "current_stock": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "data": {
- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true,
- "id": "prd_19a",
- "current_stock": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| name required | string |
| sku | string |
| category_id | string |
| unit_price | string |
| tax_rate | number |
| track_stock | boolean |
{- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true
}{- "data": {
- "name": "string",
- "sku": "string",
- "category_id": "string",
- "unit_price": "1500.00",
- "tax_rate": 18,
- "track_stock": true,
- "id": "prd_19a",
- "current_stock": 0,
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| quantity required | number Positive to add, negative to remove. |
| reason required | string |
{- "quantity": 0,
- "reason": "string"
}| limit | integer [ 1 .. 100 ] Default: 25 Page size (1–100). |
| cursor | string Opaque cursor from the previous response's paging.next_cursor. |
| invoice_id | string |
| customer_id | string |
{- "data": [
- {
- "invoice_id": "string",
- "amount": "3540.00",
- "method": "cash",
- "paid_at": "2019-08-24",
- "reference": "string",
- "id": "pay_3a9c",
- "created_at": "2019-08-24T14:15:22Z"
}
], - "paging": {
- "next_cursor": "string",
- "has_more": true
}
}Updates the invoice due_amount/status and posts the accounting entry atomically.
| Idempotency-Key | string <uuid> A unique UUID so retries don't double‑create/charge/send. Cached 24h. |
| invoice_id required | string |
| amount required | string |
| method | string Enum: "cash" "bank_transfer" "upi" "card" "cheque" |
| paid_at | string <date> |
| reference | string |
{- "invoice_id": "string",
- "amount": "3540.00",
- "method": "cash",
- "paid_at": "2019-08-24",
- "reference": "string"
}{- "data": {
- "invoice_id": "string",
- "amount": "3540.00",
- "method": "cash",
- "paid_at": "2019-08-24",
- "reference": "string",
- "id": "pay_3a9c",
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
{- "data": {
- "invoice_id": "string",
- "amount": "3540.00",
- "method": "cash",
- "paid_at": "2019-08-24",
- "reference": "string",
- "id": "pay_3a9c",
- "created_at": "2019-08-24T14:15:22Z"
}
}| id required | string Opaque resource identifier. |
| Idempotency-Key | string <uuid> A unique UUID so retries don't double‑create/charge/send. Cached 24h. |
| amount | string Partial refund amount; omit for full refund. |
{- "amount": "string"
}{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}✅ SMS & WhatsApp available. Email planned. Security‑sensitive — dedicated send scopes, lower rate limits and a daily cap. Path carries the company slug.
Sends an SMS via the company's gateway. For India DLT compliance, pass an approved sender_id plus the registered template_id (and pe_id), and ensure message matches the approved template text. Requires the messages:sms:send scope. Subject to the messaging rate limit + daily cap.
| company required | string Your company slug (public website APIs only). |
| to required | string Recipient number, digits only (8–15). |
| message required | string <= 1000 characters |
| sender_id | string <= 11 characters |
| template_id | string Registered DLT template id. |
| pe_id | string DLT principal entity id. |
| type | string Default: "transactional" Enum: "transactional" "promotional" |
{- "to": "919800000000",
- "message": "Your OTP is 123456",
- "sender_id": "LBMONE",
- "template_id": "1707xxxxxxxxxxxxx",
- "pe_id": "string",
- "type": "transactional"
}{- "data": {
- "id": "msg_7b3c",
- "channel": "sms",
- "status": "queued",
- "to": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}Sends via the company's Meta Cloud API provider. Business‑initiated messages must use a Meta‑APPROVED template; free text is only delivered inside an open 24‑hour customer‑service window. Requires the messages:whatsapp:send scope.
| company required | string Your company slug (public website APIs only). |
| to required | string |
| type | string Default: "template" Enum: "template" "text" |
object Required when type=template. | |
object Required when type=text. |
{- "to": "919800000000",
- "type": "template",
- "template": {
- "name": "invoice_due",
- "language": "en",
- "variables": [
- "Acme",
- "3540.00"
]
}, - "text": {
- "body": "Thanks for your order!"
}
}{- "data": {
- "id": "msg_7b3c",
- "channel": "sms",
- "status": "queued",
- "to": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}| company required | string Your company slug (public website APIs only). |
| id required | string The provider message id returned by a send call. |
{- "data": {
- "id": "msg_7b3c",
- "channel": "sms",
- "status": "queued",
- "to": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}| company required | string Your company slug (public website APIs only). |
required | Array of objects |
| subject required | string |
| template_id | string |
| html | string Server‑side sanitised before send. |
object |
{- "to": [
- {
- "email": "user@example.com",
- "name": "string"
}
], - "subject": "string",
- "template_id": "string",
- "html": "string",
- "variables": {
- "property1": "string",
- "property2": "string"
}
}{- "data": {
- "id": "msg_7b3c",
- "channel": "sms",
- "status": "queued",
- "to": "string",
- "created_at": "2019-08-24T14:15:22Z"
}
}| company required | string Your company slug (public website APIs only). |
{- "data": [
- {
- "id": "string",
- "slug": "string",
- "title": "string",
- "department": "string",
- "location": "string",
- "employment_type": "string",
- "description": "string"
}
]
}| company required | string Your company slug (public website APIs only). |
| slug required | string |
{- "data": {
- "id": "string",
- "slug": "string",
- "title": "string",
- "department": "string",
- "location": "string",
- "employment_type": "string",
- "description": "string"
}
}| company required | string Your company slug (public website APIs only). |
| slug required | string |
| name required | string |
| email required | string <email> |
| phone | string |
| resume | string <binary> |
| cover_letter | string |
{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| company required | string Your company slug (public website APIs only). |
| name required | string |
string <email> | |
| phone | string |
| source | string |
| message | string |
{- "name": "string",
- "email": "user@example.com",
- "phone": "string",
- "source": "string",
- "message": "string"
}{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| company required | string Your company slug (public website APIs only). |
| productId required | string |
{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| company required | string Your company slug (public website APIs only). |
| Idempotency-Key | string <uuid> A unique UUID so retries don't double‑create/charge/send. Cached 24h. |
required | Array of objects |
required | object |
{- "items": [
- {
- "product_id": "string",
- "quantity": 0
}
], - "customer": {
- "name": "string",
- "email": "user@example.com",
- "phone": "string"
}
}{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}| company required | string Your company slug (public website APIs only). |
| orderId required | string |
{- "error": {
- "code": "validation_failed",
- "message": "string",
- "details": [
- {
- "field": "string",
- "issue": "string"
}
], - "request_id": "req_8f3a1c9e"
}
}