# Rekam EA

## Introduction

* Purpose: API ini digunakan untuk rekam EA
* Overview: Proses rekam EA mensyaratkan 2 object data dalam bentuk JSON yaitu Header dan Detail

## Path API

<mark style="color:green;">`POST`</mark> `{API_URL}/portal/ck4/rekam-ea`

## Authorization

<table><thead><tr><th width="181">Name</th><th width="126">Type </th><th>Description</th></tr></thead><tbody><tr><td>Authorization</td><td>String</td><td>Bearer Token yang didapatkan dari hasil otorisasi</td></tr></tbody></table>

## Request Structure

Top-Level Object: Struktur data Dalam Bentuk Top Level JSON Schema

```
{
  "header": { ... },
  "details": [ ... ]
}
```

### Header Section

<table><thead><tr><th width="196">Parameter Name</th><th width="132">Type</th><th>Description</th><th>Example Value</th></tr></thead><tbody><tr><td>idNppbkc</td><td>String</td><td>ID unik NPPBKC</td><td>fe3c9197-df48-05e6-e054-0021f60abd54</td></tr><tr><td>jenisLaporan</td><td>String</td><td>Jenis laporan yang dibuat</td><td>HARIAN</td></tr><tr><td>jumlahProduksi</td><td>Integer</td><td>Jumlah total produksi</td><td>100</td></tr><tr><td>namaKota</td><td>String</td><td>Nama kota tempat perusahaan berada</td><td>MALANG</td></tr><tr><td>namaPengusaha</td><td>String</td><td>Nama pengusaha yang terkait</td><td>IR. SANDOJO RUSTANTO</td></tr><tr><td>namaPerusahaan</td><td>String</td><td>Nama perusahaan yang terkait</td><td>MOLINDO RAYA INDUSTRIAL, PT.</td></tr><tr><td>nomorPemberitahuan</td><td>String</td><td>Nomor pemberitahuan terkait</td><td>87767776</td></tr><tr><td>nppbkc</td><td>String</td><td>Nomor Pokok Pengusaha Barang Kena Cukai (NPPBKC)</td><td>0011335387641000070611</td></tr><tr><td>npwp</td><td>String</td><td>Nomor Pokok Wajib Pajak (NPWP)</td><td>11335387641000</td></tr><tr><td>tanggalJamProduksiAwal</td><td>DateTime</td><td>Tanggal dan waktu dimulainya produksi</td><td>2024-08-21 13:22:14</td></tr><tr><td>tanggalJamProduksiAkhir</td><td>DateTime</td><td>Tanggal dan waktu berakhirnya produksi</td><td>2024-08-22 13:22:18</td></tr><tr><td>tanggalPemberitahuan</td><td>Date</td><td>Tanggal pemberitahuan terkait</td><td>2024-08-21</td></tr><tr><td>alamatPerusahaan</td><td>String</td><td>Alamat lengkap perusahaan</td><td>JL. PANDANARAN NO. 6</td></tr><tr><td>idSpl</td><td>String</td><td>ID unik SPL</td><td>2</td></tr></tbody></table>

### Detail Section

<table><thead><tr><th width="192">Parameter Name</th><th width="141">Type</th><th>Description</th><th>Example Value</th></tr></thead><tbody><tr><td>jumlahProduksi</td><td>String</td><td>Jumlah produksi</td><td>100</td></tr><tr><td>keterangan</td><td>String</td><td>Keterangan</td><td>test</td></tr><tr><td>nomorProduksi</td><td>String</td><td>Nomor produksi</td><td>785785</td></tr><tr><td>nomorTangki</td><td>String</td><td>Nomor tangki yang digunakan dalam produksi</td><td>90</td></tr><tr><td>tanggalProduksi</td><td>DateTime</td><td>Tanggal produksi</td><td>2024-08-22 13:22:28</td></tr><tr><td>kadar</td><td>Integer</td><td>Kadar barang yang diproduksi</td><td>96</td></tr><tr><td>namaMerk</td><td>String</td><td>Nama merk barang yang diproduksi</td><td>Ea Murni Kadar 96%</td></tr><tr><td>tarifSpesifik</td><td>Integer</td><td>Tarif spesifik yang dikenakan</td><td>20000</td></tr><tr><td>idJenisProduksiBkc</td><td>Integer</td><td>ID jenis produksi barang kena cukai</td><td>18</td></tr><tr><td>idMerk</td><td>String</td><td>ID unik merk barang yang diproduksi</td><td>630f97d4-d15e-4636-833c-9305755429c4</td></tr><tr><td>idHandleDelete</td><td>String</td><td>ID unik untuk menghapus data terkait</td><td>45f40026-06eb-4f37-bbc0-ee7989d9a16f</td></tr></tbody></table>

