Turn a scan-only connection whose grant is still held into the recurring sync (ADMIN+, requires an active subscription)
const url = 'https://api.invogi.com/v1/erp-connections/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/activate';const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.invogi.com/v1/erp-connections/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/activate \ --header 'Authorization: Bearer <token>'A scan-only grant is normally revoked when its scan finishes; then
the customer reconnects with POST /erp-connections/oauth/start
(mode: SYNC), which reuses the same connection. While the grant is
still held (mid-scan, or a revocation awaiting the hourly fallback),
this keeps the connection (and its ID, which namespaces every
imported bill’s external ID), switches it to SYNC, and starts the
first sync. That sync reads full history but skips every bill the
scan already imported. Idempotent for a connection that is already
SYNC; 409 for a disabled one. Same responses as the sync endpoint.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Responses
Section titled “Responses”Activated; first sync completed synchronously (no Queue binding)
object
Null when the sync was skipped before a run started because the overage limit has no room
PAUSED means the owner-set overage limit refused further bills; nothing failed and the rest are imported after the limit is raised or the period renews
Of the imported invoices
Example
{ "status": "COMPLETED", "paused_reason": "OVERAGE_LIMIT"}Activated; first sync queued, or left to the hourly job while a scan or sync still holds the connection
object
Example
{ "status": "QUEUED"}Missing or invalid API key
object
object
Example
{ "error": { "code": "NOT_FOUND" }}API key lacks required scope/role
object
object
Example
{ "error": { "code": "NOT_FOUND" }}Resource not found
object
object
Example
{ "error": { "code": "NOT_FOUND" }}Conflicting idempotency key or resource processing state
object
object
Example
{ "error": { "code": "NOT_FOUND" }}