API Documentos Contables
Descripción: Esta API permite la sincronizacion de documentos contables entre SERPI y la plataforma que lo requiera permitiendo tener un manejo estandar entre las dos herramientas.
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:
Tipos de peticiones: GET, POST, PUT
¿Cómo funciona?
- Tenga en cuenta que un mismo token no puede ser consumidos de manera simultanea, por lo cual puede programar que la siguiente API sea consumida cuando el resultado de la anterior sea exitoso.
- En términos de tiempo, para hacer seguimiento a su operación puede hacer un consumo cada 5 minutos de la información.
Métodos
<Tabs> <Tab name = "API Consulta Tipos de Documento"> GET/users
EndPoint: https://www.apis.serpi.com.co/api/v1/DocumentoContable/GetTipoDocumento
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 SerpiERPPará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 |
Response
{
"success": true,
"code": 200,
"errors": null,
"message": "2 registro(s) encontrados",
"result": [
{
"id": 1,
"categoriaDocumento": "NC",
"prefijo": "RCA",
"descripcion": "RECIBO DE CAJA"
},
{
"id": 2,
"categoriaDocumento": "NC",
"prefijo": "NCC",
"descripcion": "NOTA CONTABLE"
}
]
}
{
"success": true,
"code": 204,
"message": "No se encontraron registros",
}Campo de resultados
| Campo | Tipo de dato | Descripción
</Tab> <Tab name = "API Consultar Documentos Contables"> POST /users Headers
Body: {
"tiposDocumentos": [15,16],
"numeroDesde": null,
"numeroHasta": null,
"fechaDesde": "2023-01-01",
"fechaHasta": "2023-01-31"
}Campos del request
Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERPResponse {
"success": true,
"code": 200,
"errors": null,
"message": "1 registro(s) encontrados",
"result": [
{
"id": 111,
"categoriaDocumento": "CCO",
"prefijo": "COM",
"numeroDoc": 1,
"nitTerceroEnc": "1234567890",
"nombreTerceroEnc": "ALEJANDRA LOPEZ LOPEZ",
"fechaDocumento": "2023-03-01",
"detalles": [
{
"cuenta": 52954501,
"nitTerceroDet": "1234567890",
"nombreTerceroDet": "ALEJANDRA LOPEZ LOPEZ",
"naturaleza": "D",
"crucePrefijo": null,
"cruceNumero": null,
"fechaVencimiento": null,
"valor": 67900.00000,
"baseImpuesto": 0.00000,
"cuota": 0,
"detalle": "SERV DE TRANSP INFORMAL",
"idCentroCosto": 3,
"idSubcentroCosto": 4,
"idCentroOperacion": 1,
"idProyecto": null,
"idActividad": null,
"idSucursal": null
},
{
"cuenta": 23359501,
"nitTerceroDet": "1234567890",
"nombreTerceroDet": "ALEJANDRA LOPEZ LOPEZ",
"naturaleza": "C",
"crucePrefijo": "COM",
"cruceNumero": 3272,
"fechaVencimiento": null,
"valor": 67900.00000,
"baseImpuesto": 0.00000,
"cuota": 0,
"detalle": "SERV DE TRANSP INFORMAL",
"idCentroCosto": null,
"idSubcentroCosto": null,
"idCentroOperacion": 1,
"idProyecto": null,
"idActividad": null,
"idSucursal": null
}
]
}
]
}
{
"success": true,
"code": 204,
"message": "No se encontraron registros",
}
</Tab> <Tab name = "API Crear"> PUT/users EndPoint: https://www.apis.serpi.com.co/api/v1/DocumentoContable Headers
Authorization: Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERPBody: [
{
"categoriaDocumento": "CCO",
"prefijo": "COM",
"numeroDoc": 2,
"nitTerceroEnc": "123456789",
"fechaDocumento": "2023-03-01",
"detalles": [
{
"cuenta": 52954501,
"nitTerceroDet": "123456789",
"naturaleza": "D",
"crucePrefijo": null,
"cruceNumero": null,
"fechaVencimiento": null,
"valor": 67900.00000,
"baseImpuesto": 0.00000,
"cuota": 0,
"detalle": "SERV DE TRANSP INFORMAL",
"idCentroCosto": 3,
"idSubcentroCosto": 4,
"idCentroOperacion": 1,
"idProyecto": null,
"idActividad": null,
"idSucursal": null
},
{
"cuenta": 23359501,
"nitTerceroDet": "123456789",
"naturaleza": "C",
"crucePrefijo": "COM",
"cruceNumero": 1,
"fechaVencimiento": null,
"valor": 67900.00000,
"baseImpuesto": 0.00000,
"cuota": 0,
"detalle": "SERV DE TRANSP INFORMAL",
"idCentroCosto": null,
"idSubcentroCosto": null,
"idCentroOperacion": 1,
"idProyecto": null,
"idActividad": null,
"idSucursal": null
}
]
}
]Campos resultado
Authorization: Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERPResponse {
"success": true,
"code": 201,
"errors": [],
"message": "Se crearon 10 de 10 documentos contables"
}</Tab>
<Tab name = "API Eliminar"> PUT/users EndPoint: https://www.apis.serpi.com.co/api/v1/DocumentoContable Headers
Authorization: Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERPBody: {
"idTipoDocumento": 6,
"numeroDesde": 1,
"numeroHasta": 10000,
"fechaDesde": "2023-03-01",
"fechaHasta": "2023-03-31"
}Campos Solicitados
Usar Bearer. Ejemplo “bearer {{token}}”.
{{token}} Token de autorizacion generado por SerpiERPResponse {
"success": true,
"code": 200,
"errors": [],
"message": "Se eliminaron 10 de 10 documentos contables "
}</Tab> </Tabs> ¿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:///www.apis.serpi.com.co/api/v1/DocumentoContable")
.method("GET", body)
.addHeader("secretkey", "{Secret Key}")
.addHeader("Authorization", "{Bearer Token}")
.build();
Response response = client.newCall(request).execute();Response {
"code": 200,
"error": null,
"msg": "Information found for the current month",
"data": [
{
"operation": "",
"description": "",
"items": "",
"date": ""
}
]
}</Tab> <Tab name = "Python"> Request import requests
url = "https://www.apis.serpi.com.co/api/v1/DocumentoContable"
payload = {}
headers = {
'secretkey': '{Secret Key}',
'Authorization': '{Bearer Token}'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)Response {
"code": 200,
"error": null,
"msg": "Information found for the current month",
"data": [
{
"operation": "",
"description": "",
"items": "",
"date": ""
}
]
}</Tab> <Tab name = "Php"> Request <?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://www.apis.serpi.com.co/api/v1/DocumentoContable');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'secretkey' => '{Secret Key}',
'Authorization' => '{Bearer Token}'
));
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();
}Response {
"code": 200,
"error": null,
"msg": "Information found for the current month",
"data": [
{
"operation": "",
"description": "",
"items": "",
"date": ""
}
]
}</Tab> </Tabs> Códigos de estado HTTP
|
|---|