address.country: "COL" and the identification details below.
Changing the customer’s country does not configure the issuing business.
Before you start
Complete Colombia issuer setup. Confirm the selected team, provider credentials, numbering configuration, and test environment with the owner. The public team API does not expose the provider selection. A saved Colombian customer does not configure the issuer.Customer identification
These fields are accepted on a saved customer and on an embedded invoice customer. They are optional in the shared input schema; supplying a contact does not guarantee that its information is sufficient for DIAN issuance.
Supply the recipient’s actual classification instead of relying on fallbacks.
The mapper removes
R-99-PN when it is combined with an O-* responsibility.
See the customer API reference for the full accepted document-code list.
Fiscal responsibility codes
These are the five values accepted by the API. Use the recipient’s actual registered responsibilities; a default is not a determination of their tax status.
DIAN’s validation FAQ, question 1
explains this five-code list. Consult its current technical documentation
and regulations
for the applicable requirements.
fiscal_responsibilities and tribute_code are separate
fields: do not infer IVA responsibility solely from R-99-PN.
Invoice compatibility fields
The publicPOST /invoices/income validator still requires these fields for Colombia:
Send the public API code
"03" for a bank transfer. Although the Colombian provider
uses "47", the current income and draft request validators do not accept "47"
as payment_form. Provider payloads and public API requests have different schemas.1, can be rejected before
the request reaches Factus. The provider adapter rounds an accepted rate to two decimals.
Do not rely on omitted or invalid rates producing an invoice with unchanged amounts.
Credit invoices and item fields
The provider requires a due date for a credit invoice. Its adapter readspayment_due_date, but that field is not exposed by the current public income or draft
request schema. The Mexico PPD and payment-complement recipe is therefore not a verified
Colombian credit-invoice workflow.
The public item schema exposes description, quantity, unit_price, product_key,
unit_key, and taxes. The Colombian adapter uses the product key as an item reference
fallback; it does not use the Mexican unit_key as its DIAN unit code. Provider-only
fields such as unit_measure_code are not exposed by this public item schema.
Do not copy a direct Factus item payload into a gigstack request.
tax_system and Mexican SAT catalogs do not replace Colombian identification,
responsibility, or municipality codes.
Issuer setup and verification
The issuing team needs its Colombian provider credentials and numbering configuration for the selected environment. Its test and live configurations are separate. This page was checked against the public request schemas and Colombian provider mappings on October 8, 2026. It has not been exercised end to end with a Colombian test issuer. The existing staging verification covers the Mexican examples; it does not prove Colombian issuance, credit notes, or cancellation behavior.First immediate-payment invoice
Case: a Colombian test issuer invoices one service for COP 100,000 plus illustrative 19% IVA, paid immediately by bank transfer. The intended total is COP 119,000. Use the classification and taxes appropriate to your actual transaction.The requests below were reviewed against the public validators and Colombian provider
mapping. They have not been executed with a Colombian test issuer. The expected
response fields are source-reviewed, not captured test results. Test recipient data must
come from your approved provider test setup; no universal Colombian fixture is assumed.
1. Create the Colombian test recipient
Use Bash withcurl and jq. Set GIGSTACK_BASE_URL and GIGSTACK_API_KEY with the
quickstart environment commands, then check the
environment and key distinction. Supply CO_TEST_NIT without the verification digit,
CO_TEST_LEGAL_NAME, and a unique CO_CUSTOMER_REFERENCE locally from your approved test
setup. The example models a domestic legal entity, IVA responsible, with no listed
special fiscal responsibility, located in Bogotá (11001). Adjust those classifications
and location to the recipient before submitting.
201 for a new customer or 200 when the search reuses one. Inspect the returned
recipient details before continuing: search.update: false does not refresh an existing
record. Mexico SAT validation fields do not establish DIAN validity.
2. Prepare and review the invoice
SetCO_ORDER_REFERENCE to the stable reference for this one invoice. use: "G03"
below is only a compatibility string accepted by the shared API; the Colombia adapter
does not transmit it as a DIAN fiscal classification. Likewise, product_key provides
an item reference fallback; its Mexican classification meaning does not apply here.
PUE selects
immediate payment in the adapter. This request records an invoice; it does not collect
the bank transfer or register a payment record.
3. Issue only after review and authorization
POST /invoices/income issues immediately through the configured provider.
200 with data.uuid. Preserve that value
as an opaque identifier: the Colombian adapter derives it from the provider’s CUFE,
CUDE, or document number; do not require a Mexican UUID format. Verify the stored
recipient, COP currency, intended totals, and status: "valid". If any check fails,
retain the response and investigate before another issuance attempt.
Recover after a timeout
Keep the same business reference. Look up the original invoice by the exactidempotency_key filter; do not add metadata filters to this lookup:
CLIENT_ID, test mode, COP currency and
COP 119,000 total before treating it as your completed invoice. Save its uuid and read
that invoice again. A different customer or amount is a reference conflict to investigate.
Zero matches does not prove issuance failed. The provider may have issued a document
before gigstack persisted it. Do not assume the Mexican PAC retry guarantees establish
identical Colombian provider behavior. For an ambiguous result, ask
support@gigstack.io to reconcile the provider document,
providing the team, environment/mode, business reference, request time and redacted error.
Never include the API key or provider credentials.
Colombian annulment produces a credit note and can leave the original invoice valid.
Do not apply the Mexican cancellation completion check to Colombia.
Colombian credit and annulment flows remain outside the end-to-end verification described here.