Download OpenAPI specification:
The AI Gateway API provides document processing capabilities for GCash lending applications. It accepts document uploads, processes them through AI-powered analysis, and returns structured data extracted from documents.
The API processes multiple document categories with customizable extraction schemas. Extracted fields can be extended beyond the standard set through fine-tuning to meet specific partner requirements.
| Document Type | Classification | Extracted Data |
|---|---|---|
| BankStatement | PRIMARY | Account details, transactions, balances, inferred income |
| Payslip | PRIMARY | Employment details, salary breakdown, deductions |
| BIRForm2303 | PRIMARY | Tax information and compliance data |
| CertificateOfEmployment | PRIMARY | Employment status and company information |
| ElectricUtilityBillingStatement | SUPPORTING | Address, payment history |
| TelcoBill | SUPPORTING | Contact information, billing details |
| WaterUtilityBillingStatement | SUPPORTING | Address verification data |
Endpoint URLs are shared with partners individually.
Contact Boost Capital to receive environment-specific endpoint URLs and IP addresses for network configuration.
The API operates from dedicated IP ranges:
Specific IP addresses are provided during integration setup for firewall whitelisting.
The security measures described below represent the baseline configuration. These are not limited and can be extended, modified, or customized individually with partners based on specific security requirements and compliance obligations.
Partners have complete flexibility to choose which authentication and encryption methods to implement.
Mutual TLS (mTLS) provides bidirectional authentication for API domains. This setup ensures both the server and client verify each other's identity before any data is exchanged.
For successful connection and client authentication:
These cryptographic materials are securely shared by Boost Capital. The mTLS policy is configured to reject connections from clients that do not present a valid, trusted certificate.
End-to-end encryption of all API request and response payloads provides an additional layer of data security.
Request Encryption:
Response Decryption:
Important: The request and response examples in this documentation display decrypted JSON for readability. In actual implementation with encryption enabled, payloads must be encrypted and base64-encoded as described above.
The API supports OAuth 2.0 authentication via Google Cloud Identity-Aware Proxy (IAP). This standard ensures only trusted service accounts can obtain access tokens required for API requests.
Boost Capital will securely share:
Authorization: Bearer {idToken}
API endpoints for document processing and verification. The request body structures and examples shown in this documentation are displayed in decrypted JSON format for readability and ease of implementation. However, when payload encryption is enabled (see Payload Encryption section above), the actual HTTP POST body for all endpoints must be the base64-encoded, AES-256-CBC encrypted plain text string with the Content-Type:text/plain header. The same applies to response bodies - they will be returned as base64-encoded encrypted strings that must be decoded and decrypted using the same key and IV. Partners who choose not to implement payload encryption can send and receive standard JSON payloads with Content-Type:application/json.
Submit a batch of documents for AI-powered processing. This endpoint accepts multiple documents associated with a single application submission and processes them asynchronously.
required | object |
required | object (Callback) |
{- "payload": {
- "submissionId": "submission_12345",
- "documents": [
- {
- "uploadId": "upload_001",
- "documentClassification": "PRIMARY",
- "documentType": "BankStatement",
- "filename": "bank_statement.pdf",
}
]
}, - "callback": {
- "method": "POST",
- "headers": {
- "Authorization": "Bearer partner_token_xyz",
- "X-Account-Id": "account_123"
}
}
}{- "application_id": "550e8400-e29b-41d4-a716-446655440000",
- "submission_id": "650e8400-e29b-41d4-a716-446655440001",
- "upload_id": "750e8400-e29b-41d4-a716-446655440002",
- "status": "PROCESSING",
- "timestamp": "2025-11-07T14:30:00.123Z"
}{- "applicationId": "string",
- "submissionId": "string",
- "documentId": "string",
- "documentCategory": "string",
- "documentType": "BankStatement",
- "ocrResult": {
- "documentData": {
- "summary": [
- {
- "pageNumber": 0,
- "bankName": "string",
- "accountHolderName": "string",
- "accountNumber": "string",
- "currency": "string",
- "statementPeriodStart": "string",
- "statementPeriodEnd": "string",
- "openingBalance": 0,
- "closingBalance": 0,
- "totalDebits": 0,
- "totalCredits": 0
}
], - "transactions": [
- {
- "postingDate": "string",
- "transactionDescription": "string",
- "debitAmount": 0,
- "creditAmount": 0,
- "balance": 0
}
]
}, - "computedFields": {
- "180days_valid_bankstatement": 0,
- "90days_consec_bankstatement": 0,
- "sources_bankstatement": "string",
- "bankname_bankstatement": "string",
- "totaldebit_bankstatement": 0,
- "totalcredit_bankstatement": 0,
- "inferredincome_bankstatement": 0
}, - "fraudChecks": {
- "overallFraudScore_bankstatement": 0,
- "isFraudulent_bankstatement": 0,
- "issueDescription": "string"
}, - "qualityCheck": {
- "overallQualityScore_bankStatement": 0,
- "issueDescription": "string"
}, - "completenessCheck": {
- "overallCompletenessScore_bankStatement": 0,
- "issueDescription": "string"
}
}
}Check the processing status of a previously submitted application.
This endpoint provides the current state of document processing for a given application. For detailed processing results including OCR data, fraud scores, and quality metrics, rely on the callback notifications sent to your webhook endpoint.
| application_id required | string <uuid> Application identifier from batch upload response |
{- "application_id": "550e8400-e29b-41d4-a716-446655440000"
}{- "application_id": "550e8400-e29b-41d4-a716-446655440000",
- "submission_id": "650e8400-e29b-41d4-a716-446655440001",
- "upload_id": "850e8400-e29b-41d4-a716-446655440003",
- "status": "PROCESSING",
- "processing_time_ms": 15420,
- "timestamp": "2025-11-07T14:35:00.123Z"
}