> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://open-api-docs.dice.tech/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://open-api-docs.dice.tech/_mcp/server.

# Add New GRN

POST https://heimdall.eka.io/apis/external/grn/addGrn
Content-Type: application/json

### Add GRN

This API endpoint allows you to add a Goods Receipt Note (GRN) to the Dice system.

### Request Body

| Params    | Required  | Type    | Description                               |
| --------- | --------- | ------- | ----------------------------------------- |
| invoiceId | Mandatory | Integer | The ID of the invoice (e.g., 444935).     |
| data      | Mandatory | Object  | Additional data related to the invoice.   |
| reference | Mandatory | String  | A reference related to the invoice.       |
| remarks   | Mandatory | String  | Remarks or notes about the invoice.       |
| partial   | Mandatory | Boolean | Indicates if the invoice is partial.      |
| files     | Mandatory | Array   | An array of files related to the invoice. |
| date      | Mandatory | String  | The date of the invoice (e.g., "12").     |
| items     | Mandatory | Array   | An array of items within the invoice.     |
| qtty      | Mandatory | Number  | Quantity of the item (e.g., 10.0).        |
| id        | Mandatory | Integer | ID associated with the item               |

The "invoiceId" is the ID of the invoice associated with the GRN, and "data" contains additional information such as reference, remarks, partial status, files, date, and items with quantity and ID.

### Response

* `success` (boolean): Indicates whether the GRN addition was successful. A value of `true` means the addition was successful.

#### Example Response

```json
{
    "success": true
}

```

Reference: https://open-api-docs.dice.tech/dice-standardized-ap-is-v-2-copy/grn/add-new-grn

## Servers

