Skip to main content

Quick Reference Card

api_version: v2                                                                                        
base_urls:                                                                                             
  uat: https://api.uat.frankie.one                                                                     
  production: https://api.frankie.one                                                                  
                                                                                                       
auth_headers:                                                                                          
  api_key: required                                                                                    
  X-Frankie-CustomerID: required (UUID)                                                                
  X-Frankie-CustomerChildID: optional (UUID)                                                           
  X-Frankie-Channel: optional (api|portal|smartui|custom)                                              
  X-Frankie-Username: optional (email for audit)                                                       
                                                                                                       
rate_limits:                                                                                           
  execute_workflow: 20 TPS                                                                             
  tracked_by: CustomerID + CustomerChildID combination                                                 
                                                                                                       
session_urls:                                                                                          
  uat: https://backend.kycaml.uat.frankiefinancial.io/auth/v1/machine-session                          
  production: https://backend.kycaml.frankiefinancial.io/auth/v1/machine-session                       

1. Complete Endpoint Reference

Individual Management

MethodEndpointPurpose
POST/v2/individualsCreate individual entity
GET/v2/individuals/{entityId}Get individual with all profiles
PATCH/v2/individuals/{entityId}Update individual data
DELETE/v2/individuals/{entityId}Delete individual

Workflow Operations

MethodEndpointPurpose
GET/v2/workflowsList available workflows
POST/v2/individuals/{entityId}/serviceprofiles/{serviceName}/workflows/{workflowName}/executeExecute workflow
GET/v2/individuals/{entityId}/serviceprofiles/{serviceName}/workflows/{workflowName}/resultsGet workflow results

System

MethodEndpointPurpose
GET/ruokHealth check

2. Field Enumerations (Complete)

Document Types

### Valid Identity & Supporting Document Types

These document types **can be submitted** as part of identity or supporting evidence.

| Document Type | Description |
|--------------|------------|
| `OTHER` | Generic document type. Unspecified. |
| `DRIVERS_LICENSE` | Driver's license. |
| `PASSPORT` | Passport. |
| `VISA` | Visa document (not Visa payment card). |
| `IMMIGRATION` | Immigration card. |
| `NATIONAL_ID` | Any national ID card. |
| `TAX_ID` | Any national tax identifier. |
| `NATIONAL_HEALTH_ID` | National health program ID (e.g. Medicare, NHS). |
| `CONCESSION` | State-issued concession card. |
| `HEALTH_CONCESSION` | State-issued health-specific concession card. |
| `PENSION` | State-issued pension ID. |
| `MILITARY_ID` | Military identification card. |
| `BIRTH_CERT` | Birth certificate. |
| `CITIZENSHIP` | Citizenship certificate. |
| `MARRIAGE_CERT` | Marriage certificate. |
| `DEATH_CERT` | Death certificate. |
| `NAME_CHANGE` | Name change confirmation document. |
| `UTILITY_BILL` | Regulated utility bill (electricity, gas, etc.). |
| `BANK_STATEMENT` | Bank or card statement. |
| `BANK_ACCOUNT` | Bank account document. |
| `INTENT_PROOF` | Proof of intent (photo, video, or scanned letter). |
| `ATTESTATION` | Document of attestation (e.g. Statutory Declaration). |

---

### ❌ Internal or Manual Supporting Documents

The following document types are internal or manual review supporting documents.

| Document Type | Reason |
|--------------|-------|
| `SELF_IMAGE` | Used only for biometric comparison. |
| `DEVICE` | Device identifier, not an identity document. |
| `VEHICLE_REGISTRATION` | Not a valid identity document. |
| `PROOF_OF_ADDRESS` | Address evidence must use specific document types. |
| `HOUSE_REGISTRATION` | Not supported. |
| `YELLOW_HOUSE_REGISTRATION` | Not supported (Thor Ror 13). |
| `WORK_PERMIT` | Not accepted as a supporting identity document. |
| `EMPLOYMENT_CERTIFICATE` | Not accepted. |
| `NOTARY_PUBLIC_ID` | Not accepted. |

---

### Business & Corporate Document Types (KYB)

These document types are used **only for business verification (KYB)**.

