main
Doom CC Loan on App API
1. POST /api/v1/cc-loan-on-app/onboarding
Erangel route: POST /v3-cc-loan-on-app-onboarding
Request Body
{
"card_token": "f104d035a92652987b8c82dd91cb13aa1f403d686dcbc3844d261cc8416de9b0"
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"admin_fee_note": {
"description": "1% dari total pinjaman (min. Rp200.000)",
"title": "Ketentuan Biaya Admin"
},
"eligible": true,
"eligible_note": "Pinjaman baru belum bisa diajukan karena masih ada proses yang berlangsung.",
"list": [
{
"account_image_name": "britama_bisnis",
"account_image_path": "http://asset-host/account/britama_bisnis.png",
"account_name": "BRItama Bisnis",
"account_no": "029012345678901",
"account_string": "0290 **** **** 112",
"admin_fee_string": "Rp200.000",
"amount_string": "Rp3.200.000",
"card_image_name": "bri_easy_card",
"card_image_path": "http://asset-host/card/bri_easy_card.png",
"card_name": "Agung Harsono",
"card_no": "2003 **** **** 4302",
"card_product_type": "Easy Card",
"interest_rate_string": "0% per bulan",
"monthly_payment_string": "Rp1.015.000",
"progress": [
{
"status_title": "Pengajuan dalam Analisis",
"status_time": "09 Feb 2026, 09:41 WIB",
"order": 1,
"current": true
},
{
"status_title": "Pengajuan Disetujui",
"status_time": "",
"order": 2,
"current": false
}
],
"request_time": "09 February 2026, 09:41:02 WIB",
"seq_no": 1,
"sla_note": "Proses pengajuan 1x24 jam kerja. Kamu akan diberi notifikasi saat pencairan disetujui.",
"status": "PROCESSING",
"term_string": "3x Cicilan",
"ticket_no": "TKT001"
}
],
"scheme": [
{
"title": "3x Cicilan",
"description": "0%"
},
{
"title": "6 Bulan",
"description": "0,5%"
},
],
"slider_texts": [
{
"title": "Pinjaman Fleksibel",
"description": "Pinjaman dana minimal 1 juta hingga 75 juta atau 50% dari sisa limit kartu kredit.",
"image_path": "http://asset-host/example.png"
},
{
"title": "Pinjaman Fleksibel",
"description": "Pinjaman dana minimal 1 juta hingga 75 juta atau 50% dari sisa limit kartu kredit.",
"image_path": "http://asset-host/example.png"
},
{
"title": "Pinjaman Fleksibel",
"description": "Pinjaman dana minimal 1 juta hingga 75 juta atau 50% dari sisa limit kartu kredit.",
"image_path": "http://asset-host/example.png"
}
]
}
}
Error Codes
| Code | When |
|---|---|
00 |
success – also returned when user has no CC (CC list empty from Eredar). |
TV |
Vikendi timeout (Eredar call) |
NA |
Not authorized (Eredar call) |
TB |
Static param DB read failure |
TBR |
Brigate timeout on GetLoaStatusFromBrigate |
2. POST /api/v1/cc-loan-on-app/form
Erangel route: POST /v3-cc-loan-on-app-form
Request Body
{
"card_token": "f104d035a92652987b8c82dd91cb13aa1f403d686dcbc3844d261cc8416de9b0"
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"account_list": [
{
"account": "123451234512345",
"account_string": "1234 5123 4512 345",
"alias": "Alias-supedi",
"currency": "IDR",
"default": 1,
"image_name": "karti.png",
"image_path": "http://.../karti.png",
"name": "supedi",
"product_type": "karti"
}
],
"balance_string": "Rp20.000.000,00",
"cc_image_slim": "http://.../card/jcb_platinum_slim.png",
"loan_multiplier": 100000,
"loan_multiplier_string": "Rp100.000",
"maximum_loan": 20000000,
"maximum_loan_string": "Rp20.000.000",
"minimum_loan": 1000000,
"minimum_loan_string": "Rp1.000.000",
"product_type": "Jcb Platinum",
"simulation": [
{
"admin_fee": 200000,
"admin_fee_string": "Rp200.000",
"interest_rate": 0.5,
"interest_rate_amount": 50000,
"interest_rate_amount_string": "Rp50.000",
"interest_rate_string": "0.5%",
"monthly_payment": 1700000,
"monthly_payment_string": "Rp1.700.000",
"simulation_code": "...",
"term": 3,
"term_code": "123",
"term_string": "3x Cicilan"
}
],
"tnc_text": "text"
}
}
Error Codes
| Code | When |
|---|---|
00 |
Success |
SM |
User is in safety mode (form.go:37) |
CNF |
Credit card not found (form.go:100) |
TV |
Vikendi timeout (Eredar, parameter, account list) |
TB |
Database timeout (static param) |
TBR |
Brigate timeout (GetProgramTermFromBrigate) |
EH |
Error handling (account alias/validation fan-in errors) |
3. POST /api/v1/cc-loan-on-app/term
Erangel route: POST /v3-cc-loan-on-app-term
Response Body
{
"card_token": "f104d035a92652987b8c82dd91cb13aa1f403d686dcbc3844d261cc8416de9b0",
"amount": 5000
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"simulation": [
{
"admin_fee": 200000,
"admin_fee_string": "Rp200.000",
"interest_rate": 0.5,
"interest_rate_amount": 50000,
"interest_rate_amount_string": "Rp50.000",
"interest_rate_string": "0.5%",
"monthly_payment": 1700000,
"monthly_payment_string": "Rp1.700.000",
"simulation_code": "...",
"term": 3,
"term_code": "123",
"term_string": "3x Cicilan"
}
]
}
}
Error Codes
| Code | When |
|---|---|
00 |
Success |
TBR |
Brigate timeout (GetLoaSimulationtFromBrigate) |
4. POST /api/v1/cc-loan-on-app/confirm
Erangel route: POST /v3-cc-loan-on-app-confirm
Request Body
{
"card_token": "f104d035a92652987b8c82dd91cb13aa1f403d686dcbc3844d261cc8416de9b0",
"amount": 5000000,
"simulation_code": "...",
"account_no": "123451234512345",
"account_name": "BRItama Bisnis",
"term": 3,
"interest_rate": 0.5,
"monthly_payment": 1700000,
"admin_fee": 50000
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"account_name": "BRItama Bisnis",
"account_no": "123451234512345",
"admin_fee": 50000,
"admin_fee_string": "Rp50.000",
"amount_string": "Rp5.000.000",
"interest_rate": 0.5,
"interest_rate_amount": 50000,
"interest_rate_amount_string": "Rp50.000",
"interest_rate_string": "0,5%",
"monthly_payment": 1700000,
"monthly_payment_string": "Rp1.700.000",
"reference_number": "123456789154",
"term": 3,
"term_string": "3x Cicilan"
}
}
Error Codes
| Code | When |
|---|---|
00 |
Success — loan context saved to Redis |
NA |
account_no not in user's financial accounts |
TB |
Database/Redis timeout (failed to save loan context) |
EH |
Error handling (validation fan-in errors, e.g. invalid simulation_code for the chosen card_token) |
5. POST /api/v1/cc-loan-on-app/send-otp
Erangel route: POST /v3-cc-loan-on-app-send-otp
Request Body
{
"otp_type": "WA",
"reference_number": "123456789154"
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"cellphone_number": "0812****1234",
"duration_sec": 300,
"server_id": "abc123"
}
}
Error Codes
| Code | When |
|---|---|
00 |
Success |
TV |
Vikendi timeout (fetching user phone number) |
TC |
Cipher/OTP timeout |
TR |
Redis timeout (cipher) |
TK |
Kafka timeout — OTP SMS/WA delivery failed |
EX |
reference_number not found or expired in Redis (no loan context from /confirm) |
6. POST /api/v1/cc-loan-on-app/submit-otp
Erangel route: POST /v3-cc-loan-on-app-submit-otp
Request Body
{
"server_id": "abc123",
"otp": "123456",
"otp_type": "WA",
"reference_number": "123456789154"
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"reference_number": "987654321098"
}
}
Error Codes
| Code | When |
|---|---|
00 |
OTP valid |
NV |
Invalid OTP |
TMT |
Too many wrong-OTP attempts |
EX |
OTP not exist or expired, or reference_number not found in Redis |
TC |
Cipher/OTP validation timeout |
TR |
Redis timeout (cipher) |
7. POST /api/v1/cc-loan-on-app/submit
Erangel route: POST /v3-cc-loan-on-app-submit
Request Body
{
"pin": "123456",
"reference_number": "987654321098"
}
Response Body
{
"code": "00",
"description": "success",
"data": {
"account_image_name": "britama_bisnis",
"account_image_path": "http://asset-host/account/britama_bisnis.png",
"account_name": "BRItama Bisnis",
"account_no": "029012345678901",
"account_string": "0290 **** **** 112",
"admin_fee_string": "Rp200.000",
"amount_string": "Rp3.200.000",
"card_image_name": "bri_easy_card",
"card_image_path": "http://asset-host/card/bri_easy_card.png",
"card_name": "Agung Harsono",
"card_no": "2003 **** **** 4302",
"card_product_type": "Easy Card",
"interest_rate_string": "0% per bulan",
"monthly_payment_string": "Rp1.015.000",
"progress": [
{
"status_title": "Pengajuan dalam Analisis",
"status_time": "09 Feb 2026, 09:41 WIB",
"order": 1,
"current": true
},
{
"status_title": "Pengajuan Disetujui",
"status_time": "",
"order": 2,
"current": false
}
],
"request_time": "09 February 2026, 09:41:02 WIB",
"seq_no": 1,
"sla_note": "Proses pengajuan 1x24 jam kerja. Kamu akan diberi notifikasi saat pencairan disetujui.",
"status": "PROCESSING",
"term_string": "3x Cicilan",
"ticket_no": "TKT001"
}
}
Error Codes
| Code | When |
|---|---|
00 |
Success |
NA |
account_no not in user's financial accounts (submit.go:44) |
TBR |
Brigate LoaSubmitToBrigate failed |
TB |
DB insert failed (InsertLoanOnAppToDB) or GetLoaStatusFromBrigate DB error |
Description