Kliimora PDFKliimora PDF
Pro Max

API Documentation

Convert bank statements to structured JSON via REST API. Automate your accounting workflow with a single HTTP call.

Overview

Authentication

Bearer token via API key (klm_live_...)

Rate Limit

Subject to your Pro Max page quota (1,200 pages/month)

Base URL

https://kliimorapdf.com/api/public/v1

Authentication

All API requests require a Bearer token in the Authorization header. Generate your API key from the Integrations page.

http
Authorization: Bearer klm_live_your_api_key_here

POST /convert/bank-statement

Upload a bank statement PDF and receive structured transaction data as JSON. Supports 80+ banks worldwide.

Request

FieldTypeRequiredDescription
fileFileโœ…PDF file (max 20MB)
bankstringโ€”Bank hint (e.g. "BCA", "Mandiri"). Auto-detected if omitted.
passwordstringโ€”PDF password (if encrypted)

Example (cURL)

bash
curl -X POST https://kliimorapdf.com/api/public/v1/convert/bank-statement \
  -H "Authorization: Bearer klm_live_abc123..." \
  -F "file=@statement.pdf" \
  -F "bank=BCA"

Example (JavaScript)

javascript
const form = new FormData();
form.append("file", pdfFile);
form.append("bank", "Mandiri"); // optional

const res = await fetch("https://kliimorapdf.com/api/public/v1/convert/bank-statement", {
  method: "POST",
  headers: { Authorization: "Bearer klm_live_abc123..." },
  body: form,
});

const data = await res.json();
console.log(data.transactions); // Array of transactions
console.log(data.summary);      // { total_debit, total_credit, net, last_balance }

Response (200 OK)

json
{
  "bank": "BCA",
  "locale": "id",
  "pages": 3,
  "warnings": [],
  "summary": {
    "transactions": 45,
    "total_debit": 15000000,
    "total_credit": 20000000,
    "net": 5000000,
    "last_balance": 12500000
  },
  "transactions": [
    {
      "date": "01/04/2026",
      "description": "Transfer BI-Fast dari BANK MANDIRI",
      "debit": null,
      "credit": 5000000,
      "balance": 12500000,
      "balanceOk": true
    }
  ],
  "quota": {
    "used": 48,
    "limit": 1200,
    "remaining": 1152
  }
}

Error Responses

StatusCodeDescription
401missing_api_keyNo Authorization header
401invalid_api_keyKey not found or revoked
402quota_exceededMonthly page quota exhausted
403pro_max_requiredAPI requires Pro Max plan
413file_too_largeFile exceeds 20MB limit
422password_requiredPDF is encrypted, provide password field
422parse_failedCould not extract transactions from PDF

Webhooks

Configure webhook endpoints in the Integrations page. After each successful conversion (UI or API), we POST a JSON payload to your endpoint:

json
{
  "event": "conversion.completed",
  "source": "api",
  "tool": "bank_statement",
  "bank": "BRI",
  "pages": 2,
  "transactions": 28,
  "summary": {
    "total_debit": 5000000,
    "total_credit": 8000000,
    "net": 3000000,
    "last_balance": 3500000
  },
  "timestamp": "2026-05-18T10:30:00Z"
}

Webhooks are fire-and-forget. If your endpoint returns a non-2xx status, the delivery is logged but not retried. You can view delivery history in the Integrations page.

Supported Banks

The API auto-detects the bank from the PDF content. You can also pass a bank hint for faster processing. See the full list of 80+ supported banks on the Banks page.

BCA
Mandiri
BRI
BNI
CIMB
Permata
HSBC
DBS
OCBC
UOB
Maybank
Jago
SeaBank
Chase
Barclays
Revolut
+ 65 more

Ready to integrate?

Get your API key and start converting bank statements in minutes.