- `https://heimdall.eka.io` (https://heimdall.eka.io, default)
- `https://heimdall.eka.ioapis` (https://heimdall.eka.ioapis)

## Request

### Headers

- `DICE-APP-ID` (string, optional) — Company Code of client
- `X-CLIENT-ID` (string, optional) — API Client ID
- `X-CLIENT-SECRET` (string, optional) — API Client Secret

### Body (application/json)

- `invoiceId` (integer, required)
- `data` (object, required)
  - `reference` (string, required)
  - `remarks` (string, required)
  - `partial` (boolean, required)
  - `files` (list of any, required)
  - `date` (string, required)
  - `items` (list of object, required)
    - `qtty` (integer, required)
    - `id` (integer, required)

## Response

### 200

OK

- `success` (boolean, required)

## Examples

**Request**

```json
{
  "invoiceId": 444935,
  "data": {
    "reference": "test",
    "remarks": "test",
    "partial": true,
    "files": [],
    "date": "12",
    "items": [
      {
        "qtty": 10,
        "id": 132856
      }
    ]
  }
}
```

**Response**

```json
{
  "success": true
}
```

**SDK Code**

```python GRN_Add New GRN_example
import requests

url = "https://heimdall.eka.io/apis/external/grn/addGrn"

payload = {
    "invoiceId": 444935,
    "data": {
        "reference": "test",
        "remarks": "test",
        "partial": True,
        "files": [],
        "date": "12",
        "items": [
            {
                "qtty": 10,
                "id": 132856
            }
        ]
    }
}
headers = {
    "DICE-APP-ID": "{{Company Code}}",
    "X-CLIENT-ID": "{{API Client ID}}",
    "X-CLIENT-SECRET": "{{API Client Secret}}",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript GRN_Add New GRN_example
const url = 'https://heimdall.eka.io/apis/external/grn/addGrn';
const options = {
  method: 'POST',
  headers: {
    'DICE-APP-ID': '{{Company Code}}',
    'X-CLIENT-ID': '{{API Client ID}}',
    'X-CLIENT-SECRET': '{{API Client Secret}}',
    'Content-Type': 'application/json'
  },
  body: '{"invoiceId":444935,"data":{"reference":"test","remarks":"test","partial":true,"files":[],"date":"12","items":[{"qtty":10,"id":132856}]}}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go GRN_Add New GRN_example
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://heimdall.eka.io/apis/external/grn/addGrn"

	payload := strings.NewReader("{\n  \"invoiceId\": 444935,\n  \"data\": {\n    \"reference\": \"test\",\n    \"remarks\": \"test\",\n    \"partial\": true,\n    \"files\": [],\n    \"date\": \"12\",\n    \"items\": [\n      {\n        \"qtty\": 10,\n        \"id\": 132856\n      }\n    ]\n  }\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("DICE-APP-ID", "{{Company Code}}")
	req.Header.Add("X-CLIENT-ID", "{{API Client ID}}")
	req.Header.Add("X-CLIENT-SECRET", "{{API Client Secret}}")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby GRN_Add New GRN_example
require 'uri'
require 'net/http'

url = URI("https://heimdall.eka.io/apis/external/grn/addGrn")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["DICE-APP-ID"] = '{{Company Code}}'
request["X-CLIENT-ID"] = '{{API Client ID}}'
request["X-CLIENT-SECRET"] = '{{API Client Secret}}'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"invoiceId\": 444935,\n  \"data\": {\n    \"reference\": \"test\",\n    \"remarks\": \"test\",\n    \"partial\": true,\n    \"files\": [],\n    \"date\": \"12\",\n    \"items\": [\n      {\n        \"qtty\": 10,\n        \"id\": 132856\n      }\n    ]\n  }\n}"

response = http.request(request)
puts response.read_body
```

```java GRN_Add New GRN_example
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://heimdall.eka.io/apis/external/grn/addGrn")
  .header("DICE-APP-ID", "{{Company Code}}")
  .header("X-CLIENT-ID", "{{API Client ID}}")
  .header("X-CLIENT-SECRET", "{{API Client Secret}}")
  .header("Content-Type", "application/json")
  .body("{\n  \"invoiceId\": 444935,\n  \"data\": {\n    \"reference\": \"test\",\n    \"remarks\": \"test\",\n    \"partial\": true,\n    \"files\": [],\n    \"date\": \"12\",\n    \"items\": [\n      {\n        \"qtty\": 10,\n        \"id\": 132856\n      }\n    ]\n  }\n}")
  .asString();
```

```php GRN_Add New GRN_example
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://heimdall.eka.io/apis/external/grn/addGrn', [
  'body' => '{
  "invoiceId": 444935,
  "data": {
    "reference": "test",
    "remarks": "test",
    "partial": true,
    "files": [],
    "date": "12",
    "items": [
      {
        "qtty": 10,
        "id": 132856
      }
    ]
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'DICE-APP-ID' => '{{Company Code}}',
    'X-CLIENT-ID' => '{{API Client ID}}',
    'X-CLIENT-SECRET' => '{{API Client Secret}}',
  ],
]);

echo $response->getBody();
```

```csharp GRN_Add New GRN_example
using RestSharp;

var client = new RestClient("https://heimdall.eka.io/apis/external/grn/addGrn");
var request = new RestRequest(Method.POST);
request.AddHeader("DICE-APP-ID", "{{Company Code}}");
request.AddHeader("X-CLIENT-ID", "{{API Client ID}}");
request.AddHeader("X-CLIENT-SECRET", "{{API Client Secret}}");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"invoiceId\": 444935,\n  \"data\": {\n    \"reference\": \"test\",\n    \"remarks\": \"test\",\n    \"partial\": true,\n    \"files\": [],\n    \"date\": \"12\",\n    \"items\": [\n      {\n        \"qtty\": 10,\n        \"id\": 132856\n      }\n    ]\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift GRN_Add New GRN_example
import Foundation

let headers = [
  "DICE-APP-ID": "{{Company Code}}",
  "X-CLIENT-ID": "{{API Client ID}}",
  "X-CLIENT-SECRET": "{{API Client Secret}}",
  "Content-Type": "application/json"
]
let parameters = [
  "invoiceId": 444935,
  "data": [
    "reference": "test",
    "remarks": "test",
    "partial": true,
    "files": [],
    "date": "12",
    "items": [
      [
        "qtty": 10,
        "id": 132856
      ]
    ]
  ]
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://heimdall.eka.io/apis/external/grn/addGrn")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```