Skip to main content

Supplier Portal — Catalogs & Tolerance

These endpoints give a supplier (prestador) the reference data needed to work with their own invoices: the list of invoice states, the catalog of billing concepts, and the tolerance currently resolved for their account. They are read-only and scoped to the supplier behind the token.

Supplier account required

The authenticated user must be linked to a supplier (prestador). Requests from a non-supplier account are rejected with 403 FORBIDDEN. All endpoints require a valid JWT token, API key, and tenant header. See Authentication.


Invoice States Catalog​

Retrieve the catalog of invoice states. Use these codes when filtering invoices by status.

GET/apidev/v1/supplier-portal/catalogs/states
PermissionAPICLI_PORTALPROVEEDOR_READ
Rate Limit30 req/min (sliding window)

Request Headers​

Every request to a protected endpoint requires these headers:

HeaderRequiredDescription
AuthorizationYesBearer token obtained from the Login endpoint. Format: Bearer <token>
X-API-KeyYesCompany integration key provided during onboarding. Format: gtk_xxx...
tenantYesYour assigned tenant domain (default: geotareas.com) — always send your assigned tenant
Content-TypeConditionalapplication/json — required for POST and PUT requests

Response Fields — data[]​

FieldTypeDescription
idnumberState identifier (range 100–106)
codestringState code: PEN, ENV, APR, REV, REC, AJU, LIQ
namestringState display name

Code Example​

curl -s "https://$TENANT/apidev/v1/supplier-portal/catalogs/states" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Example Response​

{
"success": true,
"data": [
{ "id": 100, "code": "PEN", "name": "Pendiente" },
{ "id": 101, "code": "ENV", "name": "Enviada" },
{ "id": 102, "code": "APR", "name": "Aprobada" },
{ "id": 103, "code": "REV", "name": "En revisión" },
{ "id": 104, "code": "REC", "name": "Rechazada" },
{ "id": 105, "code": "AJU", "name": "Ajustada" },
{ "id": 106, "code": "LIQ", "name": "Liquidada" }
],
"meta": {}
}

Concepts Catalog​

Retrieve the catalog of billing concepts available to the supplier. Concepts describe the line items on an invoice and are typed as a charge, a surcharge, or a discount.

GET/apidev/v1/supplier-portal/catalogs/concepts
PermissionAPICLI_PORTALPROVEEDOR_READ
Rate Limit30 req/min (sliding window)

Response Fields — data[]​

FieldTypeDescription
idstringConcept identifier
codestringConcept code
namestringConcept display name
typestringG (charge), R (surcharge), or D (discount)
ordernumberDisplay order

Code Example​

curl -s "https://$TENANT/apidev/v1/supplier-portal/catalogs/concepts" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Example Response​

{
"success": true,
"data": [
{ "id": "100", "code": "MO", "name": "Mano de obra", "type": "G", "order": 1 },
{ "id": "101", "code": "REP", "name": "Repuestos", "type": "G", "order": 2 },
{ "id": "102", "code": "URG", "name": "Recargo por urgencia", "type": "R", "order": 3 },
{ "id": "103", "code": "DESC", "name": "Descuento por volumen", "type": "D", "order": 4 }
],
"meta": {}
}

Effective Tolerance​

Retrieve the tolerance currently resolved for the authenticated supplier. A per-supplier setting takes priority; when none is set, the company global tolerance applies; when neither is set, the source is reported as ninguna.

GET/apidev/v1/supplier-portal/tolerance/effective
PermissionAPICLI_PORTALPROVEEDOR_READ
Rate Limit30 req/min (sliding window)

Response Fields — data​

FieldTypeDescription
modestring | nullTolerance mode: PCT (percentage), ABS (absolute), AMB (both), or null when none applies
tolerance_pctnumber | nullAllowed percentage difference
tolerance_absnumber | nullAllowed absolute difference
auto_approvebooleanWhether amounts within tolerance are approved automatically
sourcestringWhere the tolerance comes from: proveedor, global, or ninguna

Code Example​

curl -s "https://$TENANT/apidev/v1/supplier-portal/tolerance/effective" \
-H "Authorization: Bearer $TOKEN" \
-H "X-API-Key: $APIKEY" \
-H "tenant: $TENANT"

Example Response​

{
"success": true,
"data": {
"mode": "PCT",
"tolerance_pct": 5.0,
"tolerance_abs": null,
"auto_approve": true,
"source": "proveedor"
},
"meta": {}
}

Errors​

CodeHTTPApplies toDescription
UNAUTHORIZED401AllMissing or invalid JWT token / API key
TOKEN_EXPIRED401AllThe JWT was valid but has expired (1 hour lifetime)
FORBIDDEN403AllThe account is not a supplier — "This endpoint requires a supplier account." — or lacks APICLI_PORTALPROVEEDOR_READ
RATE_LIMITED429AllExceeded the endpoint rate limit

  • Invoices — list, declare, and validate invoices
  • Settlements — group approved invoices into settlements