| Document Type | Description |
|--------------|------------|
| `EXTERNAL_ADMIN` | Appointed administrator details. |
| `CHARGES` | Charges laid against a company or director. |
| `PRE_ASIC` | Pre-ASIC documentation. |
| `ANNUAL_RETURN` | Company annual return. |
| `REPORT` | Frankie-generated report. |
| `TRUST_DEED` | Corporate trust deed. |
| `DEED_OF_VARIATION` | Deed of variation document. |
| `REGISTER_OF_UNIT_HOLDERS` | Register of unit holders. |
| `PARTNERSHIP_AGREEMENT` | Partnership agreement documents. |
| `ADMIN_CHANGE` | Change of administrator. |
| `COMPANY_REPORT` | Registry-filed company report. |
| `ORGANIZATION_PROFILE` | Organization profile document. |
| `ORGANIZATION_OWNERSHIP` | Organization ownership structure. |

---

### Special Document Types

These document types have **special system-level purposes**.

| Document Type | Description |
|--------------|------------|
| `CHECK_RESULTS` | Results of checks completed outside Frankie workflows. |
| `AVIATION_SECURITY_ID` | Aviation Security Identification Card. |
| `MARITIME_SECURITY_ID` | Maritime Security Identification Card. |

---

### Available Enum Values (LLM Reference)

