Skip to main content

A Practical Guide to Testing FrankieOne v2 APIs

Document Overview

This guide explains how to use Postman or Bruno to explore and test FrankieOne’s v2 APIs, helping you understand how our platform works before integrating it into your application. API Version: This guide focuses on v2 APIs (recommended for all new integrations)

What You’ll Learn

  • What Postman and Bruno are and why they’re useful
  • How to choose the right tool for your team
  • How to access FrankieOne’s v2 API collection
  • How to set up your environment
  • How to create entities using v2 payloads
  • How to run verification checks
  • How to view results in the FrankieOne Portal
  • Common testing scenarios with v2
  • Troubleshooting tips

Who Should Read This

  • Developers evaluating FrankieOne
  • Technical teams planning integration
  • Anyone wanting to understand FrankieOne’s v2 APIs
  • Teams testing verification workflows

Table of Contents

  1. Choosing Your API Client
  2. Getting Started
  3. Setting Up Your Environment
  4. Understanding the v2 API Collection
  5. Using Testbed Data
  6. Running Your First v2 API Call
  7. Viewing Results in the Portal
  8. Common Testing Scenarios
  9. Understanding API Responses
  10. Best Practices
  11. Troubleshooting
  12. Next Steps
  13. FAQs

Choosing Your API Client

What Are API Clients?

API clients are tools that allow you to send API requests without writing code, see responses in real-time, and test different scenarios easily. Think of them as: A visual interface for interacting with APIs—like a web browser for APIs instead of websites.

Postman vs Bruno

Which Should You Choose?

Choose Postman if you:

  • Want cloud sync across devices
  • Prefer a polished, feature-rich interface
  • Need built-in team collaboration features
  • Are already familiar with Postman

Choose Bruno if you:

  • Want to version control your API collections with Git
  • Prefer data stored locally (privacy-focused)
  • Don’t want to create an account
  • Work offline frequently
  • Want a lightweight, fast tool
Both tools work equally well with FrankieOne’s v2 APIs. Choose based on your team’s preferences.

Getting Started

Step 1: Install Your Chosen Tool

Download:Alternative: Use Postman Web (browser-based) at https://web.postman.co

Step 2: Get FrankieOne’s v2 API Collection

Where to Find It

What You’ll Get

  • Collection file (.json format)
  • Pre-configured v2 API requests
  • Example requests for all v2 endpoints
  • Organized by functionality

Step 3: Import the Collection

  1. Click “Import” (top left)
  2. Choose file or drag and drop
  3. Select the FrankieOne v2 collection file
  4. Click “Import”
Result: Collection appears in left sidebar, ready to use.

Step 4: Get Your API Credentials

You’ll need: How to Get Them:
  1. Contact your FrankieOne representative
  2. Request UAT/Sandbox access
  3. Ask about Customer Child ID (if you have sub-accounts)
  4. Receive credentials via secure channel
  5. Keep credentials secure
Environments:

Understanding Customer Child ID

What is Customer Child ID? X-Frankie-CustomerChildID is an optional header used for sub-account isolation within your main FrankieOne account. When to Use It: How It Works: Key Points:
  • CustomerChildID is configured by FrankieOne - you cannot create child IDs via API
  • All entities created with a specific CustomerChildID are isolated to that sub-account
  • Reporting and data access are separated by CustomerChildID
  • If you don’t have sub-accounts, leave this header blank or omit it
Important: If you have CustomerChildID configured, you must use the correct value in the header. Using the wrong CustomerChildID or omitting it when required may result in entities being created in the wrong sub-account or authentication errors.
To Get Your CustomerChildID:
  1. Contact your FrankieOne representative
  2. Ask if you have sub-accounts configured
  3. Receive CustomerChildID values if applicable
  4. Add to your environment variables

Setting Up Your Environment

What Are Environments?

Environments store variables like your API base URL, Customer ID, and API Key. They let you:
  • Switch between UAT and Production easily
  • Keep credentials secure
  • Reuse variables across all requests
  • Share collections without exposing keys

Required Variables for v2 API

The following variables match the FrankieOne Postman environment:
Additional element-level variables are also available in the Postman environment for use after entity creation: nameId, dateOfBirthId, addressId, documentId, phoneNumberId, emailAddressId, attachmentId, and sessionToken. These are typically auto-populated by test scripts in the Postman collection.

Creating Your Environment

Step 1: Create New Environment
  1. Click “Environments” (left sidebar)
  2. Click ”+” to create new
  3. Name it: FrankieOne KYC V2 AUS
Step 2: Add VariablesStep 3: Activate Environment
  1. Click “Save”
  2. Select environment from dropdown (top right)

