Skip to main content
Onboard individual customers to enable cross-border payments and payouts through Fin.com’s platform. This guide walks you through creating individual customer profiles, uploading verification documents, and managing the compliance workflow using the V2 API.

Prerequisites

Before you begin, ensure you have:

Onboarding Steps


Request Body Structure

Verification Type (Required)

Verification type determines how customer identity is validated. STANDARD uses traditional document verification. On RELIANCE, Fin.com relies on your KYC. Please contact our compliance team to know more.
RELIANCE verification must be explicitly enabled for your client. If not available, you’ll receive a 423 error with the message: "RELIANCE is not available for your client"

Basic Information (Required)

Personal details exactly as shown on identity documents. All fields must use only English (Latin) characters. If any field contains non-ASCII characters, provide a transliterated value in the corresponding _en field.
Fields:
Email must be all lowercase or validation will fail. Convert to lowercase before sending: maria.garcia@example.com ✓ not Maria.Garcia@Example.com

Tax Info Array

Each entry in tax_info must have a unique document_id.
TIN Format by Country:
  • USA: Social Security Number in format xxx-xx-xxxx (e.g., 123-45-6789)
  • Other countries: Must use the country’s official Tax Identification Number format
V2 Change: tax_info replaces tin. V1 used a single tin string field. V2 uses a tax_info array, which supports multiple tax documents across different countries.
Example:

Address (Required)

Current residential address of the customer. The country field must match basic_info.country_of_residence.
Fields:
Subdivision Code Format: Use ISO 3166-2 codes from the catalogue API. For example, use US-CA instead of CA for California, or GB-ENG instead of England. Fetch valid codes from /v1/countries//subdivisions.
V2 Change: Address fields. V1 used a single street field. V2 splits this into street_line_1 and street_line_2. The state field has been renamed to subdivision_code.
Example:

Financial Profile (Required)

Describes employment status, occupation, transaction purpose, volume, and fund sources. Use catalogue endpoints to fetch valid IDs.
Fields:
When fetching catalogue data for individual customers, use the ?type=INDIVIDUAL query parameter to get the correct options for purpose_id and source_of_fund_ids.
V2 Change: Multiple fund sources. V1 accepted a single source_of_fund_id integer. V2 uses source_of_fund_ids as an array, allowing multiple sources. V2 also adds employment_status (required), purpose_remarks, and source_of_funds_description.
Example:

Metadata (Optional)

Custom key-value pairs for internal tracking:

Document Upload & Attachment

After creating the individual customer, you must upload and attach verification documents.

Step 1: Upload Documents

Upload files using multipart/form-data:
Allowed file types: PDF, JPG, JPEG, PNGResponse:
Save these URIs - you’ll use them in the attachment request.

Step 2: Attach Documents

In V2, the customer_id moves to the URL path. The request body uses identifying_documents and address_documents arrays instead of V1’s proof_of_identity and proof_of_address objects.
  • The customer must be in INCOMPLETE or ACTION_REQUIRED status. Only one attach request can be in flight per customer. A second concurrent request returns 409.
  • The tos_policies_value should be parsed from the tos_policies_url query parameter returned when creating the customer. Providing this value signifies that the customer was shown the terms and accepted them.
Response (200 - queued for async processing):
V2 document attachment is asynchronous. A 200 response means the request is validated and queued, not that processing is complete. Listen for customer.status webhooks to track progress.

Identity Document Types & Side Requirements

At most one non-SELFIE identity document may be included per request. A SELFIE entry may be required depending on your client configuration. When required, include exactly one SELFIE entry with at least one file.

Address Proof Types

Exactly one address_documents entry is required. The country on the address document must match the customer’s country_of_residence.
Proof of Address Requirements:
  • Document must show the customer’s full name and complete address
  • Address must match the address provided in the customer creation request
  • Document should be issued within the last 90 days (for utility bills, bank statements, and government letters)

Key Rules

  • File URIs must be unique across the entire reques and must belong to this customer.
  • expiry_date is required for all identity document types except SELFIE and must be in the future.

Customer Status & Webhooks

After document submission, customers go through a verification workflow:Status Lifecycle:
Individual Status Lifecycle
Webhook Events:
  • customer.created - Fired when a customer is created
  • customer.status - Fired when status changes
Subscribe to webhooks to automate your onboarding flow. See Verifying Webhooks for setup.

Error Response Examples

Email validation error (not lowercase):
RELIANCE not enabled:
Address country mismatch:
Concurrent attach conflict (409):
Customer not eligible for attach (403):

What’s Next?

You’ve successfully created an individual customer using V2. Here’s what to do next:

1. Monitor Verification Status

Listen for webhook events to track verification progress:
  • Subscribe to customer.created and customer.status webhooks
  • Handle status transitions: INCOMPLETEREVIEWINGAPPROVED
  • For ACTION_REQUIRED statuses, re-submit corrected documents via the attach endpoint
  • For ON_HOLD statuses, respond to RFIs (Requests for Information) via email or Slack with additional documents
  • See Webhook Verification for implementation details

2. Test Edge Cases

Validate your integration handles common errors:
  • ✓ Email with uppercase characters
  • address.country not matching country_of_residence
  • ✓ Non-ASCII characters without _en transliteration fields
  • ✓ Missing required fields
  • ✓ RELIANCE verification when not enabled
  • ✓ Concurrent attach requests (409)
  • ✓ Expired identity documents
  • ✓ Duplicate file URIs across documents

3. Production Checklist

Before going live, ensure you have:
  • Implemented webhook handling for status updates
  • Added proper error handling for all failure scenarios (400, 401, 403, 409, 422)
  • Client-side validation for email lowercase and tax document format
  • Fetched and cached catalogue data (occupations, purposes, source-of-funds)
  • Implemented document upload UI/flow including selfie capture
  • Set up monitoring for failed verifications
  • Tested the complete workflow end-to-end

4. Create Beneficiaries

Once your individual customer is approved, you can create beneficiaries for payouts:

V1 to V2 Migration Summary


Common Pitfalls & Solutions