---
title: "SECOP Contract Record"
method: POST
path: "/co/secop/contract-record/v1"
tags: ["Colombia", "SECOP"]
---

# SECOP Contract Record

`POST /co/secop/contract-record/v1`

## Request

- Base URL: `https://api.croma.run`
- URL: `https://api.croma.run/co/secop/contract-record/v1`
- Auth: HTTP bearer

Read one contract by the platform-prefixed `id` a SECOP search returned (e.g. `secop_ii:CO1.PCCNTR.4168447`). Works for SECOP I and SECOP II alike and answers in milliseconds; for the live view of a SECOP II contract with its additions, guarantees and delivery plan attached, use `secop-contract` with the contract id instead.

**Dataset endpoint**: answers from the whole source in milliseconds and carries `as_of`.

## Headers

- `Idempotency-Key` string

## Request body

- object
  - `record_id` string, required: Record id from a SECOP search result (`id`), platform-prefixed: e.g. `secop_ii:CO1.PCCNTR.4168447`, `secop_i:20-11-10442331`.

## Response `200`

Successful response

- SecopContractRecordResponse
  - `data` SecopContractRecordData, required
    - `as_of` string, nullable, required
    - `found` boolean, required: Whether a contract carries this id. When false, `contract` is null.
    - `record_id` string, required
    - `contract` object, nullable, required
      - `id` string, required: Stable identifier, `<platform>:<contract id>` (e.g. `secop_ii:CO1.PCCNTR.4168447`).
      - `platform` 'secop_i' | 'secop_ii', required: Which system published the row: `secop_ii` (the transactional platform, 2015 onward) or `secop_i` (the publication register, 2004 onward).
      - `contract_id` string, nullable, required: The contract id as its own platform numbers it.
      - `reference` string, nullable, required: The entity's own reference for the contract.
      - `process_id` string, nullable, required: Id of the process the contract came out of, prefixed like `id`, so it joins the processes dataset.
      - `portfolio_id` string, nullable, required: SECOP II proceso de compra (`CO1.BDOS.*`) the contract belongs to.
      - `award_id` string, nullable, required: Id of the adjudicación the contract implements (SECOP I).
      - `entity` string, nullable, required: Name of the contracting entity.
      - `entity_nit` string, nullable, required: NIT of the contracting entity, digits only, no verification digit.
      - `entity_code` string, nullable, required: The entity's internal SECOP code.
      - `entity_level` string, nullable, required: Nivel: `NACIONAL` or `TERRITORIAL`.
      - `entity_order` string, nullable, required: Orden of the entity within the state.
      - `entity_sector` string, nullable, required: Sector the entity belongs to (salud, educación, defensa, ...).
      - `entity_branch` string, nullable, required: Rama of the state the entity belongs to.
      - `entity_centralized` string, nullable, required: `Centralizada` or `Descentralizada`; a label upstream, not a boolean.
      - `entity_department` string, nullable, required: Department the entity sits in.
      - `entity_city` string, nullable, required: Municipality the entity sits in.
      - `sub_unit` string, nullable, required: Sub unidad ejecutora (SECOP I).
      - `provider` string, nullable, required: Name or razón social of the contractor.
      - `provider_document` string, nullable, required: Contractor's document, digits only: a NIT for a company, a cédula when the contractor is a natural person. The one field to filter by to see everything a person or company has contracted with the state.
      - `provider_document_type` string, nullable, required: Kind of document `provider_document` is (NIT, cédula de ciudadanía, ...).
      - `provider_code` string, nullable, required: The provider's internal SECOP code.
      - `provider_department` string, nullable, required: Department of the contractor.
      - `provider_city` string, nullable, required: Municipality of the contractor.
      - `provider_is_group` boolean, nullable, required: True when the contractor is a plural structure: a consorcio or a unión temporal.
      - `provider_is_sme` boolean, nullable, required: True when the contractor is registered as a PyME / MiPyme.
      - `provider_size` string, nullable, required: Tamaño MiPyme as SECOP I states it (micro, pequeña, mediana).
      - `legal_rep_name` string, nullable, required: Name of the contractor's legal representative.
      - `legal_rep_document` string, nullable, required: Document of the contractor's legal representative, digits only. Filter by it to see every contract a person signed on behalf of a company.
      - `legal_rep_document_type` string, nullable, required: Kind of document the legal representative holds.
      - `legal_rep_nationality` string, nullable, required: Nationality of the legal representative.
      - `legal_rep_domicile` string, nullable, required: Domicile of the legal representative.
      - `legal_rep_gender` string, nullable, required: Gender of the legal representative, as the platform records it.
      - `object` string, nullable, required: Objeto del contrato: what the contract is for, at signature.
      - `description` string, nullable, required: Descripción del proceso the contract came out of.
      - `unspsc_code` string, nullable, required: Main UNSPSC category code.
      - `contract_type` string, nullable, required: Tipo de contrato (obra, prestación de servicios, suministro, consultoría, ...).
      - `modality` string, nullable, required: Modalidad the contract was procured under.
      - `modality_justification` string, nullable, required: The legal ground given for the modality.
      - `status` string, nullable, required: Estado del contrato in the platform's own words.
      - `delivery_conditions` string, nullable, required: Condiciones de entrega.
      - `location` string, nullable, required: Localización recorded for the contract.
      - `execution_address` string, nullable, required: Address the contract is executed at (SECOP II).
      - `execution_locations` string, nullable, required: Municipalities of execution (SECOP I).
      - `value` number, nullable, required: Value of the contract in COP at signature, before additions.
      - `additions_value` number, nullable, required: Total added to the contract afterwards, in COP.
      - `value_with_additions` number, nullable, required: Value including every addition, in COP. The number to rank spending by.
      - `invoiced_value` number, nullable, required: Invoiced to date, in COP (SECOP II).
      - `paid_value` number, nullable, required: Paid to date, in COP (SECOP II).
      - `pending_payment_value` number, nullable, required: Still to be paid, in COP (SECOP II).
      - `pending_execution_value` number, nullable, required: Still to be executed, in COP (SECOP II).
      - `advance_payment_enabled` boolean, nullable, required: Whether the contract allows an advance payment.
      - `advance_payment_value` number, nullable, required: Advance payment agreed, in COP.
      - `amortized_value` number, nullable, required: Advance amortized to date, in COP.
      - `pending_amortization_value` number, nullable, required: Advance still to be amortized, in COP.
      - `cdp_balance` number, nullable, required: Saldo CDP (certificado de disponibilidad presupuestal), in COP.
      - `vigencia_balance` number, nullable, required: Saldo vigencia, in COP.
      - `funding_origin` string, nullable, required: Origen de los recursos, as the platform labels it.
      - `funding_national_budget` number, nullable, required: Share funded by the Presupuesto General de la Nación, in COP.
      - `funding_participations` number, nullable, required: Share funded by the Sistema General de Participaciones, in COP.
      - `funding_royalties` number, nullable, required: Share funded by the Sistema General de Regalías, in COP.
      - `funding_own_territorial` number, nullable, required: Share funded by a mayor's or governor's own resources, in COP.
      - `funding_credit` number, nullable, required: Share funded by credit, in COP.
      - `funding_other` number, nullable, required: Share funded from other sources (in kind, private, cooperation), in COP.
      - `expense_destination` string, nullable, required: Destino del gasto: `Inversión` or `Funcionamiento`.
      - `budget_position` string, nullable, required: Posición del rubro presupuestal (SECOP I).
      - `budget_name` string, nullable, required: Nombre del rubro presupuestal (SECOP I).
      - `budget_value` number, nullable, required: Value charged to that rubro, in COP (SECOP I).
      - `bpin_code` string, nullable, required: BPIN code of the investment project the contract belongs to.
      - `sign_date` string, nullable, required: When the contract was signed, `yyyy-mm-dd`.
      - `start_date` string, nullable, required: When execution starts, `yyyy-mm-dd`.
      - `end_date` string, nullable, required: When execution ends, `yyyy-mm-dd`.
      - `liquidation_start_date` string, nullable, required: Start of the liquidation stage, `yyyy-mm-dd`.
      - `liquidation_end_date` string, nullable, required: End of the liquidation stage, `yyyy-mm-dd`.
      - `liquidation_date` string, nullable, required: Fecha de liquidación, `yyyy-mm-dd` (SECOP I).
      - `extension_notice_date` string, nullable, required: When the entity gave notice of an extension.
      - `updated_date` string, nullable, required: When the source last touched the row, `yyyy-mm-dd`. Null on 42% of SECOP II contracts, so never treat it as complete.
      - `year` number, nullable, required: Calendar year of `sign_date`.
      - `duration` string, nullable, required: Stated duration of the contract.
      - `duration_days` number, nullable, required: Plazo de ejecución in days (SECOP I).
      - `added_days` number, nullable, required: Days added to the contract by its modifications.
      - `can_be_extended` boolean, nullable, required: Whether the contract may be extended.
      - `requires_liquidation` boolean, nullable, required: Whether the contract carries a liquidation stage.
      - `has_environmental_obligation` boolean, nullable, required: Whether the contract carries an environmental obligation.
      - `has_post_consumption_obligations` boolean, nullable, required: Whether it carries post-consumption obligations.
      - `has_reversion` boolean, nullable, required: Whether assets revert to the state at the end.
      - `is_post_conflict` boolean, nullable, required: Whether the contract is marked as post-conflict spending.
      - `peace_pillar` string, nullable, required: Pilar del Acuerdo de Paz the spending is attributed to.
      - `peace_point` string, nullable, required: Punto del Acuerdo de Paz the spending is attributed to.
      - `standard_documents` string, nullable, required: Documentos tipo / pliegos tipo applied to the process.
      - `standard_documents_sector` string, nullable, required: Sector of the pliegos tipo applied.
      - `supervisor` string, nullable, required: Name of the contract's supervisor.
      - `supervisor_document` string, nullable, required: Document of the supervisor.
      - `expense_orderer` string, nullable, required: Name of the ordenador del gasto.
      - `expense_orderer_document` string, nullable, required: Document of the ordenador del gasto.
      - `payment_orderer` string, nullable, required: Name of the ordenador de pago.
      - `payment_orderer_document` string, nullable, required: Document of the ordenador de pago.
      - `url` string, nullable, required: Public page for the contract or its process.

## Other responses

- `400`: Invalid request body
- `401`: Missing or invalid API key
- `429`: Rate limit exceeded
- `500`: Internal error

---

[API](https://skmtc.dev/usecroma/apis/croma-marketplace-api.md) · [All operations](https://skmtc.dev/usecroma/apis/croma-marketplace-api/llms.txt) · [OpenAPI document](https://skmtc.dev/usecroma/apis/croma-marketplace-api/revisions/df016cdb29d7?raw)
