Skip to main content
Naturally this is only possible via API, and dependent on an outsourcing agreement being ratified.

Optimising Customer Identification

One of the primary advantages of our solution is the ability to leverage existing customer identity data to streamline the onboarding process. In optimal scenarios, this can eliminate the need for redirects or third-party verification flows, maintaining the integrity of your user experience.

Regulatory Framework and Data Usage

The outsourcing agreement establishes a framework for sharing customer identification data with Iron for KYC/KYB purposes. However, it’s crucial to note that data collected prior to the agreement’s execution falls outside its scope. While we may utilise certain aspects of pre-existing data, regulatory requirements—specifically AML and compliance standards—mandate that we independently collect and verify critical identification elements, typically through our authorised KYC providers.

Data Collection Timeline Example

To illustrate the application of these principles, consider the following scenario with an outsourcing agreement executed at 13:00 (UTC) on January 1, 2025:

Customer Identification Data Status

  • Post-Agreement Data (collected after 13:00, January 1, 2025) Fully compliant for immediate integration into Iron’s approval process
  • Pre-Agreement Data (collected before 13:00, January 1, 2025) Requires supplementary verification through Iron’s authorized providers
This timeline clearly delineates the regulatory requirements and processing pathways for customer identification data based on its collection date relative to the agreement’s execution.

Technical Details

This section is still being fleshed out, but at a minimum provides some complete API request examples.

Onboarding via API

Once completed the process mirrors the primary onboarding flow exactly, with one exception, the creation of an Identification. In this case a body must be provided for the request.

In the KYC case:

curl --request POST \
     --header 'accept: application/json; charset=utf-8' \
     --header 'idempotency-key: <unique-request-id>' \
     --header 'x-api-key: <your-api-key>' \
     --url 'https://api.sandbox.iron.xyz/api/customers/<customer_id>/identifications'
     --data-raw '{
       "Person": {
         "first_name": "John",
         "last_name": "Smith",
         "full_name": "John Smith",
         "date_of_birth": "1990-01-01",
         "address": {
           "address_street_1": "123 Main St",
           "address_street_2": "Apartment 1",
           "address_city": "Anytown",
           "address_state": "CA",
           "address_zip_code": "12345",
           "address_country": "US"
         },
         "email_address": "[email protected]",
         "phone_number": "+491234567899",
         "documents": [
           {
             "name": "proof_of_address.pdf",
             "file": "base64_document_without_prefix",
             "type": "ProofOfAddress"
           }
         ],
         "identity": {
           "identity_country_code": "US",
           "identity_number": "1234567894",
           "identity_document_type": "Passport",
           "identity_document_front": "base64_document_without_prefix",
           "identity_document_back": "base64_document_without_prefix",
           "selfie": "base64_document_without_prefix",
           "selfie_collected_at": "2025-04-03T13:11:02.263587+00:00",
           "ip_address": "127.0.0.1"
         },
         "person_questions": {
           "employment_status": "Employed",
           "intended_account_usage": ["EverydayPayments", "CrossBorderTransfers"],
           "monthly_income": "Between1000And2000",
           "employer_name": "Acme Inc",
           "source_of_funds": "SalaryAndWages",
           "expected_monthly_transaction_volume": "Between1000And5000",
           "pep_relationships": ["President of a country"]
         },
         "sharing_consent": true,
         "consent_collected_at": "2025-04-01T13:11:02.263655+00:00"
       }
     }'

In the KYB Case:

curl --request POST \
     --header 'accept: application/json; charset=utf-8' \
     --header 'idempotency-key: <unique-request-id>' \
     --header 'x-api-key: <your-api-key>' \
     --url 'https://api.sandbox.iron.xyz/api/customers/<customer_id>/identifications'
     --data-raw '{
       "Business": {
         "name": "Some Business",
         "tax_identification_number": "1234567899",
         "website": "https://www.my_business.com",
         "formation_date": "2021-01-01",
         "country_code": "US",
         "state_code": "AZ",
         "business_entity_id": "1231239",
         "addresses": [
           {
             "address_street_1": "123 Main St",
             "address_street_2": "Apartment 1",
             "address_city": "Anytown",
             "address_state": "CA",
             "address_zip_code": "12345",
             "address_country": "US"
           }
         ],
         "phone_numbers": [
           "+491234567989"
         ],
         "email_addresses": [
           "info@some_business.com"
         ],
         "current_activities": {
           "primary_business_activities": "AgricultureAndForestry",
           "business_details": "Making bacon",
           "main_business_countries": "US",
           "source_of_funds": [
             "RevenueFromBusinessOperations"
           ],
           "last_year_turnover": "HundredKToTwoFiftyK",
           "planned_turnover_this_year": "HundredKToTwoFiftyK",
           "regulated_or_supervised": null
         },
         "planned_activities": {
           "estimated_monthly_turnover": "HundredKToTwoFiftyK",
           "estimated_monthly_transactions": "LessThanTen",
           "source_and_destination_countries": "US"
         },
         "business_officers": [
           {
             "first_name": "John",
             "last_name": "Smith",
             "full_name": "John Smith",
             "birth_date": "1990-01-01",
             "ownership_percent": 50,
             "shares_allocated": 100,
             "roles": [
               "Director",
               "BeneficiaryOwner"
             ],
             "email": "john@my_business.com",
             "identity": {
               "identity_country_code": "US",
               "identity_number": "1234567899",
               "identity_document_type": "Passport",
               "identity_document_front": "base64_document_without_prefix",
               "identity_document_back": "base64_document_without_prefix",
               "selfie": "base64_selfie_without_prefix",
               "selfie_collected_at": "2025-04-02T13:11:02.263587+00:00",
               "ip_address": "127.0.0.1"
             },
             "address": {
               "address_street_1": "123 Main St",
               "address_street_2": "Apartment 1",
               "address_city": "Anytown",
               "address_state": "CA",
               "address_zip_code": "12345",
               "address_country": "US"
             },
             "phone_number": "+1234567897",
             "pep_relationships": [
               "President of some Nation",
             ],
             "initiator": true,
             "consent_given": true,
             "consent_collected_at": "2025-04-01T13:11:02.263655+00:00"
           }
         ],
         "documents": [
           {
             "name": "red.png",
             "file": "base64_document_without_prefix",
             "type": "BusinessRegistrationDocument"
           },
           {
             "name": "blue.png",
             "file": "base64_document_without_prefix",
             "type": "MemorandumOfAssociation"
           },
           {
             "name": "green.png",
             "file": "base64_document_without_prefix",
             "type": "ShareholdersRegistry"
           }
         ],
         "related_companies": [],
         "ip_address": "127.0.0.1"
       }
     }'
Please see the createCustomerIdentification endpoint for more details on each parameter and its purpose.