Diferencia entre revisiones de «API Terceros/Notas Tercero»

De WikiSerpi
Ir a la navegación Ir a la búsqueda
Línea 48: Línea 48:
| Página || int || No || Este parámetro indica el número de la página que se debe devolver. Por ejemplo, si se establece en 3, se devolverán los resultados de la tercera página
| Página || int || No || Este parámetro indica el número de la página que se debe devolver. Por ejemplo, si se establece en 3, se devolverán los resultados de la tercera página
|-
|-
| nitTercero || int || No || Este parámetro indica el NIT del tercero. Se devolverán las notas relacionadas a ese tercero
| '''nitTercero''' || int || No || Este parámetro indica el NIT del tercero. Se devolverán las notas relacionadas a ese tercero
|}
|}


Línea 61: Línea 61:
         {
         {
             "id": 1,
             "id": 1,
             "descripcion": "LISTA DE PRECIO DEMO",
             "id_tercero": 1234,
             "fechavigencia": "2019-05-21",
            "nit_tercero": "1234567",
             "codigo": "0",
            "descripcion_tercero": "DESCRIPCIÓN DEL TERCERO",
             "lista_predeterminada": true,
            "nota": "NOTA ASOCIADA",
             "permiso_especial": true
             "fecha_creacion": "2023-06-20 09:39:45",
            "id_usuario": 1,
             "usuario": "USUARIO ASOCIADO",
             "prioridad": "alta",
             "confidencial": true
         }
         }
]
]
Línea 83: Línea 87:
! Campo !! Tipo de dato !! Descripción
! Campo !! Tipo de dato !! Descripción
|-
|-
| id || int || Corresponde al identificador de la lista de precio
| id || int || Corresponde al identificador de la nota
|-
|-
| descripcion || string || Descripción de la lista de precio
| id_tercero || int || Corresponde al identificador del tercero asociado a la nota
|-
|-
| fechavigencia || Date || Fecha Vigencia
| nit_tercero || string || Corresponde al NIT asociado a la nota y al id del tercero
|-
|-
| codigo || string|| Código
| descripcion_tercero || string || Descripción del tercero
|-
|-
| lista_predeterminada || bool || Lista Predeterminada
| nota || string  || Cuerpo de la nota
|-
|-
| permiso_especial || bool || Permiso especial para Ver
| fecha_creacion || Date || Fecha de creación de la nota
|-
| id_usuario || int || Corresponde al identificador del usuario asociado a la nota
|-
| usuario || string|| Nombre del usuario asociado al id del usuario
|-
| prioridad || string || Nivel de prioridad de la nota (baja, media, alta)
|-
| confidencial || bool || Define si es una nota confidencial
|}
|}
</Tab>
</Tab>
Línea 120: Línea 132:
<syntaxhighlight lang="JSON">
<syntaxhighlight lang="JSON">
{
{
     "descripcion": "LISTA DE PRECIO DEMO",
     "nit_tercero": "1234567",
     "fechavigencia": "2023-06-19",
     "nota": "NOTA DE PRUEBA DESDE POSTMAN",
     "codigo": "4",
     "prioridad": "media",
    "lista_predeterminada": true,
     "confidencial": false
     "permiso_especial": true
}
}
</syntaxhighlight>
</syntaxhighlight>
Línea 134: Línea 145:
! Campo !! Tipo de dato !! Longitud !! Requerido !! Descripción
! Campo !! Tipo de dato !! Longitud !! Requerido !! Descripción
|-
|-
| descripcion || string || 100 || Si || Descripción de la lista de precio
| nit_tercero || string || 15 || Si || Corresponde al NIT asociado a la nota y al id del tercero
|-
|-
| fechavigencia || Date || '''YYYY-MM-DD''' || Si || Fecha Vigencia
| nota || string || 65535 || Si || Cuerpo de la nota
|-
|-
| codigo || string || 30 || Si || Código único de la lista de precio
| prioridad || string || 10 || Si || Nivel de prioridad de la nota (baja, media, alta)
|-
|-
| lista_predeterminada || bool || 1 || No || Lista Predeterminada
| confidencial || bool || 1 || Si || Definir si es una nota confidencial o no
|-
| permiso_especial || bool || 1 || No || Permiso especial para Ver
|}
|}


