> ## Documentation Index
> Fetch the complete documentation index at: https://developers.argosidentity.com/llms.txt
> Use this file to discover all available pages before exploring further.

# POST/Projection

> Esta API permite configurar una política para excluir un campo. Hay un máximo de 10 proyecciones.

<Note>
  Para aplicar una proyección, es necesario aplicar un parámetro de query string.

  Para más detalles, consulte la sección de [parámetros clave de query string](https://developers.argosidentity.com/es/idcheck/getting-started/liveform-url/querystring-and-token-guide#2-1-key-query-string-parameters)
</Note>

## 1. Endpoint

```text POST/Projection theme={null}
POST https://rest-api.argosidentity.com/v3/projection
```

## 2. Autenticación

Incluya la clave API en el encabezado `x-api-key`:

```text x-api-key theme={null}
x-api-key: {yourAPIKey}
```

## 3. Cuerpo de la Solicitud

El cuerpo de la solicitud debe estar en formato JSON. A continuación se encuentran las descripciones de los campos:

<ResponseField name="name" type="string" required>
  Establezca un nombre de proyección. Se permiten guiones bajos (\_), números y caracteres en minúsculas.
</ResponseField>

<ResponseField name="mode" type="string" required>
  Establezca el modo de proyección. Actualmente, solo existe la opción `exclude`.
</ResponseField>

<ResponseField name="fields" type="array" required>
  Establezca la lista para excluir campos específicos.

  * `first_name` El nombre que fue enviado
  * `last_name` El apellido que fue enviado
  * `full_name` El nombre completo que fue enviado
  * `full_name_en` Nombre completo en inglés proporcionado tras aprobación de KYC (transliteración, sin traducción libre)
  * `gender`: male o female
  * `nationality`: Código de país, ISO alpha-3
  * `date_of_birth`: La fecha de nacimiento enviada
  * `ip_address`: El tipo de dirección IPv4
  * `idType`: El tipo de ID (ej., licencia de conducir, pasaporte)
  * `idcard_issuingCountry`: Código de país emisor, ISO alpha-3
  * `idcard_issueDate`: Fecha de emisión del ID (YYYY-MM-DD)
  * `idcard_expireDate`: Fecha de vencimiento del ID (YYYY-MM-DD)
  * `identityNumber`
  * `documentNumber`
  * `address_city`
  * `address_country`
  * `address_state`
  * `address_street`
  * `address_street2`
  * `address_zipcode`
  * `address_globalCode`: Código de dirección global (ej., 8Q98HXPG+MP)
  * `address_compoundCode`: Código de dirección compuesto (ej., HXPG+MP, Seoul, South Korea)
  * `address_formatted`: Dirección detallada formateada
  * `address_input`: Dirección ingresada
  * `address_detail`: Dirección detallada ingresada
  * `cf1`: Campo personalizado 1
  * `cf2`: Campo personalizado 2
  * `cf3`: Campo personalizado 3

  Campos soportados de Knowledge-Based

  * `age_group`
  * `ssnNumber`: Número de Seguro Social.\
    \* Para aplicar la convención lowerCamelCase al Number escrito una vez más.
  * `phoneNumber`

  ej.

  * `["first_name","mid_name","last_name","full_name","idtype"]`
  * `["date_of_birth","address_formatted","address_detail"]`
</ResponseField>

## 4. Ejemplo de Solicitud

```curl POST/Projection theme={null}
curl --location 'https://rest-api.argosidentity.com/v3/projection' \
--header 'Content-Type: application/json' \
--header 'x-api-key: {yourAPIKey}'
--data-raw '{
	"name": "{name}",
	"mode": "{mode}",
	"fields": ["{field1}","{field2}"]
}'
```

## 5. Respuesta

### 5-1. Respuesta Exitosa

<CodeGroup>
  ```json result-post-projection.json theme={null}
  {
      "message": "Create projection success",
      "projection_id": "3zo1598m9mkrion"
  }
  ```
</CodeGroup>

### 5-2. Campos de Respuesta

| Field Name      | Descripción                           | Data Type | Category        |
| --------------- | ------------------------------------- | --------- | --------------- |
| `projection_id` | El ID único de la proyección generada | String    | Projection Info |

### 5-3. Códigos de Error

| Status Code | Error Message                            | Descripción                                                                                                |
| ----------- | ---------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| 400         | Invalid request body: name, mode, fields | Cuando los campos requeridos (name, mode, fields) faltan en el cuerpo de la solicitud                      |
| 400         | Invalid mode: \$mode                     | Cuando el mode en el cuerpo de la solicitud no es válido. (Actualmente solo se soporta `exclude`)          |
| 400         | Invalid fields detected: field1, field2  | Cuando los elementos dentro de fields en el cuerpo de la solicitud no son válidos                          |
| 400         | Invalid encrypted body                   | Cuando se envía una solicitud cifrada con formato incorrecto mientras la opción de cifrado está habilitada |
| 400         | Invalid JSON body                        | Cuando el cuerpo de la solicitud no está en formato JSON válido                                            |
| 404         | Projection not found                     | Cuando no existe una proyección correspondiente al `projectionId` especificado                             |
| 405         | Method not allowed for /projections path | Las solicitudes HTTP (PUT, DELETE, etc.) no son GET o POST                                                 |
| 409         | Projection name already exists           | El mismo nombre de proyección ya ha sido configurado                                                       |
| 409         | Projection count limit exceeded          | Si el número de proyecciones excede el límite de 10 proyecciones                                           |
| 500         | Internal server error                    | Cuando el servidor encuentra un error de excepción inesperado                                              |