Using Variables in Requests

Both Postman and Bruno use the same syntax for variables:
Example v2 Request URL:
Example Headers:
Optional headers: X-Frankie-CustomerChildID, X-Frankie-Channel, and X-Frankie-Username are all optional. Include them only when applicable to your configuration. In the Postman collection, these optional headers are present but disabled by default.
The tool automatically replaces {{variableName}} with the actual value from your environment.

Understanding the v2 API Collection

v2 API Structure

FrankieOne’s v2 API collection is organized by entity type and functionality. The following reflects the folder structure in the FrankieOne Postman collection:

Key v2 Endpoints

All v2 endpoint paths start directly with /v2/. There is no base path prefix such as compliance/v1.2 (that belongs to the v1 API).

Using Testbed Data

What is Testbed Data?

Testbed data is pre-configured test data that produces predictable results in the FrankieOne UAT environment. Purpose:
  • Test different scenarios
  • No real customer data needed
  • Consistent, repeatable results
  • Safe for testing
Available at: https://docs.frankieone.com/docs/test-data

Test Scenario Types

v2 Testbed Data Examples

Expected Result: CLEAR (PASS)
Expected Result: FAIL
Expected Result: PEP match
Expected Result: SANCTION match
Expected Result: PEP, SANCTION (both flags)
About Testbed Data:These examples use FrankieOne’s official testbed data with test names like TESTONE, TESTTWO, TESTELEVEN, etc. These are real test records in the UAT environment that produce predictable results.Do not use fictional names like “John Smith” or “Jane Doe” - use the actual testbed names provided above for consistent, reliable testing.
Important: Document Type Values in v2Use DRIVERS_LICENSE (American spelling with underscore), not DRIVERS_LICENCE.Common Document Types (subset — see API reference for complete list):
  • DRIVERS_LICENSE ✅ (correct - American spelling)
  • PASSPORT
  • NATIONAL_ID
  • VISA
  • IMMIGRATION
  • NATIONAL_HEALTH_ID
  • TAX_ID
  • BIRTH_CERT
  • CITIZENSHIP
  • MARRIAGE_CERT
  • UTILITY_BILL
  • BANK_STATEMENT
  • CONCESSION
  • PENSION
  • MILITARY_ID
  • OTHER
The full Document-Type enum in the OpenAPI specification includes additional types such as HEALTH_CONCESSION, DEATH_CERT, NAME_CHANGE, BANK_ACCOUNT, INTENT_PROOF, ATTESTATION, SELF_IMAGE, DEVICE, VEHICLE_REGISTRATION, PROOF_OF_ADDRESS, HOUSE_REGISTRATION, WORK_PERMIT, EMPLOYMENT_CERTIFICATE, and several business-related document types. Refer to the v2 API reference for the complete list.Australian Driver’s License Requirements: For Australian driver’s licenses, you must include both:
  • primaryIdentifier - License number (e.g., “283229690”)
  • secondaryIdentifier - Document number / Card number (e.g., “P5403241”)
Example:
Common Mistakes:
  • DRIVERS_LICENCE (British spelling)
  • DRIVER_LICENSE (missing S)
  • ❌ Abbreviations like DL
Important v2 Differences from v1:
  • Dates use objects: {year: "YYYY", month: "MM", day: "DD"}
  • Address fields: locality (not suburb), subdivision (not state), postalCode (not postcode)
  • Documents nested by category: documents.IDENTITY[]
  • Document ID field: primaryIdentifier (not idNumber)
  • schemaVersion is a readOnly response field — it is not required in requests
  • Base URL uses frankie.one domain (not frankiefinancial.io)
  • No base path prefix — endpoints start directly with /v2/

Running Your First v2 API Call

Overview: Create Individual Entity (v2)

This walkthrough demonstrates:
  1. Creating an individual entity using v2 API
  2. Understanding the v2 response
  3. Saving the entity ID for subsequent requests

Step 1: Select the Create Individual Request (v2)

  1. Expand “Individual Entities” folder in left sidebar
  2. Click “Create Entity with Aus Passport”
  3. Request details appear on right

Step 2: Review the v2 Request

URL:
Headers:
Header Details:
  • api_key (required): Your API authentication key
  • X-Frankie-CustomerID (required): Your main customer/account ID
  • X-Frankie-CustomerChildID (optional): Used for sub-account isolation when configured by FrankieOne
  • X-Frankie-Channel (optional): Identifies the channel the request originates from. Can be used in routing and risk calculations. Default values include api, portal, smartui, or any alphanumeric string.
  • X-Frankie-Username (optional): Username of the API caller
  • Content-Type: Always application/json for v2 API requests
