Text generation for operations
Build verification and document workflows with a production-ready API
IFCGATE provides API infrastructure for identity verification, document extraction, queue routing, webhook delivery, and case-state management. This documentation is organized for implementation teams that need to move from onboarding to production without rewriting their integration model.
The platform is designed for server-to-server integrations, structured JSON payloads, and operational workflows where auditability, retries, and queue-level visibility matter. The examples below show the recommended patterns for all new integrations.
Quickstart
Here is a simple example using the IFCGATE Verification API to create a new case from an onboarding workflow. This is the standard starting point for teams integrating verification into their back-office or customer intake flow.
import IFCGate from "@ifcgate/sdk";
const client = new IFCGate({
apiKey: process.env.IFCGATE_API_KEY
});
const response = await client.verifications.create({
workflow: "onboarding-default",
applicant_id: "app_10294",
documents: [
{
type: "passport",
file_url: "https://files.example.com/passport.png"
}
]
});
console.log(response.case_id);
The response returns a `case_id` and workflow metadata that can be used to monitor state changes, fetch audit history, or wait for a signed webhook event.
Authentication
All API requests must include a bearer token issued during technical onboarding. Keys are scoped to the permitted environment and can be restricted by workflow family, webhook configuration, or workspace.
Authorization: Bearer ifcg_live_xxxxxxxxxxxxxxxxx
Request conventions
IFCGATE endpoints use JSON payloads, cursor-based pagination, signed webhooks, and idempotent retry behavior for mutation endpoints.
Authorization
Yes
Bearer token for authenticated API access.
Content-Type
Yes
Requests use application/json.
X-Request-Id
No
Client trace identifier for diagnostics and support.
Idempotency-Key
POST only
Safe retries for create and workflow action requests.
Endpoint reference
The API surface is grouped by operational domain so engineering teams can wire each subsystem independently: create verification cases, extract structured fields, route work, or fetch queue-friendly case state.
/v1/verifications
Create a verification case and assign it to a workflow.
/v1/documents/extract
Submit a file or document batch for structured extraction.
/v1/workflows/run
Trigger a configured routing action or exception workflow.
/v1/cases/{id}
Fetch current state, ownership, and audit history for a case.
Verification API
Create and track onboarding review cases.
POST /v1/verifications
{
"workflow": "onboarding-default",
"applicant_id": "app_10294",
"documents": [
{
"type": "passport",
"file_url": "https://files.example.com/passport.png"
}
]
}
{
"case_id": "case_10294",
"status": "in_review",
"workflow": "onboarding-default",
"queue": "verification-review",
"submitted_at": "2026-03-30T03:00:00Z"
}
Document API
Extract structured fields from recurring business documents.
POST /v1/documents/extract
{
"template": "invoice-standard",
"file_url": "https://files.example.com/invoice.pdf"
}
{
"document_id": "doc_771",
"status": "processed",
"fields": {
"invoice_number": "INV-2041",
"issue_date": "2026-03-28",
"total_amount": "1250.00"
}
}
Workflow API
Route cases and trigger downstream operational actions.
POST /v1/workflows/run
{
"case_id": "case_10302",
"action": "route_to_manual_review",
"queue": "compliance-east"
}
Case Management API
Retrieve queue-ready case records and audit history.
GET /v1/cases?status=in_review&limit=25
{
"data": [
{
"case_id": "case_10308",
"workflow": "verification-priority",
"status": "in_review"
}
],
"next_cursor": "cur_10308"
}
GET /v1/cases/case_10308
{
"case_id": "case_10308",
"status": "in_review",
"owner": "Compliance Team",
"timeline": [
{
"event": "submitted",
"at": "2026-03-30T02:41:00Z"
}
]
}
Webhooks
IFCGATE emits signed webhook events when cases change state or extraction jobs complete. These events can be used to update dashboards, sync CRMs, or notify downstream systems.
{
"event": "case.review.completed",
"case_id": "case_10294",
"status": "approved",
"workflow": "onboarding-default",
"processed_at": "2026-03-30T03:00:00Z"
}
SDK examples
Reference snippets for common backend integrations.
const response = await fetch("https://api.ifcgate.com/v1/verifications", {
method: "POST",
headers: {
"Authorization": "Bearer " + process.env.IFCGATE_API_KEY,
"Content-Type": "application/json",
"Idempotency-Key": "verify_app_10294"
},
body: JSON.stringify({
workflow: "onboarding-default",
applicant_id: "app_10294"
})
});
const data = await response.json();
import requests
response = requests.post(
"https://api.ifcgate.com/v1/documents/extract",
headers={
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
},
json={
"template": "invoice-standard",
"file_url": "https://files.example.com/invoice.pdf",
},
timeout=30,
)
payload = response.json()
Rate limits
Production workspaces default to 600 requests per minute. Clients should back off on `429` responses and respect `Retry-After` when replaying queued requests.
Pagination
List endpoints use cursor-based pagination with `limit`, `cursor`, `next_cursor`, and `has_more` fields. This model is recommended for queue views and high-volume operational exports.
Idempotency
Mutation endpoints support `Idempotency-Key` for safe client-side retries. If the same key is replayed within the retention window, the original successful response is returned instead of creating a duplicate object.
Error handling
Errors are returned in a consistent JSON envelope.
{
"error": {
"code": "workflow_validation_failed",
"message": "A required document type is missing for this workflow.",
"request_id": "req_7f2a91",
"status": 422
}
}
Next steps
Request production access, review the API Console preview, and confirm your webhook destinations before going live.