curl --request POST \
--url https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resolution_number": "18764000012345",
"prefix": "CONT",
"min_number": 1,
"max_number": 5000,
"start_date": "2026-01-01",
"end_date": "2027-12-31"
}
'import requests
url = "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency"
payload = {
"resolution_number": "18764000012345",
"prefix": "CONT",
"min_number": 1,
"max_number": 5000,
"start_date": "2026-01-01",
"end_date": "2027-12-31"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
resolution_number: '18764000012345',
prefix: 'CONT',
min_number: 1,
max_number: 5000,
start_date: '2026-01-01',
end_date: '2027-12-31'
})
};
fetch('https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'resolution_number' => '18764000012345',
'prefix' => 'CONT',
'min_number' => 1,
'max_number' => 5000,
'start_date' => '2026-01-01',
'end_date' => '2027-12-31'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency"
payload := strings.NewReader("{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}"
response = http.request(request)
puts response.read_body{
"prefix": "SETP",
"resolution_number": "18760000001",
"min_number": 990000000,
"max_number": 995000000,
"start_date": "2019-01-19",
"end_date": "2030-01-19",
"technical_key": "fc8eac422eba16e22ffd8c6f94b3f40a6e38162c"
}{
"error": "resolution must have a prefix"
}{
"error": "missing enrollment"
}{
"error": "not found"
}{
"error": "internal error"
}Upload contingency resolution
Upload a DIAN contingency numbering resolution for a registered Colombian supplier.
curl --request POST \
--url https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"resolution_number": "18764000012345",
"prefix": "CONT",
"min_number": 1,
"max_number": 5000,
"start_date": "2026-01-01",
"end_date": "2027-12-31"
}
'import requests
url = "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency"
payload = {
"resolution_number": "18764000012345",
"prefix": "CONT",
"min_number": 1,
"max_number": 5000,
"start_date": "2026-01-01",
"end_date": "2027-12-31"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
resolution_number: '18764000012345',
prefix: 'CONT',
min_number: 1,
max_number: 5000,
start_date: '2026-01-01',
end_date: '2027-12-31'
})
};
fetch('https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'resolution_number' => '18764000012345',
'prefix' => 'CONT',
'min_number' => 1,
'max_number' => 5000,
'start_date' => '2026-01-01',
'end_date' => '2027-12-31'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency"
payload := strings.NewReader("{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/resolutions/contingency")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"resolution_number\": \"18764000012345\",\n \"prefix\": \"CONT\",\n \"min_number\": 1,\n \"max_number\": 5000,\n \"start_date\": \"2026-01-01\",\n \"end_date\": \"2027-12-31\"\n}"
response = http.request(request)
puts response.read_body{
"prefix": "SETP",
"resolution_number": "18760000001",
"min_number": 990000000,
"max_number": 995000000,
"start_date": "2019-01-19",
"end_date": "2030-01-19",
"technical_key": "fc8eac422eba16e22ffd8c6f94b3f40a6e38162c"
}{
"error": "resolution must have a prefix"
}{
"error": "missing enrollment"
}{
"error": "not found"
}{
"error": "internal error"
}Authorizations
Authenticate using a valid Invopop enrollment token in the Bearer
scheme.
Example: Authorization: Bearer <token>
Path Parameters
ID of the org.Party silo entry the supplier was registered with.
"5b45453c-cdd0-11ed-afa1-0242ac120002"
Body
Number of the DIAN contingency numbering resolution, as shown on form 1876.
"18764000012345"
Series prefix authorized by the resolution. Use it as the
series of the contingency invoices.
"CONT"
First invoice code authorized in the range.
1
Last invoice code authorized in the range.
5000
First day the resolution is valid.
"2026-01-01"
Last day the resolution is valid.
"2027-12-31"
Response
The uploaded contingency resolution, as stored.
Series prefix authorized by the resolution. Use it as the
invoice series.
"SETP"
Number of the DIAN numbering resolution.
"18760000001"
First invoice code authorized in the range.
990000000
Last invoice code authorized in the range.
995000000
First day the resolution is valid.
"2019-01-19"
Last day the resolution is valid.
"2030-01-19"
Technical key the DIAN assigned to the range, used to compute each invoice's CUFE. Empty for contingency resolutions.
"fc8eac422eba16e22ffd8c6f94b3f40a6e38162c"
Was this page helpful?