## JSONSchema Rekam EA

```json
{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "title": "Schema Rekam EA",
  "description": "JSON Schema untuk Rekam EA.",
  "properties": {
    "idNppbkc": {
      "type": "string",
      "format": "uuid",
      "description": "ID NPPBKC."
    },
    "jenisLaporan": {
      "type": "string",
      "description": "Jenis laporan.",
      "enum": ["HARIAN", "MINGGUAN", "BULANAN"]
    },
    "jumlahProduksi": {
      "type": "integer",
      "description": "Jumlah produksi."
    },
    "namaKota": {
      "type": "string",
      "description": "Nama kota."
    },
    "namaPengusaha": {
      "type": "string",
      "description": "Nama pengusaha."
    },
    "namaPerusahaan": {
      "type": "string",
      "description": "Nama perusahaan."
    },
    "nomorPemberitahuan": {
      "type": "string",
      "description": "Nomor pemberitahuan."
    },
    "nppbkc": {
      "type": "string",
      "description": "NPPBKC, harus terdiri dari 22 digit."
    },
    "npwp": {
      "type": "string",
      "description": "NPWP, harus terdiri dari 15 digit."
    },
    "tanggalJamProduksiAwal": {
      "type": "string",
      "format": "date-time",
      "description": "Tanggal dan jam produksi awal."
    },
    "tanggalJamProduksiAkhir": {
      "type": "string",
      "format": "date-time",
      "description": "Tanggal dan jam produksi akhir."
    },
    "tanggalPemberitahuan": {
      "type": "string",
      "format": "date",
      "description": "Tanggal pemberitahuan."
    },
    "alamatPerusahaan": {
      "type": "string",
      "description": "Alamat perusahaan."
    },
    "details": {
      "type": "array",
      "description": "Data detail produksi.",
      "items": {
        "type": "object",
        "properties": {
          "jumlahProduksi": {
            "type": "string",
            "description": "Jumlah produksi."
          },
          "keterangan": {
            "type": "string",
            "description": "Keterangan."
          },
          "nomorProduksi": {
            "type": "string",
            "description": "Nomor produksi."
          },
          "nomorTangki": {
            "type": "string",
            "description": "Nomor tangki."
          },
          "tanggalProduksi": {
            "type": "string",
            "format": "date-time",
            "description": "Tanggal produksi."
          },
          "kadar": {
            "type": "integer",
            "description": "Kadar."
          },
          "namaMerk": {
            "type": "string",
            "description": "Nama merk."
          },
          "tarifSpesifik": {
            "type": "number",
            "description": "Tarif spesifik."
          },
          "idJenisProduksiBkc": {
            "type": "integer",
            "description": "ID jenis produksi BKC."
          },
          "idMerk": {
            "type": "string",
            "format": "uuid",
            "description": "ID merk."
          },
          "idHandleDelete": {
            "type": "string",
            "format": "uuid",
            "description": "ID handle delete."
          }
        },
        "required": [
          "jumlahProduksi",
          "keterangan",
          "nomorProduksi",
          "nomorTangki",
          "tanggalProduksi",
          "kadar",
          "namaMerk",
          "tarifSpesifik",
          "idJenisProduksiBkc",
          "idMerk",
          "idHandleDelete"
        ]
      }
    },
    "idSpl": {
      "type": "string",
      "description": "ID SPL."
    }
  },
  "required": [
    "idNppbkc",
    "jenisLaporan",
    "jumlahProduksi",
    "namaKota",
    "namaPengusaha",
    "namaPerusahaan",
    "nomorPemberitahuan",
    "nppbkc",
    "npwp",
    "tanggalJamProduksiAwal",
    "tanggalJamProduksiAkhir",
    "tanggalPemberitahuan",
    "alamatPerusahaan",
    "details",
    "idSpl"
  ]
}
```