```text
OTHER, DRIVERS_LICENSE, PASSPORT, VISA, IMMIGRATION, NATIONAL_ID,
TAX_ID, NATIONAL_HEALTH_ID, CONCESSION, HEALTH_CONCESSION, PENSION,
MILITARY_ID, BIRTH_CERT, CITIZENSHIP, MARRIAGE_CERT, DEATH_CERT,
NAME_CHANGE, UTILITY_BILL, BANK_STATEMENT, BANK_ACCOUNT, INTENT_PROOF,
ATTESTATION, SELF_IMAGE, DEVICE, VEHICLE_REGISTRATION, PROOF_OF_ADDRESS,
HOUSE_REGISTRATION, YELLOW_HOUSE_REGISTRATION, WORK_PERMIT,
EMPLOYMENT_CERTIFICATE, NOTARY_PUBLIC_ID, EXTERNAL_ADMIN, CHARGES,
PRE_ASIC, ANNUAL_RETURN, REPORT, TRUST_DEED, DEED_OF_VARIATION,
REGISTER_OF_UNIT_HOLDERS, PARTNERSHIP_AGREEMENT, ADMIN_CHANGE,
COMPANY_REPORT, CHECK_RESULTS, AVIATION_SECURITY_ID,
MARITIME_SECURITY_ID, ORGANIZATION_PROFILE, ORGANIZATION_OWNERSHIP
                                                 

Document Classes

IDENTITY              - Primary identity documents                                                     
SUPPORTING            - Supporting documents (utility bills, etc.)                                     
REPORT                - Generated reports                                                              
OTHER                 - Other document types                                                           

Address Types

RESIDENTIAL           - Home address                                                                   
BUSINESS              - Business/work address                                                          
POSTAL                - Mailing address                                                                
PREVIOUS              - Former address                                                                 
OTHER                 - Other address type                                                             
Full address type options, note some are for KYB such as OFFICE_LOCALITY Available options: OTHER, RESIDENTIAL, BUSINESS, POSTAL, REGISTERED_OFFICE, PLACE_OF_BUSINESS, OFFICIAL_CORRESPONDANCE, PLACE_OF_BIRTH, OFFICE_LOCALITY, AUTHORITATIVE_RESIDENTIAL

Address Status

CURRENT               - Current active address                                                         
PREVIOUS              - Previous address                                                               
UNVERIFIED            - Not yet verified                                                               

Phone Types

MOBILE                - Mobile phone                                                                   
HOME                  - Home landline                                                                  
WORK                  - Work phone                                                                     
OTHER                 - Other phone type                                                               

Email Types

PERSONAL              - Personal email                                                                 
WORK                  - Work email                                                                     
BUSINESS              - Business email                                                                 
OTHER                 - Other email type                                                               

Gender Values

MALE                                                                                                   
FEMALE                                                                                                 
NON_BINARY                                                                                             
OTHER                                                                                                  
UNSPECIFIED                                                                                            

Name Types (for alternateNames)

ALIAS                 - Also known as                                                                  
PREVIOUS              - Former name (maiden name, etc.)                                                
OTHER                 - Other name type                                                                

3. Workflow Response Enumerations

Workflow Execution State

IN_PROGRESS           - Workflow is executing                                                          
COMPLETED             - Workflow finished successfully                                                 
CANCELED              - Workflow was canceled                                                          
TERMINATED            - Workflow was terminated early                                                  
ERROR                 - Workflow encountered error                                                     
TIMEOUT               - Workflow timed out                                                             

Workflow Status (Overall Result)

PASS                  - Verification successful                                                        
FAIL                  - Verification failed                                                            
REVIEW                - Manual review required                                                         
UNCHECKED             - Not yet determined                                                             
IN_PROGRESS           - Still processing                                                               
BLOCKED               - Processing blocked                                                             
INCOMPLETE            - Missing required data                                                          

Service Profile State

INIT                  - Just created                                                                   
AUTO                  - Automatically assigned                                                         
ACTIVE                - Profile is active                                                              
ARCHIVED              - No longer active                                                               
BLOCKLISTED           - Blocked from actions                                                           
INACTIVE              - Not currently in use                                                           
DELETED               - Soft deleted                                                                   
DUPLICATE             - Duplicate of another                                                           

Risk Levels

LOW                   - Minimal risk (score 1-10)                                                      
MEDIUM                - Moderate risk (score 11-25)                                                    
HIGH                  - Significant risk (score 26-50)                                                 
UNACCEPTABLE          - Unacceptable risk (score 51+)                                                  
UNKNOWN               - Cannot determine                                                               

4. Issue Categories & Severities

Issue Categories

KYC                   - Identity verification issues                                                   
AML                   - Anti-money laundering flags                                                    
BAD_DATA              - Invalid or malformed data                                                      
DOCUMENT              - Document-related issues                                                        
DUPLICATE             - Duplicate entity detected                                                      
FRAUD                 - Fraud indicators                                                               
IDV                   - Identity document verification                                                 
WATCHLIST             - Watchlist/sanctions match                                                      
DECEASED              - Deceased person match                                                          
ACTIVITY              - Suspicious activity                                                            
SYSTEM                - System/technical errors                                                        

Issue Severities

INFO                  - Informational only                                                             
WARNING               - Non-blocking warning                                                           
REVIEW                - Requires manual review                                                         
BLOCK                 - Blocks further processing                                                      
CRITICAL              - Critical issue found                                                           
ERROR                 - Error encountered                                                              

Common Issue Codes

NOT_FOUND             - Person not found in data sources                                               
BAD_DATA_ID           - Invalid document identifier                                                    
SERVICE_ERROR         - External service error                                                         
SERVICE_TIMEOUT       - Timeout with the request                                                      
PEP	/ SANCTION        - Sanctions/PEP match found                                                      
LIVENESS_DETECTION    - Biometric liveness failed                                                           
DATA_VALIDATION       - Document data validation failure                                                    
DATA_COMPARISON       - Document mismatch with other sources
DENY_LIST             - Visa deny list                                                              
...                                                    
Full category and issue code mapping with severity and meaning
CategoryIssue TypeSeverityMeaning
AMLPEPREVIEWPolitically Exposed Person detected
AMLSANCTIONBLOCKSanctions list match
AMLMEDIAREVIEWAdverse media detected
AMLWATCHLISTREVIEWWatchlist match
ACTIVITYACTIVITY_AMLREVIEWAML-related suspicious activity
ACTIVITYACTIVITY_FRAUDREVIEWFraud-related suspicious activity
ACTIVITYACTIVITY_DEVICEREVIEWDevice-related suspicious activity
BAD_DATABAD_DATA_NAMEWARNINGName missing or unusable
BAD_DATABAD_DATA_DOBWARNINGDate of birth missing or unusable
BAD_DATABAD_DATA_DEVICEWARNINGDevice data missing or unusable
BAD_DATABAD_DATA_ADDRESSWARNINGAddress missing or unusable
BAD_DATABAD_DATA_IDWARNINGIdentity document missing or unusable
BAD_DATABAD_DATA_EMAILWARNINGEmail missing or unusable
BAD_DATABAD_DATA_MOBILEWARNINGMobile number missing or unusable
BLOCKLISTEDMATCHED_INTERNALBLOCKInternal blocklist match
BLOCKLISTEDMATCHED_SHAREDBLOCKShared blocklist match
BLOCKLISTEDMATCHED_EXTERNALBLOCKExternal blocklist match
DECEASEDDECEASEDBLOCKPerson is deceased
DEVICEDEVICE_FRAUD_MATCHREVIEWDevice fraud detected
DEVICEDEVICE_INVALIDWARNINGDevice invalid or unverifiable
DOCUMENTDATA_VALIDATIONREVIEWDocument data validation failure
DOCUMENTDATA_CONSISTENCYREVIEWDocument data inconsistent
DOCUMENTDATA_COMPARISONREVIEWDocument mismatch with other sources
DOCUMENTVISUAL_AUTHENTICITYREVIEWDocument failed visual authenticity
DOCUMENTIMAGE_INTEGRITYREVIEWDocument image integrity issue
DOCUMENTOCRREVIEWOCR mismatch with user data
DOCUMENTCOMPROMISED_DOCUMENTBLOCKDocument is compromised
DOCUMENTLIVENESS_DETECTIONREVIEWLiveness detection failed
DOCUMENTDOCUMENT_COMPARISONREVIEWMultiple documents mismatch
DOCUMENTDOCUMENT_CHECK_INCOMPLETEINFODocument check incomplete
DUPLICATEDUPLICATEREVIEWDuplicate entity detected
EXPIRYREQUIRES_KYCWARNINGKYC expired
EXPIRYREQUIRES_IDVWARNINGIDV expired
EXPIRYREQUIRES_AMLWARNINGAML expired
EXPIRYREQUIRES_VISAWARNINGVisa verification expired
FRAUDFRAUD_LISTBLOCKKnown fraud list match
FRAUDFRAUD_CHECKREVIEWGeneric fraud detected
FRAUDFRAUD_DEVICEREVIEWDevice-based fraud detected
FRAUDFRAUD_IP_ADDRESSREVIEWIP-based fraud detected
FRAUDFRAUD_EMAIL_ADDRESSREVIEWEmail-based fraud detected
FRAUDFRAUD_PHONE_NUMBERREVIEWPhone-based fraud detected
FRAUDFRAUD_INCOMPLETEINFOFraud check incomplete
KYCPARTIALREVIEWPartial KYC success
KYCNOT_FOUNDREVIEWNo identity match found
KYCKYC_INCOMPLETEINFOKYC incomplete
SYSTEMSERVICE_TIMEOUTERRORAll providers timed out
SYSTEMSERVICE_ERRORERRORProvider or internal system error
VISADENY_LISTBLOCKVisa deny list match
VISAVISA_FAILEDREVIEWVisa verification failed
BIOMETRICSLIVENESS_DETECTIONREVIEWBiometric liveness failed
BIOMETRICSDOCUMENT_COMPARISONREVIEWSelfie vs document mismatch
BIOMETRICSBIOMETRICS_INCOMPLETEINFOBiometrics incomplete
WATCHLISTINTERNAL_MATCHREVIEWInternal watchlist match
RISKRISK_THRESHOLD_HIGHREVIEW/BLOCKHigh risk
RISKRISK_THRESHOLD_UNACCEPTABLEREVIEW/BLOCKUnacceptable risk

Risk Factors

FrankieOne calculates an overall risk assessment by evaluating multiple risk factors across identity, AML, fraud, behavior, and workflow integrity. Each factor contributes to the final risk level (LOW, MEDIUM, HIGH, UNACCEPTABLE) returned in workflow results.
All risk factors, weightings, thresholds, and scoring are configurable per customer. The examples below illustrate typical categories and signals, not fixed scoring rules.

Core Risk Factors (Overview)

FactorDescription
entity_typeIndividual or organisation being verified
entity_ageAge group derived from date of birth
document_typeType of identity document provided
jurisdiction_riskRisk associated with country of nationality, residence, birth, or document issuance
pep_levelPolitically Exposed Person classification
sanctions_hitsSanctions list match severity
adverse_mediaPresence of negative media
idv_resultsDocument, facial, and OCR verification outcomes
fraud_signalsDevice, IP, email, phone, and session behavior
behavioral_signalsRelationship length and workflow attempt patterns
workflow_integrityDuplicate entities or internal blocklists
For full risk view, see:
Assessing Risk

Risk Categories & Signals

Entity Profile Risk

Risk FactorHandlerValues
Entity Typeentity_ageUnder 18, Under 25, Adult 25+, Senior 65+
Entity Typeentity_typeIndividual, Organisation
Document Typedocument_type_lookupPassport, Driver License, National ID, Visa, Birth Certificate, Tax ID, etc.
Nationality Riskjurisdiction_lookupCountry-based
Residential Country Riskjurisdiction_lookupCountry-based
Birth Country Riskjurisdiction_lookupCountry-based
Document Issuing Country Riskjurisdiction_lookupCountry-based

AML & Screening Risk

Risk FactorHandlerValues
Sanctions Hitsnum_sanctionsLow, Medium, High
PEP Levelpep_level_lookupLevel 1–4
PEP Originpep_origin_lookupLocal, Foreign
Adverse Mediahas_adverse_mediaTRUE / FALSE
Watchlist Matchon_watchlistTRUE / FALSE

Identity Verification (IDV) Risk

Risk FactorHandler
Document Verification Resultidv_document_result
Facial Comparison Resultidv_facial_comparison_result
OCR Consistency Resultidv_ocr_comparison_result
These factors influence confidence in document authenticity and biometric matching.

Onboarding Fraud Risk

Risk FactorHandlerValues
Device Riskfraud_deviceLOW, MEDIUM, HIGH, UNACCEPTABLE, UNKNOWN
IP Address Riskfraud_ip_addressLOW, MEDIUM, HIGH, UNACCEPTABLE, UNKNOWN
Email Riskfraud_emailLOW, MEDIUM, HIGH, UNACCEPTABLE, UNKNOWN
Phone Riskfraud_phone_numberLOW, MEDIUM, HIGH, UNACCEPTABLE, UNKNOWN
Session Countfraud_count_session≤2, 3–5, >5

Behavioral & Integrity Risk

Risk FactorHandlerValues
Relationship Lengthrelationship_lengthNew, Short, Established, Credible
Workflow Attemptsworkflow_attempts_counterLow, Multiple, High

Workflow Logic Risk

Risk FactorHandlerImpact
Potential Duplicateunresolved_duplicatesReview or block
Confirmed Duplicatetrue_positive_duplicatesBlock
Internal Matchliston_matchlist_internalBlock

Custom Risk Factors

Risk FactorHandler
Customer-defined attributescustom_attribute_lookup
Custom attributes allow customers to inject domain-specific risk signals into workflows.

How Risk Is Used

  • Risk factors are evaluated during workflow execution
  • Results contribute to:
    • riskLevel
    • riskScore
    • Issue categories and severities
  • Outcomes may trigger:
    • Step-up verification
    • Manual review
    • Workflow termination
Risk scoring models vary by jurisdiction, industry, and customer configuration. Always validate behavior in UAT before production rollout.

6. OneSDK Events (Complete)

Lifecycle Events

oneSdk.on('ready', () => {})                    // SDK initialized                                     
oneSdk.on('loading', () => {})                  // Component loading                                   
oneSdk.on('mounted', () => {})                  // Component mounted to DOM                            
oneSdk.on('unmounted', () => {})                // Component removed from DOM                          

Result Events

oneSdk.on('results:success', (data) => {})      // Verification passed                                 
oneSdk.on('results:partial', (data) => {})      // Partial success, review needed                      
oneSdk.on('results:pending', (data) => {})      // Still processing                                    
oneSdk.on('results:fail', (data) => {})         // Verification failed                                 
                                                                                                       
// Legacy format (also supported)                                                                      
oneSdk.on('form:result:success', (data) => {})                                                         
oneSdk.on('form:result:failed', (data) => {})                                                          
oneSdk.on('form:result:pending', (data) => {})                                                         
oneSdk.on('form:result:partial', (data) => {})                                                         

Form Events

oneSdk.on('form:input:changed', (field, value) => {})                                                  
oneSdk.on('form:input:valid', (field) => {})                                                           
oneSdk.on('form:input:invalid', (field, errors) => {})                                                 
oneSdk.on('form:submitted', (data) => {})                                                              
oneSdk.on('form:step:changed', (step) => {})                                                           

Document Events

oneSdk.on('document:uploaded', (docInfo) => {})                                                        
oneSdk.on('document:captured', (docInfo) => {})                                                        
oneSdk.on('document:error', (error) => {})                                                             

Biometric Events

oneSdk.on('biometric:started', () => {})                                                               
oneSdk.on('biometric:captured', (data) => {})                                                          
oneSdk.on('biometric:error', (error) => {})                                                            

Error Events

oneSdk.on('error', (error) => {                                                                        
  // error.code, error.message, error.details                                                          
})                                                                                                     

Catch-All

oneSdk.on('*', (eventName, eventData) => {                                                             
  console.log(eventName, eventData);                                                                   
})                                                                                                     

7. Error Codes

Authentication Errors (AUTH-*)

CodeMessageResolution
AUTH-0001Missing credentialsAdd api_key and X-Frankie-CustomerID headers
AUTH-0002UnauthorizedCheck API key is valid
AUTH-0003ForbiddenCheck CustomerID has access
AUTH-0004Token expiredGenerate new session token

Validation Errors (API-*)

CodeMessageResolution
API-0400Bad requestCheck request body format
API-0404Not foundCheck endpoint URL and entityId
API-0409ConflictEntity already exists
API-0422Unprocessable entityValidate field values
API-0429Rate limitedReduce request frequency

System Errors (SYS-*)

CodeMessageResolution
SYS-1000Internal errorRetry request
SYS-1063Report generation failedContact support
SYS-1100Service unavailableCheck status page

Workflow Errors (WF-*)

CodeMessageResolution
WF-0001Workflow not foundCheck workflowName spelling
WF-0002Workflow not availableWorkflow not enabled for account
WF-0003Missing required dataAdd required fields for workflow

8. Workflow Requirements Matrix

WorkflowDocument RequiredAddress RequiredDOB RequiredName Required
*-IDOnly✅ Yes❌ No✅ Yes✅ Yes
*-TwoPlus❌ No✅ Yes✅ Yes✅ Yes
*-TwoPlusID✅ Yes✅ Yes✅ Yes✅ Yes
*-OnePlusOne✅ Yes❌ No✅ Yes✅ Yes
*-AgeVerify❌ No❌ No✅ Yes✅ Yes
*-AddressVerify❌ No✅ Yes❌ No✅ Yes

Document Requirements by Workflow Type

IDOnly Workflows:
{                                                                                                      
  "documents": {                                                                                       
    "IDENTITY": [{                                                                                     
      "type": "PASSPORT|DRIVERS_LICENSE|NATIONAL_ID",                                                  
      "country": "AUS",                                                                                
      "primaryIdentifier": "required"                                                                  
    }]                                                                                                 
  }                                                                                                    
}                                                                                                      
TwoPlus Workflows: Address line 1 can be provided in street name
{                                                                                                      
  "addresses": [{                                                                                      
    "type": "RESIDENTIAL",                                                                             
    "country": "AUS",                                                                                  
    "streetNumber": "required", //unless in streetName address line 1                                                                       
    "streetName": "required",  //can have address line 1                                                                        
    "locality": "required",   //generally required city/town/locality                                                                         
    "subdivision": "required",    //generally required state/region/subdivision                                                                     
    "postalCode": "required"                                                                           
  }]                                                                                                   
}                                                                                                      

9. Complete Request/Response Examples

Create Individual + Execute Workflow

Request:
POST /v2/individuals HTTP/1.1                                                                          
Host: api.uat.frankie.one                                                                              
api_key: your-api-key                                                                                  
X-Frankie-CustomerID: your-customer-id                                                                 
Content-Type: application/json                                                                         
                                                                                                       
{                                                                                                      
  "individual": {                                                                                      
    "name": {                                                                                          
      "givenName": "Jane",  
      "middleName": "",                                                                           
      "familyName": "Smith"                                                                            
    },                                                                                                 
    "dateOfBirth": {                                                                                   
      "year": "1990",                                                                                  
      "month": "05",                                                                                   
      "day": "15"                                                                                      
    },                                                                                                 
    "addresses": [{                                                                                    
      "type": "RESIDENTIAL",                                                                           
      "country": "AUS",                                                                                
      "streetNumber": "123",                                                                           
      "streetName": "Main",                                                                            
      "streetType": "Street",                                                                          
      "locality": "Sydney",                                                                            
      "subdivision": "NSW",                                                                            
      "postalCode": "2000"                                                                             
    }],                                                                                                
    "documents": {                                                                                     
      "IDENTITY": [{                                                                                   
        "type": "PASSPORT",                                                                            
        "country": "AUS",                                                                              
        "primaryIdentifier": "PA1234567"                                                               
      }]                                                                                               
    }                                                                                                  
  },                                                                                                   
  "serviceName": "KYC",                                                                                
  "workflowName": "AUS-Basic1V-IDOnly"                                                                 
}                                                                                                      
Response (201 Created):
{                                                                                                      
  "individual": {                                                                                      
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",                                                
    "entityType": "INDIVIDUAL",                                                                        
    "name": {                                                                                          
      "nameId": "uuid",                                                                                
      "givenName": "Jane",                                                                             
      "familyName": "Smith",                                                                           
      "displayName": "Jane Smith"                                                                      
    },                                                                                                 
    "dateOfBirth": {                                                                                   
      "dateOfBirthId": "uuid",                                                                         
      "year": "1990",                                                                                  
      "month": "05",                                                                                   
      "day": "15",                                                                                     
      "normalized": "1990-05-15"                                                                       
    },                                                                                                 
    "createdAt": "2026-01-27T00:00:00.000Z"                                                            
  },                                                                                                   
  "serviceProfiles": [{                                                                                
    "serviceProfileId": "uuid",                                                                        
    "entityId": "3fa85f64-5717-4562-b3fc-2c963f66afa6",                                                
    "serviceName": "KYC",                                                                              
    "state": "INIT"                                                                                    
  }],                                                                                                  
  "requestId": "01HN9XHZN6MGXM9JXG50K59Q85"                                                            
}                                                                                                      

Execute Workflow

Request:
POST /v2/individuals/3fa85f64-5717-4562-b3fc-2c963f66afa6/serviceprofiles/KYC/workflows/AUS-Basic1     
V-IDOnly/execute HTTP/1.1                                                                              
Host: api.uat.frankie.one                                                                              
api_key: your-api-key                                                                                  
X-Frankie-CustomerID: your-customer-id                                                                 
Content-Type: application/json                                                                         
                                                                                                       
{}                                                                                                     
Response:
{                                                                                                      
  "requestId": "01HN9XHZN6MGXM9JXG50K59Q86",                                                           
  "workflowExecutionId": "01HN9XHZN6MGXM9JXG50K59Q87"                                                  
}                                                                                                      

Get Results

Request:
GET /v2/individuals/3fa85f64-5717-4562-b3fc-2c963f66afa6 HTTP/1.1                                      
Host: api.uat.frankie.one                                                                              
api_key: your-api-key                                                                                  
X-Frankie-CustomerID: your-customer-id                                                                 
Response (workflow completed):
{                                                                                                      
  "individual": { ... },                                                                               
  "serviceProfiles": [{                                                                                
    "serviceName": "KYC",                                                                              
    "state": "ACTIVE",                                                                                 
    "workflowSummaries": [{                                                                            
      "workflowName": "AUS-Basic1V-IDOnly",                                                            
      "workflowExecutionId": "01HN9...",                                                               
      "workflowExecutionState": "COMPLETED",                                                           
      "status": "PASS",                                                                                
      "steps": {                                                                                       
        "order": ["START", "MATCHLIST", "KYC"],                                                        
        "passed": ["START", "MATCHLIST", "KYC"],                                                       
        "failed": [],                                                                                  
        "incomplete": []                                                                               
      },                                                                                               
      "issues": [],                                                                                    
      "riskAssessment": {                                                                              
        "riskLevel": "LOW",                                                                            
        "riskScore": 7                                                                                 
      }                                                                                                
    }]                                                                                                 
  }]                                                                                                   
}                                                                                                      

10. Webhook Payload Schemas

WorkflowComplete Event

{                                                                                                      
  "version": "2.0",                                                                                    
  "notificationType": "EVENT",                                                                         
  "function": "WorkflowComplete",                                                                      
  "functionResult": "SUCCESS",                                                                         
  "requestId": "01HN9...",                                                                             
  "entityId": "3fa85f64-...",                                                                          
  "entityType": "INDIVIDUAL",                                                                          
  "entityCustomerReference": "your-ref-123",                                                           
  "serviceName": "KYC",                                                                                
  "workflowExecutionId": "01HN9...",                                                                   
  "workflowName": "AUS-Basic1V-IDOnly",                                                                
  "overallStatus": "PASS",                                                                             
  "message": "Workflow completed successfully",                                                        
  "channel": "api"                                                                                     
}                                                                                                      

EntityRiskChanged Event

{                                                                                                      
  "version": "2.0",                                                                                    
  "notificationType": "EVENT",                                                                         
  "function": "EntityRiskChanged",                                                                     
  "functionResult": "SUCCESS",                                                                         
  "entityId": "3fa85f64-...",                                                                          
  "serviceName": "KYC",                                                                                
  "previousRiskLevel": "LOW",                                                                          
  "newRiskLevel": "MEDIUM",                                                                            
  "riskScore": 18                                                                                      
}                                                                                                      

11. Australian Document Identifiers

Driver’s License Format by State

Licence Number Formats
StateFormatLengthExample
ACTNumericUp to 10123456789
NTNumericUp to 10123456789
QLDNumeric8-912345678
NSWAlphanumeric6-8N49187
SAAlphanumeric6ABC123
TASAlphanumeric6-8A12345
VICNumericUp to 10123456789
WANumeric71234567
Card Number Formats
StateFormatLengthExample
ACTAlphanumeric10ABC1234567
NTNumeric6-8123456
QLDAlphanumeric10ABC1234567
NSWNumeric101234567890
SAAlphanumeric9ABC123456
TASAlphanumeric9ABC123456
VICAlphanumeric8ABC12345
WAAlphanumeric8-10ABC123456

Passport Format

  • Australian: 2 letters + 7 digits (e.g., PA1234567)
  • International: Varies by country

Medicare Card

  • 10 digits + IRN (1 digit)
  • Format: XXXX XXXXX X/X

12. Testing in UAT

Test Data Behavior

  • UAT environment connects to test data sources
  • Fake document numbers will return NOT_FOUND or BAD_DATA_ID
  • Use FrankieOne-provided test credentials for realistic responses

Expected Test Results

ScenarioExpected StatusIssues
Valid real IDPASSNone
Fake ID numberFAILBAD_DATA_ID
Missing ID for IDOnly400 ErrorValidation error
Expired documentFAILDOCUMENT_EXPIRED

13. Rate Limiting

Headers (when rate limited)

HTTP/1.1 429 Too Many Requests                                                                         
X-RateLimit-Limit: 20                                                                                  
X-RateLimit-Remaining: 0                                                                               
X-RateLimit-Reset: 1706316000                                                                          
Retry-After: 60                                                                                        

Best Practices

  1. Implement exponential backoff
  2. Cache workflow list (changes infrequently)
  3. Batch operations where possible
  4. Use webhooks instead of polling

14. SDK Installation

NPM

npm install @frankieone/one-sdk                                                                        

CDN

<script src="https://assets.frankiefinancial.io/one-sdk/v1/oneSdk.umd.js"></script>                    

Initialization

const oneSdk = await OneSDK({                                                                          
  session: sessionTokenFromBackend,                                                                    
  mode: "development",  // or "production"                                                             
  recipe: {                                                                                            
    form: {                                                                                            
      provider: { name: 'react' }  // or 'vanilla'                                                     
    }                                                                                                  
  }                                                                                                    
});                                                                                                    

OpenAPI & Swagger Specification

ItemStatusHow to Resolve
OpenAPI / Swagger specAvailableAccess via https://docs.frankieone.com/docs/introduction/resources
The OpenAPI specifications are published as separate resources.
Use the KYC v2 spec for individual, workflow, document, and results APIs.
Use the Core v2 spec for shared operations such as workflow discovery and audit access.

Remaining Gaps (Contact Support)

ItemStatusHow to Resolve
Webhook setupRequires manual configEmail [email protected]
Custom workflowsAccount-specificContact Customer Success
Production credentialsRequires contractContact Sales