Files
api-wipay/EXTERNAL_API_PAYLOAD_VERIFICATION.md

7.3 KiB

Verifikasi Payload External API Calls

Dokumen ini memverifikasi semua external API calls dan memastikan payload sesuai dengan API lama.

1. TIMO API (timo.tirtaintan.co.id)

GET /enquiry/{no_sl}

  • URL: https://timo.tirtaintan.co.id/enquiry/{no_sl}
  • Method: GET
  • Auth: Tidak ada
  • Payload: Tidak ada (GET request)
  • Status: Sudah sesuai
  • Lokasi: TagihanController::tagihan(), PembayaranController::requestPembayaran(), FastController::checkBill()

GET /enquiry-dil/{no_sl}

  • URL: https://timo.tirtaintan.co.id/enquiry-dil/{no_sl}
  • Method: GET
  • Auth: Tidak ada
  • Payload: Tidak ada (GET request)
  • Status: Sudah sesuai
  • Lokasi: SLController::cekSL(), SLController::confirmSL()

GET /enquiry-his/{sl}/{periode}

  • URL: https://timo.tirtaintan.co.id/enquiry-his/{sl}/{periode}
  • Method: GET
  • Auth: Tidak ada
  • Payload: Tidak ada (GET request)
  • Status: Sudah sesuai
  • Lokasi: TagihanController::history()

POST /payment/{token}

  • URL: https://timo.tirtaintan.co.id/payment/{token}
  • Method: POST
  • Auth: Tidak ada
  • Payload:
    {
      "token": "token_value",
      "data": [
        {
          "rek_nomor": "...",
          "rek_total": 0,
          "serial": "#TM{timestamp}",
          "byr_tgl": "YmdHis",
          "loket": "TIMO"
        }
      ]
    }
    
  • Headers:
    • Content-Type: application/json
    • Accept-Encoding: gzip, deflate
    • Cache-Control: max-age=0
    • Connection: keep-alive
    • Accept-Language: en-US,en;q=0.8,id;q=0.6
  • Timeout: 15 detik (connection & request)
  • Status: Sudah sesuai
  • Lokasi: SiteController::approve()

POST /push-registrasi

  • URL: https://timo.tirtaintan.co.id/push-registrasi
  • Method: POST
  • Auth: Tidak ada
  • Payload:
    {
      "data": {
        "reg_id": "0",
        "reg_unit": "00",
        "reg_name": "...",
        "reg_address": "...",
        "reg_phone": "...",
        "reg_email": "...",
        "reg_identity": "...",
        "reg_tgl": "Y-m-d H:i:s"
      }
    }
    
  • Headers:
    • Content-Type: application/json
    • Accept-Encoding: gzip, deflate
    • Cache-Control: max-age=0
    • Connection: keep-alive
    • Accept-Language: en-US,en;q=0.8,id;q=0.6
  • Timeout: 15 detik (connection & request)
  • Status: Sudah sesuai
  • Lokasi: UploadController::uploadPasangBaru()

POST /pengaduan/{no_sl}

  • URL: https://timo.tirtaintan.co.id/pengaduan/{no_sl}
  • Method: POST
  • Auth: Tidak ada
  • Payload:
    {
      "id": id_gangguan,
      "nama": "...",
      "alamat": "...",
      "telepon": "628...",
      "jenis": "1-7",
      "judul": "Laporan Gangguan - ...",
      "uraian": "..."
    }
    
  • Headers:
    • Content-Type: application/json
    • Accept: application/json
    • User-Agent: TIMO-External-API/1.0
  • Timeout: 60 detik (request), 30 detik (connection)
  • Status: Sudah sesuai
  • Lokasi: UploadController::sendGangguanToExternalAPI()

2. Rasamala API (rasamala.tirtaintan.co.id)

POST /timo/upload-catat-meter/{no_sl}

  • URL: https://rasamala.tirtaintan.co.id/timo/upload-catat-meter/{no_sl}
  • Method: POST
  • Auth: Tidak ada
  • Payload:
    {
      "token": "...",
      "no_sl": "...",
      "nama_pelanggan": "...",
      "alamat": "...",
      "angka_meter": "...",
      "photo": "filename.jpg",
      "uploaded_at": "Y-m-d H:i:s"
    }
    
  • Headers:
    • Content-Type: application/json
    • Accept: application/json
    • User-Agent: TIMO-External-API/1.0
  • Timeout: 60 detik (request), 30 detik (connection)
  • Status: Sudah sesuai
  • Lokasi: UploadController::sendCatatMeterToExternalAPI()

