Listar conexiones
curl --request GET \
--url https://api.tupana.ai/v2/connections/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.tupana.ai/v2/connections/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tupana.ai/v2/connections/', 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.tupana.ai/v2/connections/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tupana.ai/v2/connections/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tupana.ai/v2/connections/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tupana.ai/v2/connections/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"connection_id": "cred_2959001189629508554",
"company_id": "ment_3672486436546233854",
"provider": "sii",
"type": "tax",
"name": "1 A 1 ARQUITECTURA Y CONSTRUCCIÓN SPA",
"tax_id": "77.918.412-9",
"environment": "sandbox",
"status": "active",
"last_verified_at": "2023-11-07T05:31:56Z",
"business_activity": "<string>",
"activity_code": 123,
"address": "<string>",
"district": "<string>",
"city": "<string>"
}
],
"total": 123,
"limit": 123
}Conexiones
Listar conexiones
Las empresas conectadas a tu integración. Es también el paso “empresa emisora” de cualquier flujo: cada conexión trae el giro, su código y la dirección, así que no necesitas guardarlos — mandas company_id y la API completa el emisor.
GET
/
connections
/
Listar conexiones
curl --request GET \
--url https://api.tupana.ai/v2/connections/ \
--header 'Authorization: <api-key>'import requests
url = "https://api.tupana.ai/v2/connections/"
headers = {"Authorization": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: '<api-key>'}};
fetch('https://api.tupana.ai/v2/connections/', 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.tupana.ai/v2/connections/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.tupana.ai/v2/connections/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.tupana.ai/v2/connections/")
.header("Authorization", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.tupana.ai/v2/connections/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"data": [
{
"connection_id": "cred_2959001189629508554",
"company_id": "ment_3672486436546233854",
"provider": "sii",
"type": "tax",
"name": "1 A 1 ARQUITECTURA Y CONSTRUCCIÓN SPA",
"tax_id": "77.918.412-9",
"environment": "sandbox",
"status": "active",
"last_verified_at": "2023-11-07T05:31:56Z",
"business_activity": "<string>",
"activity_code": 123,
"address": "<string>",
"district": "<string>",
"city": "<string>"
}
],
"total": 123,
"limit": 123
}Las empresas conectadas a tu integración. Una conexión es lo único que tu SaaS
conoce de una empresa: nunca ves la clave del SII, porque la entrega el usuario
final dentro de Tupana Link.
Es además el paso empresa emisora de cualquier flujo. Cada conexión trae el
giro, su código y la dirección, así que no necesitas guardarlos: mandas
company_id al emitir y la API completa el emisor.
Buscar
?search= filtra por nombre o RUT, con un mínimo de 2 caracteres — con una
letra, “buscar” sería traer todo. Menos de 2 responde 400.
curl https://api.tupana.ai/v2/connections/?search=arquitectura \
-H "Authorization: Api-Key TU_API_KEY"
Paginar
limit viene en 25 y se acota a 100. El total va aparte del largo de data
a propósito: si tienes más conexiones de las que pediste, te enteras en vez de
recibir un corte silencioso.
Estado
status es active mientras la conexión sirve, y requires_action cuando la
clave dejó de funcionar. En ese caso no hay nada que reintentar desde tu lado:
el usuario final tiene que reconectar la empresa con Tupana Link.Authorizations
API Key para autenticación. Debe proporcionarse en el header Authorization con el formato: 'Api-Key YOUR-API-KEY' (incluye el prefijo 'Api-Key ' seguido de tu API key)
Query Parameters
Filtra por nombre o RUT. Mínimo 2 caracteres.
Minimum string length:
2Conexiones por página. Se acota a 100.
Required range:
1 <= x <= 100