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

# Company Procedures

POST https://api.ovac.pre.councilbox.com/graphql/statutes
Content-Type: application/json

# Company Statutes (`query`)

Esta operación permite consultar el catálogo de trámites configurados y vinculados a una entidad determinada. Ofrece un parámetro de filtrado opcional para segmentar de forma directa los resultados según el canal o tipo de atención requerido.

### Autenticación

> **Tipo:** API Key**  
Header:** `x-jwt-token`  
**Ubicación:** Header HTTP_  
Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
  

## Referencia de la API

### Parámetros de Entrada (Variables)

| Parámetro | Descripción | Requerido | Tipo |
| --- | --- | --- | --- |
| companyId | Identificador único de la entidad en OVAC donde se busca la disponibilidad. | SI | Integer |
| councilType | Filtro por tipo de canal. Admite los siguientes valores:  <br>`null` -> Muestra todos los trámites (por defecto).  <br>`5` -> Videoatención.  <br>`6` -> Gestión desatendida.  <br>`7` -> Presencial. | NO | Integer |

### Campos de Respuesta (Payload)

La consulta devuelve una colección directa de objetos bajo el campo raíz `companyStatutes`:

| Parámetro | Descripción | Tipo |
| --- | --- | --- |
| companyStatutes | Array con el listado de trámites vinculados que cumplen los filtros. | Array |
| companyStatutes.**id** | Identificador interno único del trámite en la plataforma OVAC. | Integer |
| companyStatutes.**externalId** | Código o identificador del trámite en el sistema del cliente de origen. | String |
| companyStatutes.**title** | Nombre o denominación oficial del trámite (ej. "TEST"). | String |
| companyStatutes.**councilType** | Código numérico que representa el canal de atención asignado a ese trámite. | Integer |

## Ejemplos de Código y Peticiones

### 1\. Consulta GraphQL

``` graphql
query Statutes($companyId: Int!, $councilType: Int) {
    companyStatutes(companyId: $companyId, councilType: $councilType) {
        id
        externalId
        title
        councilType
    }
}

 ```

### 2\. Variables de la Petición (JSON Payload)

``` json
{
    "companyId": 2191,
    "councilType": null
}

 ```

### 3\. Ejemplo de comando cURL

``` bash
curl --location "https://api.ovac.pre.councilbox.com/graphql" \
--header "Content-Type: application/json" \
--header "x-jwt-token: {{token}}" \
--data '{"query":"query statutes($companyId: Int!, $councilType: Int) { companyStatutes(companyId: $companyId, councilType: $councilType) { id externalId title councilType } }","variables":{"companyId":2191,"councilType":null}}'

 ```

### 4\. Respuesta Esperada (200 OK)

``` json
{
    "data": {
        "companyStatutes": [
            {
                "id": 4685,
                "externalId": null,
                "title": "TEST",
                "councilType": 5
            }
        ]
    }
}

 ```

> **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como `/graphql/statutes` para que Fern pueda mostrarla como operación independiente. La ruta técnica real de ejecución es `POST /graphql`.


Reference: https://docs.ovac.councilbox.com/metodos-api/ovac/statutes

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: ovac
  version: 1.0.0