==== '''AVISO IMPORTANTE:''' ====
==== '''AVISO IMPORTANTE:''' ====
Digite null o 0 (si es un campo del tipo double o int), para aquellos valores donde los campos no sean obligatorios y donde no se va a asignar algún valor.
Donde los '''campos no sean obligatorios''' y no se desea asignar algún valor, pruebe digitando '''null''' o '''0''' en los valores de los campos de tipo numérico (int o double). Si es un campo de tipo string no obligatorio, siempre digite '''null'''.




Línea 165: Línea 174:
     "code": 400,
     "code": 400,
     "errors": [
     "errors": [
         "El codigo 1 ya existe",
         "No existe un tercero asociado al nit: 1234567",
         "El campo descripcion es obligatorio",
         "El campo nota es obligatorio",
         "El campo de fechavigencia es inválido. Formato esperado: yyyy-MM-dd"
         "El campo prioridad con el valor X no coincide con alguna de las opciones válidas. Digite baja, media o alta"
     ],
     ],
     "message": "Problemas de validaciones. Se presentaron errores al crear el registro"
     "message": "Problemas de validaciones. Se presentaron errores al crear el registro"
Línea 198: Línea 207:
{
{
     "id": 1,
     "id": 1,
     "descripcion": "LISTA DE PRECIO DEMO MODIFICADA",
     "nit_tercero": "1234567",
     "fechavigencia": "2022-05-21",
     "nota": "NOTA DE PRUEBA DESDE POSTMAN",
     "codigo": "5",
     "prioridad": "media",
    "lista_predeterminada": false,
     "confidencial": false
     "permiso_especial": false
}
}
</syntaxhighlight>
</syntaxhighlight>
Línea 212: Línea 220:
! Campo !! Tipo de dato !! Longitud !! Requerido !! Descripción
! Campo !! Tipo de dato !! Longitud !! Requerido !! Descripción
|-
|-
| id || int || 11 || Si || Corresponde al identificador de la lista de precio
| id || int || 11 || Si || Corresponde al identificador de la nota
|-
| descripcion || string || 100 || Si || Descripción de la lista de precio
|-
|-
| fechavigencia || Date || '''YYYY-MM-DD''' || Si || Fecha Vigencia
| nit_tercero || string || 15 || Si || Corresponde al NIT asociado a la nota y al id del tercero
|-
|-
| codigo || string || 30 || Si || Código único de la lista de precio
| nota || string || 65535 || Si || Cuerpo de la nota
|-
|-
| lista_predeterminada || bool || 1 || No || Lista Predeterminada
| prioridad || string || 10 || Si || Nivel de prioridad de la nota (baja, media, alta)
|-
|-
| permiso_especial || bool || 1 || No || Permiso especial para Ver
| confidencial || bool || 1 || Si || Definir si es una nota confidencial o no
|}
|}


==== '''AVISO IMPORTANTE:''' ====
==== '''AVISO IMPORTANTE:''' ====
Digite null o 0 (si es un campo del tipo double o int), para aquellos valores donde los campos no sean obligatorios y donde no se va a asignar algún valor.
Donde los '''campos no sean obligatorios''' y no se desea asignar algún valor, pruebe digitando '''null''' o '''0''' en los valores de los campos de tipo numérico (int o double). Si es un campo de tipo string no obligatorio, siempre digite '''null'''.




Línea 253: Línea 259:
     "errors": [
     "errors": [
         "El campo id es obligatorio",
         "El campo id es obligatorio",
         "El codigo 1 ya esta asociado a otro id",
         "No existe un tercero asociado al nit: 1234567",
        "El campo descripcion es obligatorio",
         "El campo nota es obligatorio",
         "El campo fechavigencia es obligatorio",
         "El campo prioridad con el valor X no coincide con alguna de las opciones válidas. Digite baja, media o alta"
         "El campo de fechavigencia es inválido. Formato esperado: yyyy-MM-dd"
     ],
     ],
     "message": "Problemas de validaciones. Se presentaron errores al modificar el registro"
     "message": "Problemas de validaciones. Se presentaron errores al modificar el registro"

