API mengirim data mapping kegiatan ke SIPD

Resource URL

POST https://sipd.go.id/run/serv/push_mapping?kodepemda={kodepemda}

Headers

NameValue
authentication Bearer [key]
content_type application/json

Parameters

ParameterDescriptionOptionalDefault
kodepemda Diisi dengan kode pemda

Request Parameter

Field Type Description Example
kodepemda String 4 digit kode pemda sesuai Permendagri 137/2017 9100
data Object[] data mapping (Array of Object)
  kodebidang String kode bidang program 1.01
  kodeprogram String kode program 1.01-001
  kodekegiatan String kode kegiatan 1.01-001.0001
  uraikegiatan String uraian kegiatan Penyediaan jasa surat menyurat
  mapping Array[] kode sub kegiatan pmdn90 dari basis ["X.XX.01.1.03.01"]

Response Format

JSON

Example

POST https://sipd.go.id/run/serv/push_mapping?kodepemda=9100

Header

  authentication: Bearer [key]
content_type: application/json  

Request

  {
    "kodepemda": "9100",
    "data": [
        {
            "kodebidang": "1.01",
            "kodeprogram": "1.01-001",
            "kodekegiatan": "1.01-001.0001",
            "uraikegiatan": "Penyediaan jasa surat menyurat",
            "mapping": [
                "X.XX.01.1.03.01"
            ]
        },
        {
            "kodebidang": "1.01",
            "kodeprogram": "1.01-001",
            "kodekegiatan": "1.01-001.0002",
            "uraikegiatan": "Penyediaan jasa komunikasi, sumber daya air dan listrik",
            "mapping": null
        }
    ]
}  

Response

  {
    "code": 200,
    "msg": "Sukses menyimpan 916 byte tunggu proses ekstraksi",
    "log": [
        "9100.1.01.1.01-001,1.01-001.0001 OK",
        "9100.1.01.1.01-001,1.01-001.0002 OK",
        "COMMIT TRANS",
        "",
        "Exe time: 0.023054122924805 detik"
    ]
}  

Error Response

  {
    "code": 200,
    "msg": "Sukses menyimpan 916 byte tunggu proses ekstraksi",
    "log": [
        "9100.1.01.1.01-001,1.01-001.0001 OK",
        "ERROR: 9100.1.01.1.01-001,1.01-001.0002x Kegiatan Pemda yang ada di SIPD tidak ditemukan",
        "ERROR: 9100.1.01.1.01-001,1.01-001.0002 Subkegiatan [\"X.XX.01.1.03.02x\"] di PMDN90 tidak ditemukan",
        "ROLLBACK TRANS",
        "",
        "Exe time: 0.023054122924805 detik"
    ]
}  

Code Usage Examples

PHP

  function postBangda($postdata,$bearer,$tahun,$kodepemda){
    $opts = array(
      'ssl' => array(
        'verify_peer' => false,
      ),
      'http'=>array(
        'ignore_errors' => true,
        'method'=>  "POST",
        'header'=>  "Accept: application/json\r\n" .
              "Authorization: Bearer {$bearer}\r\n" .
              "Content-Type: application/json\r\n",
        'content' => $postdata
      )
    );


    $context = stream_context_create($opts);
    $result = file_get_contents('/run/serv/push_mapping?kodepemda={$kodepemda}', false, $context);
    $result = json_encode($http_response_header,JSON_FORCE_OBJECT|JSON_PRETTY_PRINT)."\n".$result;
    return $result;
  }  

PHP with cURL

  $curl = curl_init();
  curl_setopt_array($curl, array(
   CURLOPT_URL => "/run/serv/push_mapping?kodepemda=".$kodepemda,
   CURLOPT_RETURNTRANSFER => true,
   CURLOPT_POST => true,
   CURLOPT_SSL_VERIFYHOST => false,
   CURLOPT_SSL_VERIFYPEER => false,
   CURLOPT_MAXREDIRS => 10,
   CURLOPT_TIMEOUT => 30,
   CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
   CURLOPT_POSTFIELDS => $postdata,
   CURLOPT_HTTPHEADER => array(
      "Content-Type: application/json",
      "Authorization: Bearer ".$APIKEY,
    )
  ));
  $response = curl_exec($curl);
  curl_close($curl);  