In the Postman collection, X-Frankie-CustomerChildID, X-Frankie-Channel, and X-Frankie-Username are present but disabled by default. Enable them as needed for your configuration.
Body (JSON) - v2 Format:
Example uses FrankieOne testbed data: JUDY TESTTWO is a real test record in UAT that produces CLEAR (PASS) results. Use actual testbed names for reliable testing.
v2 Key Features:
  • Dates are objects, not strings
  • Addresses use locality, subdivision, postalCode
  • Email and phone are arrays with type and preference
  • All wrapped in individual object
  • schemaVersion is not required in requests (it is a readOnly response field per the OpenAPI spec)

Step 3: Send the Request

  • Click the blue “Send” button (top right)
  • Wait for response (usually 1-3 seconds)
  • Response appears in bottom panel

Step 4: Review the v2 Response

Response Status: 201 Created Response Body (illustrative — actual structure per OpenAPI individuals_entity_response schema):
Response structure note: The response wraps the individual data inside an individual object and may include a serviceProfiles array and a top-level requestId. The exact fields returned depend on your configuration. The Postman collection’s test scripts extract values like jsonData.individual.entityId and jsonData.serviceProfiles[0].serviceName, confirming this nested structure.
Key Information:

Step 5: Save the Entity ID

You’ll need the entityId for subsequent requests (workflows, documents, verifications).
Manual Method:
  1. Copy entityId from response (at individual.entityId)
  2. Go to your environment (click environment dropdown > Edit)
  3. Update variable: entityId = abc123-def456-ghi789-jkl012
  4. Save environment
Automatic Method (Post-response Script): The Postman collection includes pre-built test scripts that automatically save key variables. For example, the “Create Entity with Aus Passport” request includes:
Success! You’ve created a v2 individual entity.

Executing a Workflow (v2)

What Are Workflows?

Workflows in FrankieOne v2 are pre-configured verification processes that can include:
  • KYC (Electronic verification)
  • IDV (Document verification)
  • AML (Screening)
  • Risk assessment
Workflows are configured by FrankieOne based on your requirements. You execute them via API but cannot configure them via API.

Step 6: Execute a Workflow

Select the Request:
  1. Expand “Individual Workflows” folder
  2. Click “Execute Workflow”
URL:
Required Variables: Body:
Or if updating individual data and executing workflow:
Send the Request and review the response. Workflow Execute Response (illustrative — per OpenAPI spec): The response may return synchronously (200) or asynchronously (202):
The Postman collection’s test script extracts the execution ID automatically:
Synchronous vs Asynchronous: Workflow execution may return 200 (completed) or 202 (accepted for async processing). For async requests, use the requestId or workflowExecutionId to retrieve results via GET /v2/individuals/{entityId}/results. You can also set the X-Frankie-Background header to 1 to explicitly request asynchronous processing.

Create and Execute in One Call

The v2 API also supports creating an individual and executing a workflow in a single request: URL:
This endpoint accepts the full individual object in the request body and returns the combined response with workflowResult, serviceProfile, and individual data.

Viewing Results in the Portal

Why Use the Portal?

Use both together: Send requests in Postman/Bruno, then view detailed results in the Portal.

Accessing the Portal

Contact your FrankieOne representative for the correct portal URLs for your environments. Login: Use credentials provided by FrankieOne (same account as API credentials).

Finding Your Individual

Method 1: Search by Name
  1. Click “Entities” in navigation
  2. Enter customer name in search
  3. Click on individual to view
Method 2: Search by Entity ID
  1. Copy entityId from your API response
  2. Paste into search bar
  3. Click on individual
Method 3: View Recent
  1. Click “Entities”
  2. Sort by “Most Recent”
  3. Your test individual should be at top

Understanding the Portal View

Real-Time Updates

The Portal updates in real-time:
  1. Send API request via Postman/Bruno
  2. Refresh Portal (or wait for auto-refresh)
  3. See new results immediately

Common Testing Scenarios

Scenario 1: Create Individual with Minimal Data

Objective: Test minimal required fields for v2 individual creation v2 Payload:
Expected Result:
  • Status: 201 Created
  • Returns entityId within the individual object
  • Individual created successfully
  • Testbed result: CLEAR (PASS)

Scenario 2: Create Individual with Document

Objective: Create individual with identity document for verification v2 Payload:
Expected Result:
  • Individual created with document
  • Ready for workflow execution
  • Document details stored
  • Testbed result: CLEAR (PASS)

Scenario 3: Minor (Under 18)

