CFDI Electronic Invoice
What Is CFDI and Its Relation to Invoices?
The CFDI (Comprobante Fiscal Digital por Internet) is a type of electronic invoice required in Mexico that complies with the tax standards set by the SAT (Tax Administration Service). An invoice becomes a CFDI through a certification process, ensuring its legal and fiscal validity.
IMPORTANTTo follow the steps below, it is essential to have the corresponding Authorization Token. For more information, please refer to the following documentation page: Authorization Token
Download CFDI
This endpoint allows downloading a CFDI for a specific invoice.
Visit our API Reference to test this endpoint.
Endpoint
GET https://ecartpay.com/api/invoices/cfdi/download/:idGET https://sandbox.ecartpay.com/api/invoices/cfdi/download/:id(Sandbox only)
Headers
Authorization: {token}Referer: Base URL (e.g.,{baseUrl}).
Path Variables
id: Unique identifier of the invoice (e.g.,658b47f407f38aeb09e22173).
Examples
Request
curl --location 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173' \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g' \
--header 'Referer: https://sandbox.ecartpay.com' \
--header 'Cookie: lang=en'package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173"
method := "GET"
client := &http.Client {
}
req, err := http.NewRequest(method, url, nil)
if err != nil {
fmt.Println(err)
return
}
req.Header.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g")
req.Header.Add("Referer", "https://sandbox.ecartpay.com")
req.Header.Add("Cookie", "lang=en")
res, err := client.Do(req)
if err != nil {
fmt.Println(err)
return
}
defer res.Body.Close()
body, err := io.ReadAll(res.Body)
if err != nil {
fmt.Println(err)
return
}
fmt.Println(string(body))
}GET /api/invoices/cfdi/download/658b47f407f38aeb09e22173 HTTP/1.1
Host: sandbox.ecartpay.com
Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g
Referer: https://sandbox.ecartpay.com
Cookie: lang=en// OkHttp
OkHttpClient client = new OkHttpClient().newBuilder()
.build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
.url("https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173")
.method("GET", body)
.addHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g")
.addHeader("Referer", "https://sandbox.ecartpay.com")
.addHeader("Cookie", "lang=en")
.build();
Response response = client.newCall(request).execute();
// -------------------------------------------------------------
// Unirest
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173")
.header("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g")
.header("Referer", "https://sandbox.ecartpay.com")
.header("Cookie", "lang=en")
.asString();// Fetch
const myHeaders = new Headers();
myHeaders.append("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g");
myHeaders.append("Referer", "https://sandbox.ecartpay.com");
myHeaders.append("Cookie", "lang=en");
const requestOptions = {
method: "GET",
headers: myHeaders,
redirect: "follow"
};
fetch("https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173", requestOptions)
.then((response) => response.text())
.then((result) => console.log(result))
.catch((error) => console.error(error));
// -------------------------------------------------------------
// jQuery
var settings = {
"url": "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173",
"method": "GET",
"timeout": 0,
"headers": {
"Authorization": "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g",
"Referer": "https://sandbox.ecartpay.com",
"Cookie": "lang=en"
},
};
$.ajax(settings).done(function (response) {
console.log(response);
});
// -------------------------------------------------------------
// XHR
// WARNING: For GET requests, body is set to null by browsers.
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;
xhr.addEventListener("readystatechange", function() {
if(this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("GET", "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173");
xhr.setRequestHeader("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g");
xhr.setRequestHeader("Referer", "https://sandbox.ecartpay.com");
// WARNING: Cookies will be stripped away by the browser before sending the request.
xhr.setRequestHeader("Cookie", "lang=en");
xhr.send();CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
curl_easy_setopt(curl, CURLOPT_URL, "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173");
curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g");
headers = curl_slist_append(headers, "Referer: https://sandbox.ecartpay.com");
headers = curl_slist_append(headers, "Cookie: lang=en");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
curl_slist_free_all(headers);
}
curl_easy_cleanup(curl);// Axios
const axios = require('axios');
let config = {
method: 'get',
maxBodyLength: Infinity,
url: 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173',
headers: {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
}
};
axios.request(config)
.then((response) => {
console.log(JSON.stringify(response.data));
})
.catch((error) => {
console.log(error);
});
// -------------------------------------------------------------
// Native
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'GET',
'hostname': 'sandbox.ecartpay.com',
'path': '/api/invoices/cfdi/download/658b47f407f38aeb09e22173',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
},
'maxRedirects': 20
};
var req = https.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error", function (error) {
console.error(error);
});
});
req.end();
// -------------------------------------------------------------
// Request
var request = require('request');
var options = {
'method': 'GET',
'url': 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173',
'headers': {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
}
};
request(options, function (error, response) {
if (error) throw new Error(error);
console.log(response.body);
});
// -------------------------------------------------------------
// Unirest
var unirest = require('unirest');
var req = unirest('GET', 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173')
.headers({
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
})
.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.raw_body);
});#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173"]
cachePolicy:NSURLRequestUseProtocolCachePolicy
timeoutInterval:10.0];
NSDictionary *headers = @{
@"Authorization": @"eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g",
@"Referer": @"https://sandbox.ecartpay.com",
@"Cookie": @"lang=en"
};
[request setAllHTTPHeaderFields:headers];
[request setHTTPMethod:@"GET"];
NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"%@", error);
dispatch_semaphore_signal(sema);
} else {
NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
NSError *parseError = nil;
NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
NSLog(@"%@",responseDictionary);
dispatch_semaphore_signal(sema);
}
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);open Lwt
open Cohttp
open Cohttp_lwt_unix
let reqBody =
let uri = Uri.of_string "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173" in
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g"
|> fun h -> Header.add h "Referer" "https://sandbox.ecartpay.com"
|> fun h -> Header.add h "Cookie" "lang=en"
in
Client.call ~headers `GET uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body
let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)// cURL
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer: https://sandbox.ecartpay.com',
'Cookie: lang=en'
),
));
$response = curl_exec($curl);
curl_close($curl);
echo $response;
// -------------------------------------------------------------
// Guzzle
<?php
$client = new Client();
$headers = [
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer' => 'https://sandbox.ecartpay.com',
'Cookie' => 'lang=en'
];
$request = new Request('GET', 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173', $headers);
$res = $client->sendAsync($request)->wait();
echo $res->getBody();
// -------------------------------------------------------------
// HTTP_Request2
<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
'follow_redirects' => TRUE
));
$request->setHeader(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer' => 'https://sandbox.ecartpay.com',
'Cookie' => 'lang=en'
));
try {
$response = $request->send();
if ($response->getStatus() == 200) {
echo $response->getBody();
}
else {
echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
$response->getReasonPhrase();
}
}
catch(HTTP_Request2_Exception $e) {
echo 'Error: ' . $e->getMessage();
}
// -------------------------------------------------------------
// pecl_http
<?php
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173');
$request->setRequestMethod('GET');
$request->setOptions(array());
$request->setHeaders(array(
'Authorization' => 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer' => 'https://sandbox.ecartpay.com',
'Cookie' => 'lang=en'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g")
$headers.Add("Referer", "https://sandbox.ecartpay.com")
$headers.Add("Cookie", "lang=en")
$response = Invoke-RestMethod 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173' -Method 'GET' -Headers $headers
$response | ConvertTo-Json# http.client
import http.client
conn = http.client.HTTPSConnection("sandbox.ecartpay.com")
payload = ''
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
}
conn.request("GET", "/api/invoices/cfdi/download/658b47f407f38aeb09e22173", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))
// -------------------------------------------------------------
# Requests
import requests
url = "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173"
payload = {}
headers = {
'Authorization': 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer': 'https://sandbox.ecartpay.com',
'Cookie': 'lang=en'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)# httr
library(httr)
headers = c(
'Authorization' = 'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g',
'Referer' = 'https://sandbox.ecartpay.com',
'Cookie' = 'lang=en'
)
res <- VERB("GET", url = "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173", add_headers(headers))
cat(content(res, 'text'))
// -------------------------------------------------------------
# RCurl
library(RCurl)
headers = c(
"Authorization" = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g",
"Referer" = "https://sandbox.ecartpay.com",
"Cookie" = "lang=en"
)
res <- getURL("https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173", .opts=list(httpheader = headers, followlocation = TRUE))
cat(res)require "uri"
require "net/http"
url = URI("https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173")
https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g"
request["Referer"] = "https://sandbox.ecartpay.com"
request["Cookie"] = "lang=en"
response = https.request(request)
puts response.read_body#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let client = reqwest::Client::builder()
.build()?;
let mut headers = reqwest::header::HeaderMap::new();
headers.insert("Authorization", "eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g".parse()?);
headers.insert("Referer", "https://sandbox.ecartpay.com".parse()?);
headers.insert("Cookie", "lang=en".parse()?);
let request = client.request(reqwest::Method::GET, "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173")
.headers(headers);
let response = request.send().await?;
let body = response.text().await?;
println!("{}", body);
Ok(())
}# Httpie
http --follow --timeout 3600 GET 'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173' \
Authorization:'eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g' \
Referer:'https://sandbox.ecartpay.com' \
Cookie:'lang=en'
// -------------------------------------------------------------
# wget
wget --no-check-certificate --quiet \
--method GET \
--timeout=0 \
--header 'Authorization: eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g' \
--header 'Referer: https://sandbox.ecartpay.com' \
--header 'Cookie: lang=en' \
'https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173'var request = URLRequest(url: URL(string: "https://sandbox.ecartpay.com/api/invoices/cfdi/download/658b47f407f38aeb09e22173")!,timeoutInterval: Double.infinity)
request.addValue("eyJhbGciOiJIUzUxMiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3MmE4NTAzNzFiZTBlY2Y1NTRkMDUxNiIsImFjY291bnRfaWQiOiI2NzJhODUwMzcxYmUwZWNmNTU0ZDA1MGMiLCJpYXQiOjE3Mzg3NzM1NTUsImV4cCI6MTczODc3NzE1NX0.oksy5FrkEvpJ21yCS5rgE2nEDhb_1xWNbG4q66bjGdjN6dnCwmVEueybWHuQBfqIcASwpCmP0cB0BYVYT63y3g", forHTTPHeaderField: "Authorization")
request.addValue("https://sandbox.ecartpay.com", forHTTPHeaderField: "Referer")
request.addValue("lang=en", forHTTPHeaderField: "Cookie")
request.httpMethod = "GET"
let task = URLSession.shared.dataTask(with: request) { data, response, error in
guard let data = data else {
print(String(describing: error))
return
}
print(String(data: data, encoding: .utf8)!)
}
task.resume()Response
The response body contains the CFDI in XML or PDF format, depending on the request. Headers may include details of the downloaded file.
Updated 5 days ago