Revisión del 10:42 20 jun 2023

Descripción: PENDIENTE

Autorización: Se requiere autenticación para todas las solicitudes. Las credenciales de autenticación deben ser incluidas en la cabecera de todas las solicitudes a través del campo Authorization utilizando el token de acceso entregado SERPI ERP.

Beneficio: PENDIENTE

Tipos de peticiones: GET, POST, PUT

¿Cómo funciona? PENDIENTE

Métodos

<Tabs> <Tab name = "API Consulta (GET) ">

EndPoint: https://www.apis.serpi.com.co/api/v1/NotaTercero

EndPoint con parámetros: https://www.apis.serpi.com.co/api/v1/NotaTercero?nitTercero=1075229539

Headers
Header Descripción
secretkey Secretkey proporcionada al cliente para consumos de las APIs

Authorization:

Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP
Parámetros
Parámetro Tipo de dato Requerido Descripción
Límite int No Este parámetro indica la cantidad de resultados que se deben devolver en una sola página
Página int No Este parámetro indica el número de la página que se debe devolver. Por ejemplo, si se establece en 3, se devolverán los resultados de la tercera página
nitTercero int No Este parámetro indica el NIT del tercero. Se devolverán las notas relacionadas a ese tercero

Response

{
    "success": true,
    "code": 200,
    "errors": null,
    "message": "1 registro(s) encontrados",
    "result": [
        {
            "id": 1,
            "id_tercero": 1234,
            "nit_tercero": "1234567",
            "descripcion_tercero": "DESCRIPCIÓN DEL TERCERO",
            "nota": "NOTA ASOCIADA",
            "fecha_creacion": "2023-06-20 09:39:45",
            "id_usuario": 1,
            "usuario": "USUARIO ASOCIADO",
            "prioridad": "alta",
            "confidencial": true
        }
	]
}

{
	"success": true
	"code": 201,
	"message": "No se encontraron registros",
	"result": []
}
Campos de resultados
Campo Tipo de dato Descripción
id int Corresponde al identificador de la nota
id_tercero int Corresponde al identificador del tercero asociado a la nota
nit_tercero string Corresponde al NIT asociado a la nota y al id del tercero
descripcion_tercero string Descripción del tercero
nota string Cuerpo de la nota
fecha_creacion Date Fecha de creación de la nota
id_usuario int Corresponde al identificador del usuario asociado a la nota
usuario string Nombre del usuario asociado al id del usuario
prioridad string Nivel de prioridad de la nota (baja, media, alta)
confidencial bool Define si es una nota confidencial

</Tab>

<Tab name = "API Creación (POST) "> EndPoint: https://www.apis.serpi.com.co/api/v1/NotaTercero

Headers
Header Descripción
secretkey Secretkey proporcionada al cliente para consumos de las APIs

Authorization:

Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP


Request

{
    "nit_tercero": "1234567",
    "nota": "NOTA DE PRUEBA DESDE POSTMAN",
    "prioridad": "media",
    "confidencial": false
}


Campos del request
Campo Tipo de dato Longitud Requerido Descripción
nit_tercero string 15 Si Corresponde al NIT asociado a la nota y al id del tercero
nota string 65535 Si Cuerpo de la nota
prioridad string 10 Si Nivel de prioridad de la nota (baja, media, alta)
confidencial bool 1 Si Definir si es una nota confidencial o no

AVISO IMPORTANTE:

Donde los campos no sean obligatorios y no se desea asignar algún valor, pruebe digitando null o 0 en los valores de los campos de tipo numérico (int o double). Si es un campo de tipo string no obligatorio, siempre digite null.


Response