POST /timo/order-cater/{no_sl}

  • URL: https://rasamala.tirtaintan.co.id/timo/order-cater/{no_sl}
  • Method: POST
  • Auth: Tidak ada
  • Payload: kar_id=timo (form-urlencoded)
  • Headers:
    • Content-Type: application/x-www-form-urlencoded
    • Accept: application/json
  • Timeout: 30 detik (request), 10 detik (connection)
  • Status: Sudah sesuai
  • Lokasi: OtherController::requestOrderBacaMandiri()

POST /timo/upload-cater/{wrute_id}

  • URL: https://rasamala.tirtaintan.co.id/timo/upload-cater/{wrute_id}
  • Method: POST
  • Auth: Tidak ada
  • Payload: wmmr_id=...&wmmr_standbaca=...&wmmr_abnormwm=...&wmmr_abnormenv=...&wmmr_note=...&lonkor=...&latkor=... (form-urlencoded)
  • Headers:
    • Content-Type: application/x-www-form-urlencoded
    • Accept: application/json
  • Timeout: 30 detik (request), 10 detik (connection)
  • Status: Sudah sesuai
  • Lokasi: UploadController::uploadBacaMandiri()

3. BRI API (partner.api.bri.co.id)

POST /oauth/client_credential/accesstoken?grant_type=client_credentials

  • URL: https://partner.api.bri.co.id/oauth/client_credential/accesstoken?grant_type=client_credentials
  • Method: POST
  • Auth: client_id dan client_secret (form-urlencoded)
  • Payload: client_id={BRI_KEY}&client_secret={BRI_SECRET}
  • Headers:
    • Content-Type: application/x-www-form-urlencoded
  • Timeout: 0 (no timeout)
  • Status: Sudah sesuai
  • Lokasi: SiteController::getBriToken()

POST /v2.0/statement

  • URL: https://partner.api.bri.co.id/v2.0/statement
  • Method: POST
  • Auth: Bearer token
  • Payload: {"accountNumber":"...", "startDate":"Y-m-d", "endDate":"Y-m-d"} (string JSON langsung)
  • Headers:
    • BRI-Timestamp: Y-m-d\TH:i:s.000\Z
    • BRI-Signature: {signature}
    • Content-Type: application/json
    • BRI-External-Id: 1234
    • Authorization: Bearer {token}
  • Timeout: 0 (no timeout)
  • Status: Sudah sesuai
  • Lokasi: SiteController::getMutasi()

4. WhatsApp API (app.whappi.biz.id)

POST /api/qr/rest/send_message

  • URL: https://app.whappi.biz.id/api/qr/rest/send_message
  • Method: POST
  • Auth: JWT Token (Bearer)
  • Payload:
    {
      "messageType": "text",
      "requestType": "POST",
      "token": "JWT_TOKEN",
      "from": "6282317383737",
      "to": "628...",
      "text": "pesan"
    }
    
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer {JWT_TOKEN}
  • Timeout: 60 detik (request), 30 detik (connection)
  • Retry: 3 kali
  • Status: Sudah sesuai
  • Lokasi: WhatsAppHelper::sendWa()

5. Telegram API (api.telegram.org)

POST /bot{token}/sendMessage

  • URL: https://api.telegram.org/bot{token}/sendMessage
  • Method: POST
  • Auth: Bot token di URL
  • Payload: chat_id=...&text=...&parse_mode=Markdown (form-urlencoded)
  • Headers: Tidak ada khusus
  • Timeout: 30 detik (request), 10 detik (connection)
  • Status: Sudah sesuai
  • Lokasi: TelegramHelper::sendTelegram()

6. OpenStreetMap Nominatim API

  • URL: https://nominatim.openstreetmap.org/search?format=json&q={address}&limit=1
  • Method: GET
  • Auth: Tidak ada
  • Headers:
    • Accept: application/json
    • User-Agent: TIMO-APP/1.0
  • Timeout: 10 detik
  • Status: Sudah sesuai
  • Lokasi: GeocodingHelper::getCoordinatesFromAddress()

Summary

Semua external API calls sudah sesuai dengan API lama:

  • Payload format sama
  • Headers sama
  • Timeout settings sama
  • Authentication method sama
  • URL endpoints sama

Tidak ada yang terlewat!