Verification Users
  • API Integration
    • Getting Started
    • Authentication
    • Requests
    • Responses
    • Errors
    • Verification APIs
      • Retrieve Company & Certificates
      • Bulk Retrieve Companies & Certificates
      • Match Companies
      • Retrieve Company & Certificates by IAF ID
      • Bulk Retrieve Company & Certificates by IAF ID
      • Retrieve Certificate by IAF ID
Powered by GitBook
On this page
  • Retrieve Company & Certificates
  • Headers
  • Request Body
  • Example Payload Request
  • Responses
Export as PDF
  1. API Integration
  2. Verification APIs

Retrieve Company & Certificates

Retrieve Company & Certificates

Find company and certificates by name and match rate.

POST /company

Fields that are marked with an asterisk (*) are mandatory.

  • The API can only match one Certified Entity from IAFCertSearch per request.

  • Company Information Requirements:

    • At least one of the two fields, company_name or company_identifiers, must be provided.

  • Match Rate Value:

    • The default rate value is set to 100.

    • The minimum acceptable rate value is 80, regardless of whether a lower threshold is specified.

    • Valid rate values range from 80 to 100, in increments of 5.

    • Any rate value exceeding 100 will automatically be capped at 100.

  • Response Value:

    • The API will return a single matched Certified Entity record with its Certificates.

Headers

Name
Type
Description

Content-Type*

String

application/json

x-http-authorization*

String

API Key received from https://www.iafcertsearch.org/api-verification

Example:

x-http-authorization: <<API KEY>>

Request Body

Name
Type
Description

company_country*

String

company_name

String

Certified Entity Name (Company Name) as detailed on the Certificate.

company_identifiers

Object

Additional Company Fields

Format: "company_identifiers": {

"vat": "string",

"tax_id": "string",

"business_registration_number": "string",

"duns_number": "string",

"company_id_number": "string"

}

match_rate

Number / String

The percentage or similarity score indicating how closely the details of two companies match during the verification process. Example: 100 | "100%"

Example Payload Request

{
  "company_name": "IAF",
  "company_country": "Australia",
  "company_identifiers": {
    "vat": null,
    "tax_id": null,
    "business_registration_number": null,
    "duns_number": null,
    "company_id_number": null
  },
  "match_rate": 90
}
{
  "company_name": null,
  "company_country": "Australia",
  "company_identifiers": {
    "vat": "VAT",
    "tax_id": "TAX ID",
    "business_registration_number": "BUSINESS REGISTRATION NUMBER",
    "duns_number": "DUNS NUMBER",
    "company_id_number": "COMPANY ID NUMBER"
  },
  "match_rate": 90
}
{
  "company_name": "IAF",
  "company_country": "Australia",
  "company_identifiers": {
    "vat": null,
    "tax_id": null,
    "business_registration_number": null,
    "duns_number": "DUNS NUMBER",
    "company_id_number": "COMPANY ID NUMBER"
  },
  "match_rate": 100
}
{
  "company_name": "QualityTrade",
  "company_country": "Australia",
  "company_identifiers": { // Have priority over company_name
    "vat": "VAT",
    "tax_id": "TAX ID",
    "business_registration_number": "BUSINESS REGISTRATION NUMBER",
    "duns_number": "DUNS NUMBER",
    "company_id_number": "COMPANY ID NUMBER"
  },
  "match_rate": 100
}
curl --location --globoff --request POST '{API_URL}/company' \
--header 'x-http-authorization: <API_KEY>' \
--header 'Content-Type: application/json' \
--data '{
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
}'
require "uri"
require "json"
require "net/http"

url = URI("{API_URL}/company")

http = Net::HTTP.new(url.host, url.port);
request = Net::HTTP::Post.new(url)
request["x-http-authorization"] = 
request["Content-Type"] = "application/json"
request.body = JSON.dump({
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
})

response = http.request(request)
puts response.read_body
import http.client
import json

conn = http.client.HTTPSConnection("{API_URL}")
payload = json.dumps({
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
})
headers = {
  'x-http-authorization': '<API_KEY>',
  'Content-Type': 'application/json'
}
conn.request("POST", "/company", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => '{API_URL}/company',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
}',
  CURLOPT_HTTPHEADER => array(
    'x-http-authorization: <API_KEY>',
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;
OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\n  \"company_name\": \"string\",\n  \"company_country\": \"string\",\n  \"company_identifiers\": {\n    \"vat\": \"string\",\n    \"tax_id\": \"string\",\n    \"business_registration_number\": \"string\",\n    \"duns_number\": \"string\",\n    \"company_id_number\": \"string\"\n  },\n  \"match_rate\": 90\n}");
Request request = new Request.Builder()
  .url("{API_URL}/company")
  .method("POST", body)
  .addHeader("x-http-authorization", "<API_KEY>")
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();
const axios = require('axios');
let data = JSON.stringify({
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
});

let config = {
  method: 'post',
  maxBodyLength: Infinity,
  url: '{API_URL}/company',
  headers: { 
    'x-http-authorization': '<API_KEY>', 
    'Content-Type': 'application/json'
  },
  data : data
};

axios.request(config)
.then((response) => {
  console.log(JSON.stringify(response.data));
})
.catch((error) => {
  console.log(error);
});
package main

import (
  "fmt"
  "strings"
  "net/http"
  "io"
)

