List all integrations

Return every integration configured for the authenticated merchant, active or not. Used by the integrations dashboard to render the connection grid. Each entry includes activation state, last sync timestamp, and the provider's display metadata. --- **Related endpoints** - `POST /integrations/{provider}/activate` — Activate integration - `POST /integrations/{provider}/deactivate` — Deactivate integration - `GET /integrations/{provider}` — Get integration status - `POST /integrations/{provider}/test` — Test integration credentials - `POST /integrations/{provider}/rotate` — Rotate integration credentials - `POST /integrations/{provider}/sync` — Trigger manual sync - `POST /integrations/{provider}/invoices/{externalInvoiceId}/refresh` — Refresh a single PracticeHub invoice - `GET /integrations/{provider}/invoices/{externalInvoiceId}/refresh-status` — Get demand invoice refresh status **Common errors** - `401 authentication_error` — missing, invalid, expired, or revoked credential. Codes: `authentication_failed`, `invalid_api_key`, `expired_api_key`, `api_key_revoked`, `session_invalid`, `merchant_required`. Carries a `WWW-Authenticate: Bearer` challenge. **Pagination** Offset-based with `limit` (default 25, max 100) and `offset`. The response `pagination` block includes `total` and `hasMore`. See [the pagination guide](/docs/fundamentals/pagination) for SDK auto-paging helpers.

GET
/integrations

Return every integration configured for the authenticated merchant, active or not. Used by the integrations dashboard to render the connection grid. Each entry includes activation state, last sync timestamp, and the provider's display metadata.


Related endpoints

  • POST /integrations/{provider}/activate — Activate integration
  • POST /integrations/{provider}/deactivate — Deactivate integration
  • GET /integrations/{provider} — Get integration status
  • POST /integrations/{provider}/test — Test integration credentials
  • POST /integrations/{provider}/rotate — Rotate integration credentials
  • POST /integrations/{provider}/sync — Trigger manual sync
  • POST /integrations/{provider}/invoices/{externalInvoiceId}/refresh — Refresh a single PracticeHub invoice
  • GET /integrations/{provider}/invoices/{externalInvoiceId}/refresh-status — Get demand invoice refresh status

Common errors

  • 401 authentication_error — missing, invalid, expired, or revoked credential. Codes: authentication_failed, invalid_api_key, expired_api_key, api_key_revoked, session_invalid, merchant_required. Carries a WWW-Authenticate: Bearer challenge.

Pagination

Offset-based with limit (default 25, max 100) and offset. The response pagination block includes total and hasMore. See the pagination guide for SDK auto-paging helpers.

x-api-key<token>

Your RevKeen merchant API key. Create and manage keys in Dashboard → Settings → Developer. Use rk_sandbox_* for staging/test and rk_live_* for production. The same key may be sent as Authorization: Bearer <key> if that suits your HTTP client better. A missing, invalid, expired, or revoked key returns 401 with a WWW-Authenticate: Bearer challenge; a valid key without the required scope returns 403.

In: header

Response Body

application/json

application/json

application/json

Stuck on an error response? Ask the RevKeen assistant to explain it.
curl "https://api.revkeen.com/v2/integrations" \
  -H "x-api-key: $REVKEEN_API_KEY"
{  "data": [    {      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",      "provider": "practicehub",      "system_name": "string",      "is_active": true,      "sync_enabled": true,      "status": "connected",      "last_sync_at": "2019-08-24T14:15:22Z",      "last_sync_status": "string",      "last_sync_error": "string",      "sync_interval": {        "has_repeatable_job": true,        "interval_ms": 0,        "next_run": "2019-08-24T14:15:22Z"      },      "total_records": 0,      "settings": {        "sync_interval_minutes": 0,        "invoice_lookback_days": 0,        "payment_mappings": [          null        ],        "currency": "string",        "sync_patients": true,        "sync_products": true,        "sync_packages": true,        "sync_invoices": true,        "push_payments": true,        "product_mapping_mode": "import_only",        "require_product_mappings": true,        "auto_create_products_from_line_items": true,        "polling": null      },      "created_at": "2019-08-24T14:15:22Z",      "updated_at": "2019-08-24T14:15:22Z"    }  ]}

Refresh a single PracticeHub invoice POST

Enqueue a scoped PracticeHub invoice refresh (invoice + lines + patient only). Concurrent opens coalesce on (merchantId, externalInvoiceId). --- **Related endpoints** - `POST /integrations/{provider}/activate` — Activate integration - `POST /integrations/{provider}/deactivate` — Deactivate integration - `GET /integrations/{provider}` — Get integration status - `POST /integrations/{provider}/test` — Test integration credentials - `POST /integrations/{provider}/rotate` — Rotate integration credentials - `POST /integrations/{provider}/sync` — Trigger manual sync - `GET /integrations/{provider}/invoices/{externalInvoiceId}/refresh-status` — Get demand invoice refresh status - `GET /integrations` — List all integrations **Common errors** - `400 invalid_request` — malformed payload or failed validation. - `401 authentication_error` — missing, invalid, expired, or revoked credential. Codes: `authentication_failed`, `invalid_api_key`, `expired_api_key`, `api_key_revoked`, `session_invalid`, `merchant_required`. Carries a `WWW-Authenticate: Bearer` challenge. - `404 resource_missing` — the referenced resource does not exist or is not visible to your key. **Idempotency** Pass an `Idempotency-Key` header (UUID v4 recommended) to make retries safe. Keys are valid for 24 hours; see [the idempotency guide](/docs/fundamentals/idempotency).

Get external packages GET

Fetch the list of packages (or equivalent product / service records) from the external provider using stored credentials. Used by the product-mapping UI to populate the left-hand column. Passes through pagination and filtering headers when the provider supports them. --- **Related endpoints** - `POST /integrations/{provider}/activate` — Activate integration - `POST /integrations/{provider}/deactivate` — Deactivate integration - `GET /integrations/{provider}` — Get integration status - `POST /integrations/{provider}/test` — Test integration credentials - `POST /integrations/{provider}/rotate` — Rotate integration credentials - `POST /integrations/{provider}/sync` — Trigger manual sync - `POST /integrations/{provider}/invoices/{externalInvoiceId}/refresh` — Refresh a single PracticeHub invoice - `GET /integrations/{provider}/invoices/{externalInvoiceId}/refresh-status` — Get demand invoice refresh status **Common errors** - `404 resource_missing` — the referenced resource does not exist or is not visible to your key. **Pagination** Offset-based with `limit` (default 25, max 100) and `offset`. The response `pagination` block includes `total` and `hasMore`. See [the pagination guide](/docs/fundamentals/pagination) for SDK auto-paging helpers.