curl --request GET \
--url https://api.gigstack.io/v2/invoices/sat \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/invoices/sat', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/invoices/sat"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": [
{
"id": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"uuid": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"direction": "received",
"issuer": {
"rfc": "EKU9003173C9",
"name": "ESCUELA KEMPER URGATE"
},
"receiver": {
"rfc": "MEE200101ABC",
"name": "MI EMPRESA EJEMPLO SA DE CV"
},
"invoice_type": "I",
"series": "F",
"folio": "1024",
"subtotal": 103.44,
"total": 120,
"currency": "MXN",
"issue_date": "2025-01-15",
"stamp_date": "2025-01-15T12:34:56",
"status": "Vigente",
"pac_rfc": "SAT970701NN3",
"version": "4.0",
"certificate_number": "00001000000513342038",
"download_request_id": "satreq_abc123",
"has_xml": true,
"created_at": 1767225600000,
"updated_at": 1767225600000
}
],
"has_more": true,
"next": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"count": 1
}List SAT invoices
Returns invoices downloaded from SAT via Descarga Masiva. Supports filtering by direction, status, invoice type, RFC, and date range. Uses cursor-based pagination.
Requires Descarga Masiva to be activated and at least one download request to have completed.
curl --request GET \
--url https://api.gigstack.io/v2/invoices/sat \
--header 'Authorization: Bearer <token>'const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gigstack.io/v2/invoices/sat', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.gigstack.io/v2/invoices/sat"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text){
"success": true,
"data": [
{
"id": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"uuid": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"direction": "received",
"issuer": {
"rfc": "EKU9003173C9",
"name": "ESCUELA KEMPER URGATE"
},
"receiver": {
"rfc": "MEE200101ABC",
"name": "MI EMPRESA EJEMPLO SA DE CV"
},
"invoice_type": "I",
"series": "F",
"folio": "1024",
"subtotal": 103.44,
"total": 120,
"currency": "MXN",
"issue_date": "2025-01-15",
"stamp_date": "2025-01-15T12:34:56",
"status": "Vigente",
"pac_rfc": "SAT970701NN3",
"version": "4.0",
"certificate_number": "00001000000513342038",
"download_request_id": "satreq_abc123",
"has_xml": true,
"created_at": 1767225600000,
"updated_at": 1767225600000
}
],
"has_more": true,
"next": "6741A863-04BE-49FE-BB76-E1657AB6B7EA",
"count": 1
}Authorizations
Authentication Method: HTTP Bearer token.
The runtime requires the literal Bearer prefix — a bare token in the
Authorization header is rejected with 401 unauthorized.
Header Format: Authorization: Bearer YOUR_API_KEY
Your API key is a JWT. Live keys operate on live data (livemode: true);
test keys operate on isolated test data (livemode: false).
Get your key at: app.gigstack.pro/settings?tab=api
Errors: credential failures are answered by the authentication layer with a raw
{ "message": … } body, not the standardized envelope — 401 for a missing, malformed or
expired token, 403 for a revoked key or a plan without API access. See the Unauthorized
and AuthForbidden responses.
Query Parameters
gigstack Connect: Target team ID for multi-team access.
Requires gigstack Connect enabled on your team and shared billing account.
Also requires the multipleIssuerAccounts feature on your plan. Requests targeting a
team other than the one your API key belongs to return 403 without it.
Only API keys can use it: an OAuth access token sent with another team's id is rejected with
403 Team mismatch with OAuth token.
Optional — omit it entirely unless you are acting on another team. It deliberately
carries no example value so generated snippets do not emit ?team=undefined; when the
parameter is absent, the team is derived from your API key.
Example: ?team=team_xyz789
Filter by invoice direction
issued, received Filter by SAT invoice status
Vigente, Cancelado Filter by CFDI type code
I, E, P, N, T Filter by issuer RFC
Filter by receiver RFC
Issue date from (inclusive), format YYYY-MM-DD
Issue date to (inclusive), format YYYY-MM-DD
Number of results per page (1–100, default 20)
1 <= x <= 100UUID of the last invoice from the previous page (cursor pagination)