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 credits #

Contract description: Credit application intake, decisioning and disbursement (→ BRE pipeline).

MethodPathOperationScopeIdem.
POST/v1/gateway/credits/application/Submit a credit (→ BRE pipeline)credits:submitrecommended
GET/v1/gateway/credits/applications/Credit application inboxcredits:read—
GET/v1/gateway/credits/applications/{app_id}/Credit application detailcredits:read—
POST/v1/gateway/credits/applications/{app_id}/decision/Approve / reject a creditcredits:deciderecommended
POST/v1/gateway/credits/applications/{app_id}/disburse/Disburse a creditcredits:disburserecommended

Submit a credit (→ BRE pipeline) #

POST/v1/gateway/credits/application/

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

Parameters

NameInTypeDescription
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 CreditApplicationIn — Credit application submitted into the BRE pipeline. Proxied to the engine as-is.

FieldTypeDescription
afiliado requiredAffiliateRef
amount requiredMoneyCOP
external_reference requiredstringCaja-side application id; echoed back and used for idempotency correlation. E.g.: "HORIZONTE-CRED-2026-000123"
product_code requiredstringE.g.: "LIBRANZA_12M"
purposestring (nullable)E.g.: "Compra de cartera"
term_months requiredintegerE.g.: 12 Range 1–120.

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.credits.submit_application()

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

Credit application inbox #

GET/v1/gateway/credits/applications/

  • operationId listCreditApplications
  • Authentication X-API-Key · scope credits:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
pagequeryinteger
page_sizequeryinteger
searchquerystring
statusquerystring

Responses

CodeDescriptionBody
200Paginated credit 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.credits.list_applications()

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

Credit application detail #

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

  • operationId getCreditApplication
  • Authentication X-API-Key · scope credits:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
app_id requiredpathstringCredit application id. E.g.: CRED-2026-000123

Responses

CodeDescriptionBody
200Credit 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.credits.get_application()

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

Approve / reject a credit #

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

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

Parameters

NameInTypeDescription
app_id requiredpathstringCredit application id. E.g.: CRED-2026-000123
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 CreditDecisionIn

FieldTypeDescription
approved_amountMoneyCOPRequired when decision is APPROVE.
decision requiredstringValues: APPROVE, REJECT. E.g.: "APPROVE"
reasonstring (nullable)E.g.: "Cumple capacidad de pago."

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.credits.decide_application()

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

Disburse a credit #

POST/v1/gateway/credits/applications/{app_id}/disburse/

  • operationId disburseCreditApplication
  • Authentication X-API-Key · scope credits:disburse
  • Idempotency-Key recommended (the SDK generates it)

Parameters

NameInTypeDescription
app_id requiredpathstringCredit application id. E.g.: CRED-2026-000123
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

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.credits.disburse_application()

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