# Insertar elemento

Para insertar un elemento en una Master Db en Persat, se debe enviar un POST como el que se especifica a continuación.

<mark style="color:green;">`POST`</mark> `https://api.persat.com.ar/v1/masterdbvalues`

#### Headers

| Name                                            | Type   | Description      |
| ----------------------------------------------- | ------ | ---------------- |
| Authorization<mark style="color:red;">\*</mark> | String | Bearer API\_KEY  |
| Content-Type<mark style="color:red;">\*</mark>  | String | application/json |

#### Request Body

| Name                                      | Type   | Description                                          |
| ----------------------------------------- | ------ | ---------------------------------------------------- |
| mdb\_id<mark style="color:red;">\*</mark> | Number | Identificador de la Master Db. Por ejemplo Productos |
| fields<mark style="color:red;">\*</mark>  | Object | JSON Object con los campos del elemento a insertar.  |

{% tabs %}
{% tab title="200: OK La consulta se ejecutó con éxito" %}

```json
{
    "success": true,
    "data": {
        "mdb_id": 4,
        "fields": {
            "1": "DEST-123AALK",
            "2": "Destornillador perillero",
            "5": "Rojo"
            "6": ""
        },
        "updated": "2022-05-20T13:43:46.000Z"
    }
}
```

{% endtab %}

{% tab title="404: Not Found La master db especificada no existe" %}

```json
{
    "success": false,
    "error": {
        "status": 404,
        "type": "NOT_FOUND",
        "userMessage": "No existe el mdb_id: 23213123123"
    }
}
```

{% endtab %}

{% tab title="400: Bad Request Error en alguno de los campos enviados. userMessage contiene informacipon adicional." %}

```javascript
{
    "success": false,
    "error": {
        "status": 400,
        "type": "BAD_REQUEST",
        "userMessage": "'field.1' es un campo string obligatorio que identifica el master db obj value"
    }
}
```

{% endtab %}

{% tab title="409: Conflict Conflicto. Ya existe otro elemento con este field.1" %}

```javascript
{
    "success": false,
    "error": {
        "status": 409,
        "type": "CONFLICT",
        "userMessage": "Ya existe un master db value con este field.1"
    }
}
```

{% endtab %}
{% endtabs %}

### Ejemplo de request

En este ejemplo insertamos un elemento en la Master db de Productos (mdb\_id: 4). El **fields.1** es obligatorio y debe ser único, ya que pasa a ser el identificador del elemento insertado.

### body

```json
{
    "mdb_id": 4,
    "fields": {
        "1": "DEST-123AALK",
        "2": "Destornillador perillero",
        "5": "Rojo"
    }
}
```

{% hint style="info" %}
Los valores a insertar son siempre strings, mas alla de que en la definición de la Master db sean de tipo Número, email, link, etc.&#x20;

Por el momento, no se realizan validaciones durante la inserción o modificación de estos campos
{% endhint %}

### Analizando la Respuesta

En caso que no haya ningun error, obtenemos

```json
{
    "success": true,
    "data": {
        "mdb_id": 4,
        "fields": {
            "1": "DEST-123AALK",
            "2": "Destornillador perillero",
            "5": "Rojo"
            "6": ""
        },
        "updated": "2022-05-20T13:43:46.000Z"
    }
}
```

La respuesta contiene al elemento insertado como se puede ver en [Obtener elemento](/entidades-basicas/master-db/obtener-elemento.md)

{% hint style="info" %}
Nótese que la Master Db tiene definido un field "6", que no enviamos durante la inserción, pero si lo recibimos en la respuesta como vacío ""&#x20;

El único campo de los fields obligatorio es el **fields.1** ya que es el identificador unico del elemento en la db
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.api.persat.com.ar/entidades-basicas/master-db/insertar-elemento.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