{
    "success": true,
    "code": 201,
    "errors": [],
    "message": "Validaciones exitosas. Registro creado exitosamente"
}

Validaciones

{
    "success": false,
    "code": 400,
    "errors": [
        "No existe un tercero asociado al nit: 1234567",
        "El campo nota es obligatorio",
        "El campo prioridad con el valor X no coincide con alguna de las opciones válidas. Digite baja, media o alta"
    ],
    "message": "Problemas de validaciones. Se presentaron errores al crear el registro"
}

</Tab>

<Tab name = "API Modificar(PUT) "> EndPoint: https://www.apis.serpi.com.co/api/v1/NotaTercero

Headers
Header Descripción
secretkey Secretkey proporcionada al cliente para consumos de las APIs

Authorization:

Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERP


Request

{
    "id": 1,
    "nit_tercero": "1234567",
    "nota": "NOTA DE PRUEBA DESDE POSTMAN",
    "prioridad": "media",
    "confidencial": false
}


Campos del request
Campo Tipo de dato Longitud Requerido Descripción
id int 11 Si Corresponde al identificador de la nota
nit_tercero string 15 Si Corresponde al NIT asociado a la nota y al id del tercero
nota string 65535 Si Cuerpo de la nota
prioridad string 10 Si Nivel de prioridad de la nota (baja, media, alta)
confidencial bool 1 Si Definir si es una nota confidencial o no

AVISO IMPORTANTE:

Donde los campos no sean obligatorios y no se desea asignar algún valor, pruebe digitando null o 0 en los valores de los campos de tipo numérico (int o double). Si es un campo de tipo string no obligatorio, siempre digite null.


Response

{
    "success": true,
    "code": 200,
    "errors": [],
    "message": "Validaciones exitosas. Registro modificado exitosamente"
}

{
    "success": false,
    "code": 204,
    "errors": null,
    "message": "No se encontraron registros con el id 1"
}

Validaciones

{
    "success": false,
    "code": 400,
    "errors": [
        "El campo id es obligatorio",
        "No existe un tercero asociado al nit: 1234567",
        "El campo nota es obligatorio",
        "El campo prioridad con el valor X no coincide con alguna de las opciones válidas. Digite baja, media o alta"
    ],
    "message": "Problemas de validaciones. Se presentaron errores al modificar el registro"
}

</Tab> </Tabs>

Códigos de estado HTTP

Código Descripción
200 La solicitud ha sido exitosa
201 La solicitud ha tenido éxito y ha llevado a la creación de un recurso
204 La solicitud se ha completado correctamente, pero no hay contenido para devolver en la respuesta
400 El servidor no puede o no procesará la petición debido a algo que es percibido como un error del cliente
401 La solicitud requiere autenticación, pero el cliente no ha proporcionado credenciales válidas o no está autorizado para acceder al recurso
403 El servidor ha entendido la solicitud, pero se niega a cumplirla debido a que el cliente no tiene permisos para acceder al recurso
404 El recurso solicitado no se ha encontrado en el servidor
500 Internal Server Error
503 El servidor no está disponible actualmente debido a una sobrecarga o mantenimiento temporal

¿Cómo consumir la API?

<Tabs>

<Tab name = "Java"> Request

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
  .url("https://localhost:44305/api/v1/NotaTercero")
  .method("GET", body)
  .addHeader("secretkey", "{{secret key}}")
  .addHeader("Authorization", "Bearer{{token}}")
  .build();
Response response = client.newCall(request).execute();

</Tab>

<Tab name = "C#"> Request

var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://localhost:44305/api/v1/NotaTercero");
request.Headers.Add("secretkey", "{{secret key}}");
request.Headers.Add("Authorization", "Bearer{{token}}");
var content = new StringContent("", null, "text/plain");
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

</Tab>

<Tab name = "PHP"> Request

<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://localhost:44305/api/v1/NotaTercero');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'secretkey' => '{{secret key}}',
  'Authorization' => 'Bearer {{token}}'
));
$request->setBody('');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}

</Tab>

</Tabs>