Kliimora 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 150+ 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 150+ 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.

Kliimora PDFKliimora PDF

PT Klik Inovasi Modern Abadi ยท Support

ยฉ 2026 Kliimora PDF. All rights reserved.