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

Contract description: PQRS (peticiones, quejas, reclamos y sugerencias) for the entity’s CRM / call center: file on behalf of an affiliate (by document), list with filters, detail with history, respond and change status as the entity, and stats.

MethodPathOperationScopeIdem.
GET/v1/gateway/pqrs/List PQRS (status, type, area, date range, document)pqrs:read—
POST/v1/gateway/pqrs/File a PQRS on behalf of an affiliatepqrs:submitrecommended
GET/v1/gateway/pqrs/stats/PQRS stats (by status, area, type; overdue)pqrs:read—
GET/v1/gateway/pqrs/{pqrs_id}/PQRS detail (responses and status history)pqrs:read—
POST/v1/gateway/pqrs/{pqrs_id}/respond/Respond to a PQRS as the entitypqrs:managerecommended
POST/v1/gateway/pqrs/{pqrs_id}/status/Change the status / priority of a PQRSpqrs:managerecommended

List PQRS (status, type, area, date range, document) #

GET/v1/gateway/pqrs/

  • operationId listPqrs
  • Authentication X-API-Key · scope pqrs:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
statusquerystringFilter by status.
issue_typequerystringFilter by type.
service_areaquerystringFilter by area.
date_fromquerystring (date)Filed on/after (YYYY-MM-DD).
date_toquerystring (date)Filed on/before (YYYY-MM-DD).
origin_channelquerystringFilter by origin channel.
documentquerystringAffiliate document.
external_referencequerystringYour CRM case id.
overduequerybooleanOnly overdue (legal deadline passed, not resolved).
pagequeryinteger
page_sizequeryinteger

Responses

CodeDescriptionBody
200Paginated PQRS (newest first).PqrsPage 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.pqrs.list()

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

File a PQRS on behalf of an affiliate #

POST/v1/gateway/pqrs/

  • operationId submitPqrs
  • Authentication X-API-Key · scope pqrs:submit
  • Idempotency-Key recommended (the SDK generates it)
Requires pqrs:submit. Emits the pqrs.created webhook.

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 PqrsSubmitIn — File a PQRS on behalf of an affiliate. The radicado (PQRS-AAAA-NNNNNN) and the legal deadline (15 business days, Ley 1755/2015) are set by the engine.

FieldTypeDescription
agentstringYour agent/user reference (traceability). E.g.: "ana.p" Max. 80 characters.
description requiredstringE.g.: "El afiliado reporta un cobro que no reconoce."
document requiredstringAffiliate national document. E.g.: "1032456789"
electronic_notification_consented requiredbooleanREQUIRED: whether the affiliate accepted electronic notification (Ley 1437 art. 56).
external_referencestringCase id in your CRM. E.g.: "CRM-88231" Max. 100 characters.
issue_type requiredstringValues: petition, complaint, claim, suggestion.
origin_channelstringValues: web, call_center, phone, email, in_person, chat, whatsapp, crm, api, other.
related_credit_application_idstring (nullable)
related_credit_idstring
related_subsidy_active_idstring
related_subsidy_application_idstring (nullable)
related_typestring (nullable)Values: credit_application, subsidy_application, credit, subsidy, .
service_area requiredstringValues: subsidies, credits, health, marketplace, benefits, wallet, payments, general.
subject requiredstringE.g.: "Cobro no reconocido" Max. 255 characters.

Responses

CodeDescriptionBody
200Processed; data is the PQRS (with history).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.pqrs.submit()

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

PQRS stats (by status, area, type; overdue) #

GET/v1/gateway/pqrs/stats/

  • operationId getPqrsStats
  • Authentication X-API-Key · scope pqrs:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
issue_typequerystringFilter by type.
service_areaquerystringFilter by area.
date_fromquerystring (date)Filed on/after (YYYY-MM-DD).
date_toquerystring (date)Filed on/before (YYYY-MM-DD).

Responses

CodeDescriptionBody
200Aggregated counts.PqrsStats 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.pqrs.stats()

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

PQRS detail (responses and status history) #

GET/v1/gateway/pqrs/{pqrs_id}/

  • operationId getPqrs
  • Authentication X-API-Key · scope pqrs:read
  • Idempotency-Key not applicable

Parameters

NameInTypeDescription
pqrs_id requiredpathstringPQRS id (uuid) or radicado. E.g.: PQRS-2026-000123

Responses

CodeDescriptionBody
200The PQRS.Pqrs 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.pqrs.get()

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

Respond to a PQRS as the entity #

POST/v1/gateway/pqrs/{pqrs_id}/respond/

  • operationId respondPqrs
  • Authentication X-API-Key · scope pqrs:manage
  • Idempotency-Key recommended (the SDK generates it)
Requires pqrs:manage. Only while opened / in_progress / escalated (else 409). is_final resolves it. Emits pqrs.responded (+ pqrs.status_changed when final).

Parameters

NameInTypeDescription
pqrs_id requiredpathstringPQRS id (uuid) or radicado. E.g.: PQRS-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 PqrsRespondIn

FieldTypeDescription
agentstringMax. 80 characters.
is_finalbooleanA final response leaves the PQRS resolved.
response_text requiredstringE.g.: "Se reversó el cobro el 28-oct."

Responses

CodeDescriptionBody
200Processed; data is the PQRS (with history).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.pqrs.respond()

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

Change the status / priority of a PQRS #

POST/v1/gateway/pqrs/{pqrs_id}/status/

  • operationId changePqrsStatus
  • Authentication X-API-Key · scope pqrs:manage
  • Idempotency-Key recommended (the SDK generates it)
Requires pqrs:manage. Invalid transitions are 409. Emits pqrs.status_changed when the status actually changes.

Parameters

NameInTypeDescription
pqrs_id requiredpathstringPQRS id (uuid) or radicado. E.g.: PQRS-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 PqrsStatusIn — Change status following the PQRS state machine: closed is terminal, resolved can only be closed; repeating the current status is an idempotent no-op.

FieldTypeDescription
agentstringMax. 80 characters.
notestringMax. 1000 characters.
prioritystringValues: low, normal, high, urgent.
status requiredstringValues: opened, in_progress, escalated, resolved, closed.

Responses

CodeDescriptionBody
200Processed; data is the PQRS (with history).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.pqrs.change_status()

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