paths:
  /graphql/statutes:
    post:
      operationId: statutes
      summary: Company Procedures
      description: >
        # Company Statutes (`query`)


        Esta operación permite consultar el catálogo de trámites configurados y
        vinculados a una entidad determinada. Ofrece un parámetro de filtrado
        opcional para segmentar de forma directa los resultados según el canal o
        tipo de atención requerido.


        ### Autenticación


        > **Tipo:** API Key**  

        Header:** `x-jwt-token`  

        **Ubicación:** Header HTTP_  

        Ejemplo:_ `x-jwt-token: eyJhbGciOiJIUzI1NiIsInR5cCI6...` 
          

        ## Referencia de la API


        ### Parámetros de Entrada (Variables)


        | Parámetro | Descripción | Requerido | Tipo |

        | --- | --- | --- | --- |

        | companyId | Identificador único de la entidad en OVAC donde se busca
        la disponibilidad. | SI | Integer |

        | councilType | Filtro por tipo de canal. Admite los siguientes
        valores:  <br>`null` -> Muestra todos los trámites (por defecto). 
        <br>`5` -> Videoatención.  <br>`6` -> Gestión desatendida.  <br>`7` ->
        Presencial. | NO | Integer |


        ### Campos de Respuesta (Payload)


        La consulta devuelve una colección directa de objetos bajo el campo raíz
        `companyStatutes`:


        | Parámetro | Descripción | Tipo |

        | --- | --- | --- |

        | companyStatutes | Array con el listado de trámites vinculados que
        cumplen los filtros. | Array |

        | companyStatutes.**id** | Identificador interno único del trámite en la
        plataforma OVAC. | Integer |

        | companyStatutes.**externalId** | Código o identificador del trámite en
        el sistema del cliente de origen. | String |

        | companyStatutes.**title** | Nombre o denominación oficial del trámite
        (ej. "TEST"). | String |

        | companyStatutes.**councilType** | Código numérico que representa el
        canal de atención asignado a ese trámite. | Integer |


        ## Ejemplos de Código y Peticiones


        ### 1\. Consulta GraphQL


        ``` graphql

        query Statutes($companyId: Int!, $councilType: Int) {
            companyStatutes(companyId: $companyId, councilType: $councilType) {
                id
                externalId
                title
                councilType
            }
        }

         ```

        ### 2\. Variables de la Petición (JSON Payload)


        ``` json

        {
            "companyId": 2191,
            "councilType": null
        }

         ```

        ### 3\. Ejemplo de comando cURL


        ``` bash

        curl --location "https://api.ovac.pre.councilbox.com/graphql" \

        --header "Content-Type: application/json" \

        --header "x-jwt-token: {{token}}" \

        --data '{"query":"query statutes($companyId: Int!, $councilType: Int) {
        companyStatutes(companyId: $companyId, councilType: $councilType) { id
        externalId title councilType }
        }","variables":{"companyId":2191,"councilType":null}}'

         ```

        ### 4\. Respuesta Esperada (200 OK)


        ``` json

        {
            "data": {
                "companyStatutes": [
                    {
                        "id": 4685,
                        "externalId": null,
                        "title": "TEST",
                        "councilType": 5
                    }
                ]
            }
        }

         ```

        > **Nota OpenAPI/Fern:** esta operación GraphQL se documenta como
        `/graphql/statutes` para que Fern pueda mostrarla como operación
        independiente. La ruta técnica real de ejecución es `POST /graphql`.
      tags:
        - subpackage_ovac
      parameters:
        - name: x-jwt-token
          in: header
          description: JWT token obtained from Login.
          required: true
          schema:
            type: string
      responses:
        '200':
          description: >-
            Successful response. GraphQL business errors may be returned inside
            the JSON `errors` field while transport status remains HTTP 200.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OVAC_statutes_Response_200'
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                query:
                  type: string
                  description: GraphQL operation
                variables:
                  $ref: >-
                    #/components/schemas/GraphqlStatutesPostRequestBodyContentApplicationJsonSchemaVariables
                  description: GraphQL variables
              required:
                - query
servers:
  - url: https://api.ovac.pre.councilbox.com
  - url: https://api.ovac.councilbox.com
components:
  schemas:
    GraphqlStatutesPostRequestBodyContentApplicationJsonSchemaVariables:
      type: object
      properties: {}
      description: GraphQL variables
      title: GraphqlStatutesPostRequestBodyContentApplicationJsonSchemaVariables
    OVAC_statutes_Response_200:
      type: object
      properties: {}
      title: OVAC_statutes_Response_200
  securitySchemes:
    JwtToken:
      type: apiKey
      in: header
      name: x-jwt-token
      description: JWT token obtained from Login.

```

## SDK Code Examples

```python Company Procedures
import requests

url = "https://api.ovac.pre.councilbox.com/graphql/statutes"

payload = {
    "query": "query statutes(
    $companyId: Int!,
    $councilType: Int
) {
	companyStatutes(
        companyId: $companyId,
        councilType: $councilType
    ) {
			id
			externalId
			title
            councilType
		}
	}",
    "variables": {
        "companyId": 1234,
        "councilType": None
    }
}
headers = {
    "x-jwt-token": "<apiKey>",
    "Content-Type": "application/json"
}

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

print(response.json())
```

```javascript Company Procedures
const url = 'https://api.ovac.pre.councilbox.com/graphql/statutes';
const options = {
  method: 'POST',
  headers: {'x-jwt-token': '<apiKey>', 'Content-Type': 'application/json'},
  body: '{"query":"query statutes(\r\n    $companyId: Int!,\r\n    $councilType: Int\r\n) {\r\n\tcompanyStatutes(\r\n        companyId: $companyId,\r\n        councilType: $councilType\r\n    ) {\r\n\t\t\tid\r\n\t\t\texternalId\r\n\t\t\ttitle\r\n            councilType\r\n\t\t}\r\n\t}","variables":{"companyId":1234,"councilType":null}}'
};

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

