Inicio Rápido
Para una integración más amigable, se muestran ejemplos de consumo a la API mediante algunos lenguajes de programación. Puedes descargar colecciones de los clientes HTTP más famosos como Insomnia y Postman.
Solicitud CIEC
<?php
$curl = curl_init();
$payload = [
"rfc" => "AAA010101AAA",
"ciec" => "C13C",
"solicitud" => [
"ejercicio" => 2024,
"tipo" => "I",
"tipo_factura" => "E",
"regimen" => "601",
"regimen_idc" => "601",
"marca_decreto" => false,
],
];
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.csfacturacion.com/visor-sat/stats",
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($payload),
CURLOPT_HTTPHEADER => [
"Accept: application/json",
"Authorization: Basic am9obkBleGFtcGxlLmNvbTphYmMxMjM=",
"Content-Type: application/json",
"User-Agent: csf/2023.5.8"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
using System.Net.Http;
using System.Net.Http.Headers;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.csfacturacion.com/visor-sat/stats");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Basic QUFBMDEwMTAxQUFBOmNpZWM=");
request.Headers.Add("User-Agent", "csf/2023.5.8");
request.Content = new StringContent("{\n\t\"rfc\": \"AAA010101AAA\",\n\t\"ciec\": \"CIEC\",\n\t\"solicitud\": {\n\t\t\"ejercicio\": 2024,\n\t\t\"tipo\": \"I\",\n\t\t\"tipo_factura\": \"E\",\n\t\t\"regimen\": \"601\",\n\t\t\"regimen_idc\": \"601\",\n\t\t\"marca_decreto\": false\n\t}\n}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.csfacturacion.com/visor-sat/stats"))
.POST(BodyPublishers.ofString("{\n\t\"rfc\": \"AAA010101AAA\",\n\t\"ciec\": \"CIEC\",\n\t\"solicitud\": {\n\t\t\"ejercicio\": 2024,\n\t\t\"tipo\": \"I\",\n\t\t\"tipo_factura\": \"E\",\n\t\t\"regimen\": \"601\",\n\t\t\"regimen_idc\": \"601\",\n\t\t\"marca_decreto\": false\n\t}\n}"))
.setHeader("Accept", "application/json")
.setHeader("Authorization", "Basic QUFBMDEwMTAxQUFBOmNpZWM=")
.setHeader("Content-Type", "application/json")
.setHeader("User-Agent", "csf/2023.5.8")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Basic QUFBMDEwMTAxQUFBOmNpZWM=',
'Content-Type': 'application/json',
'User-Agent': 'csf/2023.5.8',
}
json_data = {
'rfc': 'AAA010101AA',
'ciec': 'CIEC',
'solicitud': {
'ejercicio': 2024,
'tipo': 'I',
'tipo_factura': 'E',
'regimen': '601',
'regimen_idc': '601',
'marca_decreto': False,
},
}
response = requests.post('https://api.csfacturacion.com/visor-sat/stats', headers=headers, json=json_data)
# Note: json_data will not be serialized by requests
# exactly as it was in the original request.
#data = '{\n\t"rfc": "AAA010101AAA",\n\t"ciec": "CIEC",\n\t"solicitud": {\n\t\t"ejercicio": 2024,\n\t\t"tipo": "I",\n\t\t"tipo_factura": "E",\n\t\t"regimen": "601",\n\t\t"regimen_idc": "601",\n\t\t"marca_decreto": false\n\t}\n}'
#response = requests.post('https://api.csfacturacion.com/visor-sat/stats', headers=headers, data=data)
Solicitud EFIRMA
<?php
$payload = [
"rfc" => "AAA010101AAA",
"efirma" => [
"certificado" => "base64string",
"llave_privada" => "base64string",
"password" => "secure3",
],
"solicitud" => [
"ejercicio" => 2024,
"tipo" => "I",
"tipo_factura" => "E",
"regimen" => "601",
"regimen_idc" => "601",
"marca_decreto" => false,
],
];
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://api.csfacturacion.com/visor-sat/stats');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'POST');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Accept: application/json',
'Authorization: Basic QUFBMDEwMTAxQUFBOmNpZWM=',
'Content-Type: application/json',
'User-Agent: csf/2023.5.8',
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
$response = curl_exec($ch);
curl_close($ch);
using System.Net.Http;
using System.Net.Http.Headers;
HttpClient client = new HttpClient();
HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Post, "https://api.csfacturacion.com/visor-sat/stats");
request.Headers.Add("Accept", "application/json");
request.Headers.Add("Authorization", "Basic QUFBMDEwMTAxQUFBOmNpZWM=");
request.Headers.Add("User-Agent", "csf/2023.5.8");
request.Content = new StringContent("{\n\t\"rfc\": \"AAA010101AAA\",\n\t\"efirma\": {\n\t\t\"certificado\": \"base64string\",\n\t\t\"llave_privada\": \"base64string\",\n\t\t\"password\": \"secure3\"\n\t},\n\t\"solicitud\": {\n\t\t\"ejercicio\": 2024,\n\t\t\"tipo\": \"I\",\n\t\t\"tipo_factura\": \"E\",\n\t\t\"regimen\": \"601\",\n\t\t\"regimen_idc\": \"601\",\n\t\t\"marca_decreto\": false\n\t}\n}");
request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
HttpResponseMessage response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
import java.io.IOException;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpRequest.BodyPublishers;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.csfacturacion.com/visor-sat/stats"))
.POST(BodyPublishers.ofString("{\n\t\"rfc\": \"AAA010101AAA\",\n\t\"efirma\": {\n\t\t\"certificado\": \"base64string\",\n\t\t\"llave_privada\": \"base64string\",\n\t\t\"password\": \"secure3\"\n\t},\n\t\"solicitud\": {\n\t\t\"ejercicio\": 2024,\n\t\t\"tipo\": \"I\",\n\t\t\"tipo_factura\": \"E\",\n\t\t\"regimen\": \"601\",\n\t\t\"regimen_idc\": \"601\",\n\t\t\"marca_decreto\": false\n\t}\n}"))
.setHeader("Accept", "application/json")
.setHeader("Authorization", "Basic QUFBMDEwMTAxQUFBOmNpZWM=")
.setHeader("Content-Type", "application/json")
.setHeader("User-Agent", "csf/2023.5.8")
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
import requests
headers = {
'Accept': 'application/json',
'Authorization': 'Basic QUFBMDEwMTAxQUFBOmNpZWM=',
'Content-Type': 'application/json',
'User-Agent': 'csf/2023.5.8',
}
json_data = {
'rfc': 'AAA010101AAA',
'efirma': {
'certificado': 'base64string',
'llave_privada': 'base64string',
'password': 'secure3',
},
'solicitud': {
'ejercicio': 2024,
'tipo': 'I',
'tipo_factura': 'E',
'regimen': '601',
'regimen_idc': '601',
'marca_decreto': False,
},
}
response = requests.post('https://api.csfacturacion.com/visor-sat/stats', headers=headers, json=json_data)
# Note: json_data will not be serialized by requests
# exactly as it was in the original request.
#data = '{\n\t"rfc": "AAA010101AAA",\n\t"efirma": {\n\t\t"certificado": "base64string",\n\t\t"llave_privada": "base64string",\n\t\t"password": "string"\n\t},\n\t"solicitud": {\n\t\t"ejercicio": 2024,\n\t\t"tipo": "I",\n\t\t"tipo_factura": "E",\n\t\t"regimen": "601",\n\t\t"regimen_idc": "601",\n\t\t"marca_decreto": false\n\t}\n}'
#response = requests.post('https://api.csfacturacion.com/visor-sat/stats', headers=headers, data=data)
Respuesta
Puedes consultar un ejemplo de respuesta aquí