## JSON Example : Rekam EA

```json
{
    "idNppbkc": "fe3c9197-df48-05e6-e054-0021f60abd54",
    "jenisLaporan": "HARIAN",
    "jumlahProduksi": 100,
    "namaKota": "MALANG",
    "namaPengusaha": "IR. SANDOJO RUSTANTO",
    "namaPerusahaan": "MOLINDO RAYA INDUSTRIAL, PT.",
    "nomorPemberitahuan": "87767776",
    "nppbkc": "0011335387641000070611",
    "npwp": "0011335387641000",
    "tanggalJamProduksiAwal": "2024-08-21T13:22:14",
    "tanggalJamProduksiAkhir": "2024-08-22T13:22:18",
    "tanggalPemberitahuan": "2024-08-21",
    "alamatPerusahaan": "JL. PANDANARAN NO. 6",
    "details": [
        {
            "jumlahProduksi": "100",
            "keterangan": "test",
            "nomorProduksi": "785785",
            "nomorTangki": "90",
            "tanggalProduksi": "2024-08-22T13:22:28",
            "kadar": 96,
            "namaMerk": "Ea Murni Kadar 96%",
            "tarifSpesifik": 20000,
            "idJenisProduksiBkc": 18,
            "idMerk": "630f97d4-d15e-4636-833c-9305755429c4",
            "idHandleDelete": "45f40026-06eb-4f37-bbc0-ee7989d9a16f"
        }
    ],
    "idSpl": "2"
}
```

## Validation Rules

| Field                   | Rules                                     |
| ----------------------- | ----------------------------------------- |
| idNppbkc                | Harus merupakan UUID yang valid.          |
| jumlahProduksi          | Harus berupa angka positif                |
| tanggalJamProduksiAwal  | Harus dalam format DDD MMM DD YYYY HH:M:S |
| tanggalJamProduksiAkhir | Harus dalam format DDD MMM DD YYYY HH:M:S |
| tanggalPemberitahuan    | Harus dalam format YYYY-MM-DD             |
| jumlahProduksi          | Harus berupa angka positif                |
| tanggalProduksi         | Harus dalam format DDD MMM DD YYYY HH:M:S |
| kadar                   | Harus berupa angka positif                |
| tarifSpesifik           | Harus berupa angka positif                |
| idMerk                  | Harus merupakan UUID yang valid.          |
| idHandleDelete          | Harus merupakan UUID yang valid.          |

## Response

{% tabs %}
{% tab title="200" %}

```json
{
    "message": "Success",
    "status": true,
    "data": null
}
```

{% endtab %}
{% endtabs %}

## Potential Error

<table><thead><tr><th width="189">Status Code</th><th width="213">Description</th><th>Reason</th></tr></thead><tbody><tr><td>400 Bad Request</td><td>Permintaan tidak valid</td><td>Parameter tidak lengkap atau format tidak sesuai</td></tr><tr><td>401 Unauthorized</td><td>Otentikasi gagal</td><td>Bearer Token tidak valid atau tidak disertakan dalam header permintaan</td></tr><tr><td>404 Not Found</td><td>Dokumen tidak ditemukan</td><td>Data tidak ditemukan berdasarkan parameter yang diberikan</td></tr></tbody></table>
