API Terceros/Notas Tercero

De WikiSerpi
Revisión del 11:41 28 jul 2023 de Dvaldes (discusión | contribs.) (→¿Cómo consumir la API?)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

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://apis.serpi.com.co/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://apis.serpi.com.co/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://apis.serpi.com.co/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>