This page is generated from the contract (data/gateway-v1.json): each operation shows its verb, path, parameters, body, responses, whether it carries an Idempotency-Key, and the equivalent method in all five SDKs. For the end-to-end flow with complete examples, see the implementation guide.

Operations in tag subsidies #

Contract description: Statutory subsidy intake and decisioning (unemployment, housing, …).

MethodPathOperationScopeIdem.
GET/v1/gateway/subsidies/applications/Subsidy application inboxsubsidies:read—
GET/v1/gateway/subsidies/applications/{app_id}/Subsidy application detailsubsidies:read—
POST/v1/gateway/subsidies/applications/{app_id}/decision/Decide a subsidysubsidies:deciderecommended
POST/v1/gateway/subsidies/{subsidy_type}/Submit a subsidy (unemployment, housing, …)subsidies:submitrecommended

Subsidy application inbox #

GET/v1/gateway/subsidies/applications/

  • operationId listSubsidyApplications
  • Authentication X-API-Key · scope subsidies:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
pagequeryinteger
page_sizequeryinteger
searchquerystring
statusquerystring

Responses

CodeDescriptionBody
200Paginated subsidy applications.Page application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.subsidies.list_applications()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Subsidy application detail #

GET/v1/gateway/subsidies/applications/{app_id}/

  • operationId getSubsidyApplication
  • Authentication X-API-Key · scope subsidies:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
app_id requiredpathstringSubsidy application id. E.g.: SUB-2026-000045

Responses

CodeDescriptionBody
200Subsidy application detail.object application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.subsidies.get_application()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Decide a subsidy #

POST/v1/gateway/subsidies/applications/{app_id}/decision/

  • operationId decideSubsidyApplication
  • Authentication X-API-Key · scope subsidies:decide
  • Idempotency-Key recommended (the SDK generates it)

Parameters

NameInTypeDescription
app_id requiredpathstringSubsidy application id. E.g.: SUB-2026-000045
Idempotency-KeyheaderstringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. E.g.: horizonte-2026-06-26-credit-000123

Request body

Content type: application/json · required

Schema SubsidyDecisionIn

FieldTypeDescription
decision requiredstringValues: APPROVE, REJECT. E.g.: "APPROVE"
reasonstring (nullable)E.g.: "Cumple requisitos de permanencia."

Accepts additional fields (additionalProperties): they're forwarded to the engine unchanged.

Responses

CodeDescriptionBody
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.subsidies.decide_application()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.

Submit a subsidy (unemployment, housing, …) #

POST/v1/gateway/subsidies/{subsidy_type}/

  • operationId submitSubsidyApplication
  • Authentication X-API-Key · scope subsidies:submit
  • Idempotency-Key recommended (the SDK generates it)

Parameters

NameInTypeDescription
subsidy_type requiredpathstringSubsidy type slug. E.g.: unemployment
Idempotency-KeyheaderstringClient-generated key that makes a write safely retryable. Replaying the same key returns the original result with idempotent_replay: true; a replay while the original is still in flight returns 409. E.g.: horizonte-2026-06-26-credit-000123

Request body

Content type: application/json · required

Schema SubsidyApplicationIn — Statutory subsidy application. subsidy_type is the path segment (e.g. unemployment).

FieldTypeDescription
afiliado requiredAffiliateRef
external_referencestringE.g.: "HORIZONTE-SUB-2026-000045"
periodstringSettlement period YYYY-MM. E.g.: "2026-06"

Accepts additional fields (additionalProperties): they're forwarded to the engine unchanged.

Responses

CodeDescriptionBody
200Accepted; transaction enqueued / processed.TransactionEnvelope application/json
Possible errors (400, 401, 403, 404, 409, 422, 429, 500, 502, 504) — application/problem+json
400Malformed request.about:blank
401Missing or invalid API key.about:blank
403The key is valid but lacks the required scope, or the source IP is not allow-listed.about:blank
404The requested resource does not exist.about:blank
409Idempotency conflict — same key, original still processing.https://errors.compense.co/gateway/idempotency-conflict
422Request body failed validation.https://errors.compense.co/gateway/validation
429Per-key rate limit or monthly quota exceeded; see Retry-After.https://errors.compense.co/gateway/rate-limited
500Unexpected gateway error; quote the trace_id to support.about:blank
502The processing engine returned an error.https://errors.compense.co/gateway/upstream-error
504The processing engine did not respond in time.https://errors.compense.co/gateway/upstream-error

See problem+json errors for the equivalent exception in each SDK.

Example

SDK method and HTTP request
client.subsidies.submit_application()

Each SDK's methods come from its contract parity suite. The cURL runs against the sandbox; <field> values are placeholders.