Saltar a contenido

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í

Colecciones

Run in Postman}

Run in Insomnia}