```go Company Procedures
package main

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

func main() {

	url := "https://api.ovac.pre.councilbox.com/graphql/statutes"

	payload := strings.NewReader("{\n  \"query\": \"query statutes(\\r\\n    $companyId: Int!,\\r\\n    $councilType: Int\\r\\n) {\\r\\n\\tcompanyStatutes(\\r\\n        companyId: $companyId,\\r\\n        councilType: $councilType\\r\\n    ) {\\r\\n\\t\\t\\tid\\r\\n\\t\\t\\texternalId\\r\\n\\t\\t\\ttitle\\r\\n            councilType\\r\\n\\t\\t}\\r\\n\\t}\",\n  \"variables\": {\n    \"companyId\": 1234,\n    \"councilType\": null\n  }\n}")

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

	req.Header.Add("x-jwt-token", "<apiKey>")
	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 Company Procedures
require 'uri'
require 'net/http'

url = URI("https://api.ovac.pre.councilbox.com/graphql/statutes")

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

request = Net::HTTP::Post.new(url)
request["x-jwt-token"] = '<apiKey>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"query\": \"query statutes(\\r\\n    $companyId: Int!,\\r\\n    $councilType: Int\\r\\n) {\\r\\n\\tcompanyStatutes(\\r\\n        companyId: $companyId,\\r\\n        councilType: $councilType\\r\\n    ) {\\r\\n\\t\\t\\tid\\r\\n\\t\\t\\texternalId\\r\\n\\t\\t\\ttitle\\r\\n            councilType\\r\\n\\t\\t}\\r\\n\\t}\",\n  \"variables\": {\n    \"companyId\": 1234,\n    \"councilType\": null\n  }\n}"

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

```java Company Procedures
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://api.ovac.pre.councilbox.com/graphql/statutes")
  .header("x-jwt-token", "<apiKey>")
  .header("Content-Type", "application/json")
  .body("{\n  \"query\": \"query statutes(\\r\\n    $companyId: Int!,\\r\\n    $councilType: Int\\r\\n) {\\r\\n\\tcompanyStatutes(\\r\\n        companyId: $companyId,\\r\\n        councilType: $councilType\\r\\n    ) {\\r\\n\\t\\t\\tid\\r\\n\\t\\t\\texternalId\\r\\n\\t\\t\\ttitle\\r\\n            councilType\\r\\n\\t\\t}\\r\\n\\t}\",\n  \"variables\": {\n    \"companyId\": 1234,\n    \"councilType\": null\n  }\n}")
  .asString();
```

```php Company Procedures
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://api.ovac.pre.councilbox.com/graphql/statutes', [
  'body' => '{
  "query": "query statutes(\\r\\n    $companyId: Int!,\\r\\n    $councilType: Int\\r\\n) {\\r\\n\\tcompanyStatutes(\\r\\n        companyId: $companyId,\\r\\n        councilType: $councilType\\r\\n    ) {\\r\\n\\t\\t\\tid\\r\\n\\t\\t\\texternalId\\r\\n\\t\\t\\ttitle\\r\\n            councilType\\r\\n\\t\\t}\\r\\n\\t}",
  "variables": {
    "companyId": 1234,
    "councilType": null
  }
}',
  'headers' => [
    'Content-Type' => 'application/json',
    'x-jwt-token' => '<apiKey>',
  ],
]);

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

```csharp Company Procedures
using RestSharp;

var client = new RestClient("https://api.ovac.pre.councilbox.com/graphql/statutes");
var request = new RestRequest(Method.POST);
request.AddHeader("x-jwt-token", "<apiKey>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"query\": \"query statutes(\\r\\n    $companyId: Int!,\\r\\n    $councilType: Int\\r\\n) {\\r\\n\\tcompanyStatutes(\\r\\n        companyId: $companyId,\\r\\n        councilType: $councilType\\r\\n    ) {\\r\\n\\t\\t\\tid\\r\\n\\t\\t\\texternalId\\r\\n\\t\\t\\ttitle\\r\\n            councilType\\r\\n\\t\\t}\\r\\n\\t}\",\n  \"variables\": {\n    \"companyId\": 1234,\n    \"councilType\": null\n  }\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift Company Procedures
import Foundation

let headers = [
  "x-jwt-token": "<apiKey>",
  "Content-Type": "application/json"
]
let parameters = [
  "query": "query statutes(
    $companyId: Int!,
    $councilType: Int
) {
	companyStatutes(
        companyId: $companyId,
        councilType: $councilType
    ) {
			id
			externalId
			title
            councilType
		}
	}",
  "variables": [
    "companyId": 1234,
    "councilType": 
  ]
] as [String : Any]

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

let request = NSMutableURLRequest(url: NSURL(string: "https://api.ovac.pre.councilbox.com/graphql/statutes")! 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()
```