IFCGATE Developers

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.

Generate a verification case from a simple request
javascript
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 header
http
Authorization: Bearer ifcg_live_xxxxxxxxxxxxxxxxx

Request conventions

IFCGATE endpoints use JSON payloads, cursor-based pagination, signed webhooks, and idempotent retry behavior for mutation endpoints.

Header Required Purpose
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.

POST /v1/verifications

Create a verification case and assign it to a workflow.

POST /v1/documents/extract

Submit a file or document batch for structured extraction.

POST /v1/workflows/run

Trigger a configured routing action or exception workflow.

GET /v1/cases/{id}

Fetch current state, ownership, and audit history for a case.

Verification API

Create and track onboarding review cases.

Request
json
POST /v1/verifications
{
  "workflow": "onboarding-default",
  "applicant_id": "app_10294",
  "documents": [
    {
      "type": "passport",
      "file_url": "https://files.example.com/passport.png"
    }
  ]
}
Response
json
{
  "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.

Request
json
POST /v1/documents/extract
{
  "template": "invoice-standard",
  "file_url": "https://files.example.com/invoice.pdf"
}
Response
json
{
  "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.

Workflow action
json
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.

List cases
json
GET /v1/cases?status=in_review&limit=25

{
  "data": [
    {
      "case_id": "case_10308",
      "workflow": "verification-priority",
      "status": "in_review"
    }
  ],
  "next_cursor": "cur_10308"
}
Retrieve a case
json
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.

Webhook payload
json
{
  "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.

Node.js
javascript
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();
Python
python
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 payload
json
{
  "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.