func main() {

  url := "{API_URL}/company"
  method := "POST"

  payload := strings.NewReader(`{
  "company_name": "string",
  "company_country": "string",
  "company_identifiers": {
    "vat": "string",
    "tax_id": "string",
    "business_registration_number": "string",
    "duns_number": "string",
    "company_id_number": "string"
  },
  "match_rate": 90
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("x-http-authorization", "<API_KEY>")
  req.Header.Add("Content-Type", "application/json")

  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := io.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}
var options = new RestClientOptions("{API_URL}/company")
{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("", Method.Post);
request.AddHeader("x-http-authorization", "<API_KEY>");
request.AddHeader("Content-Type", "application/json");
var body = @"{" + "\n" +
@"  ""company_name"": ""string""," + "\n" +
@"  ""company_country"": ""string""," + "\n" +
@"  ""company_identifiers"": {" + "\n" +
@"    ""vat"": ""string""," + "\n" +
@"    ""tax_id"": ""string""," + "\n" +
@"    ""business_registration_number"": ""string""," + "\n" +
@"    ""duns_number"": ""string""," + "\n" +
@"    ""company_id_number"": ""string""" + "\n" +
@"  }," + "\n" +
@"  ""match_rate"": 90" + "\n" +
@"}";
request.AddStringBody(body, DataFormat.Json);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

Responses

Request Successful

{
  "data": {
    "ce_id": string,
    "matched_certified_entity_name": string,
    "match_status": string,
    "match_type": string,
    "certified_entity_english_name": string,
    "certified_entity_trading_name": string,
    "country": string,
    "certified_entity_addresses": [
      {
        "street": string,
        "city": string,
        "state": string,
        "post_code": string,
        "full_address": string,
        "country": string
      }
    ],
    "certificates": [
      {
        "cert_id": string,
        "accreditation_bodies_name": string,
        "certification_bodies_name": string,
        "certification_number": string,
        "certification_status": string,
        "certification_scope": string,
        "certification_standards_scheme": [
          {
            "standard_name": string,
            "scheme_name": string,
            "is_accredited_mla": boolean
          }
        ],
        "certification_main_sites": [
          {
            "street": string,
            "city": string,
            "state": string,
            "post_code": string,
            "full_address": string,
            "scope": string,
            "country": string
          }
        ],
        "certification_additional_sites": [
          {
            "street": string,
            "city": string,
            "state": string,
            "post_code": string,
            "full_address": string,
            "scope": string,
            "country": string
          }
        ],
        "certification_sectors": [
          {
            "sector_name": string,
            "sector_code": string
          }
        ],
        "updated_at": integer
      }
    ]
  }
}

Some data are Confidential

{
  "data": {
    "ce_id": string,
    "matched_certified_entity_name": string,
    "match_status": string,
    "match_type": string,
    "certified_entity_english_name": "Confidential",
    "certified_entity_trading_name": "Confidential",
    "country": string,
    "certified_entity_addresses": [
      {
        "street": "Confidential",
        "city": "Confidential",
        "state": "Confidential",
        "post_code": "Confidential",
        "full_address": "Confidential",
        "country": string
      }
    ],
    "certificates": [
      {
        "cert_id": string,
        "accreditation_bodies_name": string,
        "certification_bodies_name": string,
        "certification_number": string,
        "certification_status": string,
        "certification_scope": string,
        "certification_standards_scheme": [
          {
            "standard_name": string,
            "scheme_name": string,
            "is_accredited_mla": boolean
          }
        ],
        "certification_main_sites": [
          {
            "street": string,
            "city": string,
            "state": string,
            "post_code": string,
            "full_address": string,
            "scope": string,
            "country": string
          }
        ],
        "certification_additional_sites": [
          {
            "street": string,
            "city": string,
            "state": string,
            "post_code": string,
            "full_address": string,
            "scope": string,
            "country": string
          }
        ],
        "certification_sectors": [
          {
            "sector_name": string,
            "sector_code": string
          }
        ],
        "updated_at": integer
      }
    ]
  }
}

Bad Request - Validation Errors

{
  "type": "string",
  "title": "Validation errors.",
  "status": 400,
  "detail": "The request body has validation errors.",
  "instance": "/company",
  "code": "validation",
  "errors": [
    {
      "field": "field_name",
      "detail": "error_message"
    }
  ]
}

Unauthorized Access

{
  "type": "string",
  "title": "Unauthorized access.",
  "status": 401,
  "detail": "Authentication failed due to invalid credentials or missing token.",
  "instance": "/company",
  "code": "unauthorized"
}

Forbidden Access

{
  "type": "string",
  "title": "Forbidden access.",
  "status": 403,
  "detail": "You do not have access to this resource.",
  "instance": "/company",
  "code": "forbidden"
}

Insufficient Credit

{
  "type": "string",
  "title": "Insufficient credit.",
  "status": 403,
  "detail": "You are trying to access data that exceeds your available credits. To increase your available credits, please contact us at info@iafcertsearch.org.",
  "instance": "/company",
  "code": "insufficient_credit"
}

API Request Limit Reached

{
    "type": "string",
    "title": "API request limit reached.",
    "status": 403,
    "detail": "API request limit reached. To increase your API request limit, contact us at info@iafcertsearch.org.",
    "instance": "/company",
    "code": "api_request_limit_reached"
}

Not Found

{
  "type": "string",
  "title": "Resource not found.",
  "status": 404,
  "detail": "Company not found in IAFCertSearch.",
  "instance": "/company",
  "code": "not_found"
}
PreviousVerification APIsNextBulk Retrieve Companies & Certificates

Last updated 1 month ago

Country/Economy of the main entity address for the Certified Entity. (click for more information) Example: Australia | AU | AUS

Supports full country name, alpha-2 and alpha-3 format