La API de Integración de Presupuestos permite que sistemas externos consulten, inserten y gestionen presupuestos generados en Promob. La API sigue una arquitectura RESTful, utiliza autenticación mediante API Key y devuelve datos en formato JSON. Fue desarrollada utilizando Azure Functions.
Características principales:
- Autenticación segura mediante API Key.
Respuestas en formato JSON.
Autenticación
La autenticación se realiza mediante una API Key exclusiva. Todas las solicitudes deben contener el encabezado:
X-Integration-ApiKey: su-api-key-aquí.
Endpoints de la API
La API cuenta con endpoints para consulta y descarga de presupuestos.
Solicitudes
1. Consultar Presupuestos (GET /api/Budgets/SearchBudgets)
Permite buscar presupuestos por período y filtros opcionales.
Respuestas posibles:
- 200 OK: Lista de BudgetInfo en JSON.
- 204 No Content: No se encontraron presupuestos para los filtros aplicados.
- 400 Bad Request: Parámetros inválidos o cuerpo malformado.
- 401 Unauthorized: API Key ausente o inválida.
- 403 Forbidden: API Key inválida.
Ejemplo de solicitud:
GET https://api.promob.com/api/Budgets/SearchBudgets?createdAfter=2024-01-01T00:00:00&createdBefore=2024-12-31T23:59:59&serialNumber=58192707&accountId=3942&systemId=SYS-001
Encabezados:
X-Integration-ApiKey: abc123xyz789
Ejemplo de respuesta (200 OK):
[ { "id":"8e92b1a5-42d1-4b12-a9e8-3f8c109d22b4", "lang":"pt-BR", "createOn":"2026-03-05T14:20:00Z", "currencySymbol":"R$", "connectInfo":{ "projectId":"f9e8d7c6-b5a4-4321-0fed-cba987654321", "projectDesignId":null, "projectDesignVersionId":null }, "systemId":"SYS-999", "accountId":"ACC-888777", "distribution":"Enterprise", "serialnumber":"SN-2026-XPT", "systemRevision":"2026-02-15T08:00:00Z", "promobVersion":"6.1.2.5", "connectVersion":"3.1.0", "metadatas":[ { "id":"CustomerName", "value":"Mariana Oliveira" } ], "paymentTerms":{ "additionalEntries":[ { "id":"ADIT-001", "description":"Tarifa de Instalación", "operationType":"Service", "value":"350.00", "deleted":false, "systemMd5":"mno456pqr789" } ], "terms":[ { "id":"TERM-999", "description":"Pago a Plazos", "hasDownPayment":false, "selected":true, "parcelQuantity":10, "percentualDiscount":5.0, "parcelValue":1200.00, "initialValue":0.00, "parceledTotal":12000.00, "generalTotal":11750.00, "calculusValue":12000.00, "deleted":false, "hasCustomParcels":false } ] }, "pluginId":"9900" }]
2. Obtener Presupuesto por ID (GET /api/Budgets/GetBudgetInfoId/{id})
Devuelve un presupuesto específico basado en su identificador único (GUID).
Respuestas posibles:
- 200 OK: Objeto BudgetInfo devuelto con éxito.
- 204 No Content: Presupuesto no encontrado.
- 400 Bad Request: Identificador inválido o malformado.
- 401 Unauthorized: Fallo de autenticación (API Key ausente o PluginID inválido).
- 403 Forbidden: API Key inválida.
Ejemplo de solicitud:
GET https://api.promob.com/api/Budgets/GetBudgetInfoId/123e4567-e89b-12d3-a456-426614174000
3. Obtener URI de Descarga del Presupuesto (GET /api/Budgets/{budgetId})
Devuelve la URI para descargar el archivo del presupuesto.
Respuestas posibles:
- 200 OK: Objeto BudgetInfoURI devuelto con éxito.
- 204 No Content: Presupuesto no encontrado o no se pudo generar la URI.
- 400 Bad Request: Parámetros inválidos o malformados.
- 401 Unauthorized: No autorizado o encabezados inválidos.
- 403 Forbidden: API Key inválida.
Ejemplo de respuesta:
{ "budgetId": "123e4567-e89b-12d3-a456-426614174000", "uri": "https://api.promob.com/budgets/123e4567-e89b-12d3-a456-426614174000/download"}
Modelos de Datos
A continuación se muestran los principales modelos de datos utilizados por la API. Todas las respuestas siguen el formato JSON.
- BudgetInfo contiene los campos: Id, Lang, CreateOn, CurrencySymbol, SystemId, AccountId, Serialnumber, PromobVersion, ConnectInfo, PaymentTerms, PluginId.
- ConnectInfo contiene: ProjectId, ProjectDesignId y ProjectDesignVersionId.
- PaymentTerms contiene: AdditionalEntries y Terms.
Códigos de Respuesta HTTP
La API utiliza los códigos HTTP estándar para indicar el estado de las solicitudes:
- 200 OK: Éxito con devolución de datos.
- 201 Created: Recurso creado con éxito.
- 204 No Content: Solicitud exitosa sin contenido.
- 400 Bad Request: Error en la solicitud.
- 401 Unauthorized: Autenticación inválida.
- 403 Forbidden: Acceso denegado.
- 404 Not Found: Recurso inexistente.
- 500 Internal Server Error: Error interno del servidor.