Skip to main content
POST
Enable automatic SAT synchronization

Authorizations

Authorization
string
header
required

API key: Authorization: Bearer sk_test_... or sk_live_....

Headers

Invoice-Version
string

Pin a dated API release (Stripe-style). Omit to use the current version. An unknown value returns 400 request.invalid_version. Echoed back on every response.

Example:

"2026-07-10"

Invoice-Account
string

Connect: act on behalf of one of your connected accounts (its acct_…/org_… id). Omit to act as your own organization. Not honored on /v1/api_keys.

Example:

"org_2P9connectedacct"

Idempotency-Key
string

Safely retry any POST. The first response is stored for 24h and replayed byte-for-byte for identical retries (the replay adds an idempotent-replayed: true header). Reusing the key with a different body is 409 idempotency.key_reuse; an in-flight duplicate is 409 idempotency.key_processing. This makes retrying a 502/429 safe — no duplicate stamp.

Example:

"a1b2c3d4-e5f6-4789-8abc-1234567890ab"

Path Parameters

id
string
required

Fiscal profile id, e.g. fp_3k9.

Body

application/json
sync_from
string

How far back to backfill, yyyy-mm-dd. Clamped to the SAT limit (71 months back, floored to the 1st of that month). Defaults to the maximum history available.

Pattern: ^\d{4}-\d{2}-\d{2}$
max_monthly_documents
integer

Approximate CFDIs this taxpayer issues+receives per month. Used to size the SAT fetch chunks — set it realistically; a wrong estimate makes the backfill chunk badly.

Required range: x <= 1000000
phone
string

Notification phone in international format, e.g. "+5215512345678".

Maximum string length: 20

Response

Default Response

object
enum<string>
required
Available options:
fiscal_profile_sync
fiscal_profile_id
string
required
rfc
string
required
enabled
boolean
required

Whether automatic SAT synchronization is turned on.

status
enum<string>
required

healthy = the watermark is advancing. stalled = it has stopped moving; the upstream sync died and we are repairing it. pending = registered, first sync not yet observed.

Available options:
inactive,
pending,
healthy,
stalled
sync_from
string | null
required

Start of the historical backfill, yyyy-mm-dd.

synced_through
string | null
required

We have your CFDIs up to and including this date (yyyy-mm-dd). Expect this to trail today by 1-3 days: the SAT itself does not publish a CFDI for bulk download until ~24-72h after it is issued.

lag_days
integer | null
required

Days between synced_through and today. 1-3 is the healthy steady state.

Required range: -9007199254740991 <= x <= 9007199254740991
documents
integer
required

CFDIs mirrored for this profile so far.

Required range: 0 <= x <= 9007199254740991
checked_at
string | null
required