Onboard Suppliers

Merge a supplier application, bank details, and tax certificate into a single structured supplier profile.

Who this is for

Procurement and supply chain teams use this recipe to automate supplier onboarding. Upload the application form, bank details PDF, and tax certificate in a single API call — receive a unified supplier profile with company name, tax ID, bank account, certifications, and contact details.

curl -X POST https://api.iterationlayer.com/document-extraction/v1/extract \
  -H "Authorization: Bearer $ITERATION_LAYER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "files": [
      {
        "type": "url",
        "name": "supplier-application.pdf",
        "url": "https://example.com/docs/supplier-application.pdf"
      },
      {
        "type": "url",
        "name": "bank-details.pdf",
        "url": "https://example.com/docs/bank-details.pdf"
      },
      {
        "type": "url",
        "name": "tax-certificate.pdf",
        "url": "https://example.com/docs/tax-certificate.pdf"
      }
    ],
    "schema": {
      "fields": [
        { "name": "company_name", "type": "TEXT", "description": "Registered company name" },
        { "name": "tax_id", "type": "TEXT", "description": "Tax identification number" },
        { "name": "bank_account", "type": "OBJECT", "description": "Bank account details", "fields": [
          { "name": "iban", "type": "TEXT", "description": "IBAN number" },
          { "name": "bic", "type": "TEXT", "description": "BIC / SWIFT code" },
          { "name": "bank_name", "type": "TEXT", "description": "Name of the bank" }
        ]},
        { "name": "certifications", "type": "ARRAY", "description": "List of certifications held", "fields": [
          { "name": "certification", "type": "TEXT", "description": "Certification name" }
        ]},
        { "name": "contact", "type": "OBJECT", "description": "Primary contact person", "fields": [
          { "name": "name", "type": "TEXT", "description": "Contact person full name" },
          { "name": "email", "type": "TEXT", "description": "Contact email address" },
          { "name": "phone", "type": "TEXT", "description": "Contact phone number" }
        ]}
      ]
    }
  }'
import { IterationLayer } from "iterationlayer";
const client = new IterationLayer({ apiKey: "YOUR_API_KEY" });

const result = await client.extract({
  files: [
    {
      type: "url",
      name: "supplier-application.pdf",
      url: "https://example.com/docs/supplier-application.pdf",
    },
    {
      type: "url",
      name: "bank-details.pdf",
      url: "https://example.com/docs/bank-details.pdf",
    },
    {
      type: "url",
      name: "tax-certificate.pdf",
      url: "https://example.com/docs/tax-certificate.pdf",
    },
  ],
  schema: {
    fields: [
      { name: "company_name", type: "TEXT", description: "Registered company name" },
      { name: "tax_id", type: "TEXT", description: "Tax identification number" },
      { name: "bank_account", type: "OBJECT", description: "Bank account details", fields: [
        { name: "iban", type: "TEXT", description: "IBAN number" },
        { name: "bic", type: "TEXT", description: "BIC / SWIFT code" },
        { name: "bank_name", type: "TEXT", description: "Name of the bank" },
      ]},
      { name: "certifications", type: "ARRAY", description: "List of certifications held", fields: [
        { name: "certification", type: "TEXT", description: "Certification name" },
      ]},
      { name: "contact", type: "OBJECT", description: "Primary contact person", fields: [
        { name: "name", type: "TEXT", description: "Contact person full name" },
        { name: "email", type: "TEXT", description: "Contact email address" },
        { name: "phone", type: "TEXT", description: "Contact phone number" },
      ]},
    ],
  },
});

console.log(result);
from iterationlayer import IterationLayer
client = IterationLayer(api_key="YOUR_API_KEY")

result = client.extract(
    files=[
        {
            "type": "url",
            "name": "supplier-application.pdf",
            "url": "https://example.com/docs/supplier-application.pdf",
        },
        {
            "type": "url",
            "name": "bank-details.pdf",
            "url": "https://example.com/docs/bank-details.pdf",
        },
        {
            "type": "url",
            "name": "tax-certificate.pdf",
            "url": "https://example.com/docs/tax-certificate.pdf",
        },
    ],
    schema={
        "fields": [
            {"name": "company_name", "type": "TEXT", "description": "Registered company name"},
            {"name": "tax_id", "type": "TEXT", "description": "Tax identification number"},
            {"name": "bank_account", "type": "OBJECT", "description": "Bank account details", "fields": [
                {"name": "iban", "type": "TEXT", "description": "IBAN number"},
                {"name": "bic", "type": "TEXT", "description": "BIC / SWIFT code"},
                {"name": "bank_name", "type": "TEXT", "description": "Name of the bank"},
            ]},
            {"name": "certifications", "type": "ARRAY", "description": "List of certifications held", "fields": [
                {"name": "certification", "type": "TEXT", "description": "Certification name"},
            ]},
            {"name": "contact", "type": "OBJECT", "description": "Primary contact person", "fields": [
                {"name": "name", "type": "TEXT", "description": "Contact person full name"},
                {"name": "email", "type": "TEXT", "description": "Contact email address"},
                {"name": "phone", "type": "TEXT", "description": "Contact phone number"},
            ]},
        ]
    },
)

print(result)
package main

import il "github.com/iterationlayer/sdk-go"

client := il.NewClient("YOUR_API_KEY")

result, err := client.Extract(il.ExtractRequest{
    Files: []il.FileInput{
        il.NewFileFromURL("supplier-application.pdf", "https://example.com/docs/supplier-application.pdf"),
        il.NewFileFromURL("bank-details.pdf", "https://example.com/docs/bank-details.pdf"),
        il.NewFileFromURL("tax-certificate.pdf", "https://example.com/docs/tax-certificate.pdf"),
    },
    Schema: il.ExtractionSchema{
        "company_name": il.NewTextFieldConfig("company_name", "Registered company name"),
        "tax_id":       il.NewTextFieldConfig("tax_id", "Tax identification number"),
        "certifications": il.NewArrayFieldConfig("certifications", "List of certifications held", []il.FieldConfig{
            il.NewTextFieldConfig("certification", "Certification name"),
        }),
    },
})

Related Recipes

Start building in minutes

Free trial credits included. No credit card required.