Submit the DIAN test set
curl --request POST \
--url https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"test_set_id": "a70562e0-631e-4ceb-aa65-36887b57dc17"
}
'import requests
url = "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement"
payload = { "test_set_id": "a70562e0-631e-4ceb-aa65-36887b57dc17" }
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({test_set_id: 'a70562e0-631e-4ceb-aa65-36887b57dc17'})
};
fetch('https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement', 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}/enablement",
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([
'test_set_id' => 'a70562e0-631e-4ceb-aa65-36887b57dc17'
]),
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}/enablement"
payload := strings.NewReader("{\n \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\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}/enablement")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement")
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 \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\n}"
response = http.request(request)
puts response.read_body{
"status": "pending"
}{
"error": "the DIAN TestSetId is required"
}{
"error": "missing enrollment"
}{
"error": "not found"
}{
"error": "internal error"
}Colombia
Submit test set
Submit the DIAN enablement test set for a registered supplier using the TestSetId obtained from the DIAN enablement portal. The test documents are then emitted to the DIAN on the supplier’s behalf.
POST
/
apps
/
gov-co
/
v1
/
entries
/
{silo_entry_id}
/
enablement
Submit the DIAN test set
curl --request POST \
--url https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"test_set_id": "a70562e0-631e-4ceb-aa65-36887b57dc17"
}
'import requests
url = "https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement"
payload = { "test_set_id": "a70562e0-631e-4ceb-aa65-36887b57dc17" }
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({test_set_id: 'a70562e0-631e-4ceb-aa65-36887b57dc17'})
};
fetch('https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement', 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}/enablement",
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([
'test_set_id' => 'a70562e0-631e-4ceb-aa65-36887b57dc17'
]),
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}/enablement"
payload := strings.NewReader("{\n \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\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}/enablement")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.invopop.com/apps/gov-co/v1/entries/{silo_entry_id}/enablement")
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 \"test_set_id\": \"a70562e0-631e-4ceb-aa65-36887b57dc17\"\n}"
response = http.request(request)
puts response.read_body{
"status": "pending"
}{
"error": "the DIAN TestSetId is required"
}{
"error": "missing enrollment"
}{
"error": "not found"
}{
"error": "internal error"
}Submits the DIAN enablement test set using the TestSetId from the DIAN enablement portal. The test documents are emitted to the DIAN on the supplier’s behalf, and the workflow’s Wait for DIAN enablement step picks up the outcome automatically.
Use this endpoint only after running the supplier registration workflow. It responds
400 when a test set is already awaiting the DIAN outcome, the supplier is already enabled, or a previous enablement failed. Run the registration workflow again to restart a failed enablement.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.
Example:
"5b45453c-cdd0-11ed-afa1-0242ac120002"
Body
application/json
TestSetId issued by the DIAN enablement portal for the supplier's e-invoicing software.
Example:
"a70562e0-631e-4ceb-aa65-36887b57dc17"
Response
Test set submitted, the enablement is now pending the DIAN outcome.
Current enablement state. Omitted until a test set has been submitted.
pending: test set submitted, awaiting the DIAN outcome.accepted: the DIAN accepted the test set; the supplier is enabled.failed: the DIAN rejected the test set or the submission failed.
Available options:
pending, accepted, failed Example:
"pending"
Was this page helpful?