Java

  String TAHUN = "2019";
  String KODEPEMDA = "9100";
  String APIKEY = "diisiapikey";

  // Create a trust manager that does not validate certificate chains
  TrustManager[] trustAllCerts = new TrustManager[]{
      new X509TrustManager() {
          public java.security.cert.X509Certificate[] getAcceptedIssuers() {
              return null;
          }
          public void checkClientTrusted(
              java.security.cert.X509Certificate[] certs, String authType) {
          }
          public void checkServerTrusted(
              java.security.cert.X509Certificate[] certs, String authType) {
          }
      }
  };

  // Install the all-trusting trust manager
  try {
      SSLContext sc = SSLContext.getInstance("SSL");
      sc.init(null, trustAllCerts, new java.security.SecureRandom());
      HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
  } catch (Exception e) {
  }

  URL bangdaurl = new URL("/run/serv/push_mapping?kodepemda="+kodepemda);
  HttpsURLConnection con = (HttpsURLConnection)bangdaurl.openConnection();
  con.setRequestMethod("POST");
  con.setRequestProperty("Content-Type","application/json");
  con.setRequestProperty("Accept","application/json");
  con.setRequestProperty("Authorization","Bearer "+APIKEY);
  con.setDoOutput(true);
  con.setDoInput(true);
  DataOutputStream output = new DataOutputStream(con.getOutputStream());
  output.writeBytes(JSONDATA);
  output.close();

  DataInputStream input = new DataInputStream( con.getInputStream() );
  for( int c = input.read(); c != -1; c = input.read() )
  System.out.print( (char)c );
  input.close();
  System.out.println("Resp Code:"+con .getResponseCode());
  System.out.println("Resp Message:"+ con .getResponseMessage());  

Python

  import requests
  tahun = "2019"
  kodepemda = "9100"
  APIKEY = "APIKEY"
  postdata = "isijsonsesuaiformat"

  headers = {
      "authorization": "Bearer: "+APIKEY,
      "accept": "application/json",
      "content-type": "application/json"
  }
  requests.packages.urllib3.disable_warnings()
  r = requests.post("'/run/serv/push_mapping?kodepemda="+kodepemda, data=postdata, headers=headers, verify=False)
  print(r.text)  

C#

  private static void postBangda(string tahun,string kodepemda,string json){

  HttpClientHandler handler = new HttpClientHandler();
  handler.ClientCertificateOptions = ClientCertificateOption.Manual;
  handler.ServerCertificateCustomValidationCallback = (httpRequestMessage, cert, cetChain, policyErrors) => { return true; };

  HttpClient client = new HttpClient(handler);
  client.DefaultRequestHeaders.Accept.Clear();
  client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
  client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", "APIKEY");
  StringContent postdata = new StringContent(json, Encoding.UTF8, "application/json");
  var res = client.PostAsync("/run/serv/push_mapping?kodepemda="+kodepemda, postdata);

    try
    {
        res.Result.EnsureSuccessStatusCode();

        Console.WriteLine("Response " + res.Result.Content.ReadAsStringAsync().Result);

    }
    catch (Exception ex)
    {
        Console.WriteLine("Error " + res + " Error " + ex.ToString());
    }
  }  

Delphi/Pascal

  uses IdHTTP, IdSSLOpenSSL;

  function postHTTP(tahun,kodepemda,apikey:string;postdata:TStringStream):string;
  var IdHTTP1 : TIdHTTP;
      IdSSLIOHandlerSocket1 : TIdSSLIOHandlerSocket;
      Url : string;
  begin
    //require libeay32.dll dan libssl32.dll

    Url := '/run/serv/push_mapping?kodepemda='+kodepemda;
    IdSSLIOHandlerSocket1 := TIdSSLIOHandlerSocket.Create(nil);
    IdHTTP1 := TIdHTTP.Create(nil);
    try
      with IdSSLIOHandlerSocket1 do
      begin
        SSLOptions.Method := sslvTLSv1;
        SSLOptions.Mode := sslmClient;
        SSLOptions.VerifyMode := [];
        SSLOptions.VerifyDepth := 0;
      end;
      with IdHTTP1 do
      begin
        IOHandler := IdSSLIOHandlerSocket1;
        HandleRedirects := True;
        AllowCookies := True;
        Request.ContentType := 'application/json';
        Request.Accept := 'application/json';
        Request.CustomHeaders.Values['Authorization'] := 'Bearer '+apikey;
        HTTPOptions := [hoForceEncodeParams];
      end;
      try
        IdHTTP1.Head(Url);
      except
        //mancing IOHandler dan OpenSSL e baku tukar key
      end;
      try
        Result := IdHTTP1.Post(Url,postdata);
      except
        raise;
      end;
      IdSSLIOHandlerSocket1.Close;
    finally
      IdHTTP1.Free;
      IdSSLIOHandlerSocket1.Free;
    end;
  end;