Objective: Create individual under 18 years old v2 Payload:
Key Points:
  • Must include UNDER18 consent
  • Age calculated from dateOfBirth
  • May require guardian information (check with FrankieOne)

Scenario 4: Individual with Custom Attributes

Objective: Store custom business data with individual v2 Payload:
Use Cases:
  • Store business-specific data
  • Track customer segments
  • Store account types
  • Custom workflow routing

Scenario 5: International Individual (Non-Australian)

Objective: Create individual from another country v2 Payload:
Key Points:
  • Use correct ISO 3166-1 alpha-3 country codes (GBR, USA, CAN, etc.)
  • Include nationality field
  • Document types vary by country

Understanding API Responses

HTTP Status Codes

Common v2 Response Fields

Success Response (Create Individual) — per OpenAPI spec:
Error Response — per OpenAPI spec:
Authentication Error — per OpenAPI spec:

Common Validation Errors in v2


Best Practices

1. schemaVersion is Optional in Requests

schemaVersion is marked as readOnly in the OpenAPI specification. It is primarily a response field returned by the API. You do not need to include it in your request payloads.

2. Use Correct v2 Field Names

v2 Uses:
  • locality (not suburb)
  • subdivision (not state)
  • postalCode (not postcode)
  • primaryIdentifier (not idNumber)

3. Use Date Objects, Not Strings

Correct v2 Format:
Incorrect (v1 format):

4. Structure Documents Correctly

Correct v2 Format:
Incorrect:

5. Use Environment Variables

Why:
  • Easy to switch between UAT and Production
  • Keep credentials secure
  • Reuse across requests
  • Save entityId automatically

6. Use Testbed Data Only

  • Never use real customer data in testing
  • Testbed data provides predictable results
  • Safe and compliant
  • Repeatable tests

7. Check Both API Response and Portal

Complete testing workflow:
  1. Send request in Postman/Bruno
  2. Check API response
  3. View in Portal
  4. Verify both match
  5. Understand complete picture

8. Version Control (Bruno)

Since Bruno stores collections as files:
Add your environment files to .gitignore to avoid committing credentials:

9. Test Edge Cases

Don’t just test the happy path:
  • Missing optional fields
  • Invalid data formats
  • Different countries
  • Various document types
  • Minors vs adults
  • Multiple addresses

Troubleshooting

Authentication Error (401)

Problem: Unauthorized or Invalid API key Solutions:
Common Authentication Issues with CustomerChildID:
  • Using CustomerChildID when you don’t have sub-accounts configured
  • Using wrong CustomerChildID value
  • Omitting CustomerChildID when you have sub-accounts
  • Typos in header name (must be exactly X-Frankie-CustomerChildID)

Date Format Error

Problem: Invalid date format or date validation errors Solutions: Correct:

Field Name Error

Problem: Unknown field or field not recognized Solutions:

Document Structure Error

Problem: Invalid document structure or validation errors Solutions: Correct v2 Structure:
Common Mistakes:
  • Using document instead of documents
  • Not nesting under category (IDENTITY)
  • Using array instead of object for documents
  • Using idNumber instead of primaryIdentifier

Entity Not Found (404)

Problem: Entity not found Solutions:

No Results in Portal

Problem: Can’t find individual in Portal Solutions:

Bruno-Specific Issues

Collection Not Loading:
  • Ensure the folder contains a valid bruno.json file
  • Check file permissions on the collection folder
  • Verify you’re opening the correct folder
Import Issues:
  • Bruno supports Postman Collection v2.1 format
  • If import fails, try exporting from Postman as Collection v2.1
  • Check for special characters in collection name
Environment Variables Not Working:
  • Ensure environment is activated (check dropdown)
  • Verify variable syntax: {{variableName}}
  • Check for typos in variable names

Getting Help

FrankieOne Support:
  • Contact your FrankieOne representative
  • Email: help@frankieone.com
  • Include: Entity ID, requestId, full request/response, error messages, screenshots
Documentation:

Next Steps

