{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"4e622036-5dc7-4ba2-8e66-c5f3ec1321df","name":"API Xerpa Middleware","description":"Xerpa expone a través de su API, servicios para que el banco o institución financiera pueda acceder a la información necesaria para ejecutar sus actividades.\n\nEstos servicios consideran endopints de los productos de **Control de Gastos** y **Ahorro Automático**.\n\n> **Acceso Restringido**  \nEsta API solo está disponible para los bancos e instituciones financieras que forman parte de la cartera de clientes de Xerpa. \n  \n\n## Campos requeridos\n\nA menos de que se especifique lo contrario, todos los campos de las peticiones son obligatorios. Solo bajo ciertas circunstancias y donde quede explícitamente documentado se manejarán campos opcionales para las peticiones. Estos campos opcionales se indicarán en cada endpoint que lo permita.\n\n## Códigos de Respuesta\n\n| Código | Descripción |\n| --- | --- |\n| 200 | OK |\n| 201 | Recurso creado (POST) |\n| 204 | OK, no se devolvió contenido (usar para PATCH) |\n| 304 | No modificado |\n| 400 | Petición Incorrecta |\n| 401 | No autorizado (para usuarios no autenticados) |\n| 403 | Prohibido (para usuarios autenticados que no tienen los permisos adecuados) |\n| 404 | No encontrado |\n| 408 | Timeout |\n| 415 | Tipo de acción no admitida |\n| 429 | Límite de peticiones alcanzado |\n| 500 | Error interno de servidor |\n\n### Códigos de Error\n\nSe utilizan códigos de error internos para problemas relacionados al uso de la API, estos códigos se retornarán dentro del cuerpo de la respuesta.\n\nEl **case-id** es un identificador único de la petición para trazar el error en los logs internos y atender actividades de soporte.\n\nEl **error-code** es un código que se puede buscar en el diccionario de errores y donde se puede encontrar más información del problema.\n\n## Reintento de peticiones\n\nLas peticiones a la API pueden fallar por múltipes razones, desde problemas de red, límite de peticiones, timeouts o errores de servicios. Como recomendación, sugerimos desarrollar un sistema de reintento de peticiones cuando se obtengas las siguientes respuestas HTTP:\n\n- **5xx** (Server errors)\n    \n- **429** (Rate Limits)\n    \n- **408** (Timeouts)\n    \n\n## Límite de peticiones\n\nEl límite por defecto de las peticiones desde una misma IP son de 1,000 peticiones por minuto. El límite aplica para cada ambiente (sandbox, QA y producción) independientemente.\n\nSi se alcanza el límite, las peticiones responderán con un error HTTP 429.\n\nEn caso de ser necesario el límite se puede aumentar para ambientes productivos con previo análisis con el equipo responsable de las APIs en Xerpa.\n\n## Timeouts\n\nTodas nuestras APIs tienen tomeouts para identificar que ha ocurrido un error lo antes posible y con eso puedas reintentar la petición. Es recomentadble manejar los mismos tiempos de timeouts para los clientes.\n\n**Tiempo por Defecto** - La mayoría de las APIs arrojará un timeout a los _29 segundos_.\n\n## Paginación\n\nLa paginación cuando esté disponible se explicitará en la documentación respectiva de cada recurso.\n\nPara paginación se debe usar los siguientes parámetros como query-param:\n\n- **start**: Inicio de la paginación\n    \n- **limit**: Items por página\n    \n\n##### Ejemplo petición con paginación\n\n`https://api.getxerpa.com/api/V1.1/resource/?start=0&limit=10`\n\n## Filtros y ordenamiento\n\nEn los recursos donde los filtros estén disponibles se indicará explícitamente en la documentación, asi como los parámetros por los cuales se puede filtrar y el ordenamiento.\n\n## Parámetro Expand\n\nEn algunos recursos se permite el parámetro expand para mostrar los objetos anidados. Este parámetro se usa principalmente para expandir los objetos de catálogos dentro de las respuestas.\n\n##### Ejemplo petición con parámetro expand\n\n[<code>https://api.getxerpa.com/api/V1.1/resource/?expand=project_category,project_status</code>](https://api.getxerpa.comm/api/V1.1/resource/?expand=project_category,)\n\n## Variables de entorno utilizadas\n\nLa variables de entorno para utilizar con esta documentación son las siguientes:\n\n**`host_login_middleware`**: URL para endpoint Obtener Token app\n\n**`middleware-auth-api-key`****:** api-key requerida para utilizar el endpoint Obtener Token app\n\n**`host_middleware`****:** URL para otros endpoints del middleware que requiere el token_app\n\n**`login_username_middleware`****:** username para autenticarse en el middleware y obtener token_app\n\n**`login_password_middleware`****:** password para autenticarse en el middleware y obtener token_app\n\n> Estas variables de entorno serán entregadas al equipo de implementación por Xerpa y serán distintas para los ambientes de QA y PRO","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"25856993","team":293513,"collectionId":"4e622036-5dc7-4ba2-8e66-c5f3ec1321df","publishedId":"2sB3BGHA8f","public":true,"publicUrl":"https://middleware.docs.getxerpa.com","privateUrl":"https://go.postman.co/documentation/25856993-4e622036-5dc7-4ba2-8e66-c5f3ec1321df","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"documentationLayout":"classic-double-column","customisation":{"metaTags":[{"name":"description","value":""},{"name":"title","value":""}],"appearance":{"default":"light","themes":[{"name":"dark","logo":null,"colors":{"top-bar":"212121","right-sidebar":"303030","highlight":"FF6C37"}},{"name":"light","logo":null,"colors":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"}}]}},"version":"8.11.4","publishDate":"2025-08-13T19:42:36.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{"title":"","description":""},"logos":{"logoLight":null,"logoDark":null}},"statusCode":200},"environments":[],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/7eb908413a9a587c0f27186617f2037c5f82c0370f6739c364a8c9006dcdfb49","favicon":"https://getxerpa.com/favicon.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"}],"canonicalUrl":"https://middleware.docs.getxerpa.com/view/metadata/2sB3BGHA8f"}