After Testing v2 APIs

  1. Understand the v2 APIs
    • Review all v2 endpoints
    • Test various scenarios
    • Document requirements
  2. Plan Your Integration
    • Determine which v2 APIs you need
    • Design workflow
    • Plan error handling
    • Consider migration from v1 if applicable
  3. Review Documentation
    • v2 API reference
    • Integration guides
    • Security guidelines
    • Best practices
  4. Start Development
    • Use your test collection as reference
    • Implement in your application
    • Follow v2 payload structure
    • Handle v2 responses correctly
  5. Move to Production
    • Complete UAT testing
    • Get production credentials
    • Update frankie-environment variable (remove uat segment — production URL is https://api.frankie.one)
    • Deploy

FAQs

General

Use v2 for all new integrations. v2 is the current recommended version with:
  • Better structure for complex scenarios
  • Active development and support
  • Clearer entity type separation
  • More explicit field names
v1 is maintained for backward compatibility only.
No. Choose one API version and use it consistently throughout your integration.
Bruno is completely free and open-source. Postman has a free tier that’s sufficient for testing FrankieOne v2 APIs.
No. Always use testbed data. Never use real customer data in testing environments.

v2 Specific

Key differences:
  • Base URL: https://api.{env}.frankie.one (not frankiefinancial.io)
  • Path: Endpoints start at /v2/ directly (no compliance/v1.2 prefix)
  • Date format: Objects {year, month, day} instead of strings "YYYY-MM-DD"
  • Field names: locality, subdivision, postalCode (not suburb, state, postcode)
  • Documents: Nested by category documents.IDENTITY[]
  • Entity type: Implied by endpoint (/individuals vs /organizations)
  • Schema version: readOnly response field — not required in requests
  • Email/Phone: Arrays instead of single values
  • Response structure: Data nested under individual object with requestId at top level
No. schemaVersion is marked as readOnly in the OpenAPI specification. It is a response field returned by the API and is not required in request payloads.
v2’s object format provides:
  • More explicit structure
  • Better validation
  • Clearer parsing
  • Support for partial dates
Yes. v2 supports multiple documents per category:

Tool-Specific

  • Postman: Export and share, or use Postman team workspaces
  • Bruno: Share via Git repository (add environment files to .gitignore)
Yes. Bruno can import Postman collections directly (v2.1 format).
Both support automation:
  • Postman: Newman CLI for running collections
  • Bruno: Bruno CLI (bru run) for running collections
The FrankieOne Postman collection includes pre-built test scripts that automatically save entityId and other variables after entity creation. If creating your own requests:Postman:
Bruno:
Note: The entity ID is accessed at individual.entityId (nested under the individual object), not at the top level.

FrankieOne-Specific

  • UAT: Testing environment (https://api.uat.frankie.one) with testbed data, safe for experimentation
  • Production: Live environment (https://api.frankie.one) with real customers, use only after thorough testing
Always test in UAT first.
Customer Child ID (X-Frankie-CustomerChildID) is for sub-account isolation within your main account.You need it if:
  • You have multiple brands or business units
  • You’re a reseller with multiple clients
  • FrankieOne has configured sub-accounts for you
You don’t need it if:
  • You have a single, unified account
  • FrankieOne hasn’t mentioned sub-accounts to you
How to know: Contact your FrankieOne representative to confirm if you have CustomerChildID configured.If you have it: Include the header in all requests:
If you don’t: Omit the header or leave the variable blank. In the Postman collection, this header is disabled by default.
Check with FrankieOne for specific retention policies. Generally, test data may be periodically cleaned.
Workflows are configured by FrankieOne based on your requirements. Contact your representative to:
  • See available workflows
  • Understand what each workflow does
  • Request custom workflows
You can also retrieve available workflows via GET /v2/workflows (with optional serviceName query parameter).
No. Workflows are configured by FrankieOne. You can only execute workflows and retrieve workflow information via API.
Beyond the required api_key and X-Frankie-CustomerID, the v2 API supports these optional headers:
  • X-Frankie-CustomerChildID — Sub-account isolation
  • X-Frankie-Channel — Channel identifier (e.g., api, portal, smartui). Can be used in routing and risk calculations.
  • X-Frankie-Username — Username of the API caller
  • X-Frankie-Background — Set to 1 for asynchronous processing (returns 202 instead of waiting)

Summary

Key Takeaways

v2 Quick Reference

Minimal v2 Individual:

Getting Started Checklist

1

Install your tool

Install Postman or Bruno
2

Get the v2 collection

Download FrankieOne v2 API collection
3

Import

Import collection into your tool
4

Get credentials

Get API credentials from FrankieOne (UAT)
5

Configure environment

Set up environment variables (matching Postman environment)
6

Review v2 structure

Understand v2 payload format
7

First v2 API call

Create your first individual (v2)
8

Save entityId

Auto-save or manually save entity ID (from individual.entityId)
9

View in Portal

View results in Portal
10

Execute workflow

Test workflow execution
11

Test scenarios

Test different v2 scenarios
12

Document findings

Document your findings and questions
13

Plan integration

Plan your v2 API integration

Additional Resources

FrankieOne

Postman

Bruno


Document Version: 4.0 (v2 Corrected)
Last Updated: February 2026
API Version: v2
Audience: Developers and technical teams evaluating or integrating FrankieOne v2 APIs