# Peppol Directory Lookup

> Peppol Directory Lookup is a paid API for AI agents from 402utils.com, paid per call via x402, $0.003/call, status unknown (last checked 2026-09-15).

Look up a business in the public Peppol Directory to find their e-invoicing electronic address (BT-34/49) and supported document types for routing invoices.

## Facts

- Endpoint: GET https://402utils.com/v1/peppol-lookup
- Price: $0.003/call
- Payment: x402
- Status: unknown
- Last checked: 2026-09-15
- Activations on Zero: 0
- Tags: x402
- Canonical page: https://www.zero.xyz/c/peppol-directory-lookup-86bd1b23
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_9roH806D8PcSi-h-N-i3t

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability peppol-directory-lookup-86bd1b23
```

Example prompt: Can you look up whether Statoil ASA is registered in the Peppol Directory — their ID is 0225:992412536 — and tell me what document types they support for e-invoicing?

## When to prefer this

Use this endpoint when you need to route an e-invoice and must discover a recipient's Peppol electronic address (BT-34/BT-49), verify Peppol network registration, or enumerate supported document types before sending. Prefer this over manual Peppol Directory searches when automating invoice workflows or supplier onboarding at scale. The 1-hour cache and $0.003/call pricing makes it efficient for batch supplier validation.

## Known failure modes

- Peppol Directory unavailable → 503 error, call is unbilled
- Unknown participant ID → returns {found: false, count: 0, participants: []}
- Ambiguous name search returns multiple or zero results
- Missing required query parameters (no id, name, or country provided) → error response
- Country code not in ISO 3166-1 alpha-2 format → unexpected results

## How this service works

Look up a business in the public Peppol Directory — where to route an e-invoice (the BT-34/49 electronic address). ?id= (a Peppol id like 0225:992412536, or a value to search) or ?country=FR&name=. Returns { found, count, participants:[{peppolId, name, country, documentTypes[], schemes[]}] }. Unknown id → { found:false }. Directory down → 503, unbilled. Public source, 1h cache.

## Output

Returns a JSON object with a 'found' boolean, 'count' of total matches, and a 'participants' array. Each participant includes their peppolId (e.g. 0225:992412536), business name, country, supported documentTypes[], and schemes[]. If the ID is unknown, returns {found: false}. Response is cached for 1 hour from the public Peppol Directory.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "$schema": "https://json-schema.org/draft/2020-12/schema",
 "required": [
  "input"
 ],
 "properties": {
  "input": {
   "type": "object",
   "required": [
    "type",
    "method"
   ],
   "properties": {
    "type": {
     "type": "string",
     "const": "http"
    },
    "method": {
     "enum": [
      "GET"
     ],
     "type": "string"
    },
    "queryParams": {
     "type": "object",
     "properties": {
      "id": {
       "type": "string",
       "description": "Peppol participant id (`ICD:value`, full `iso6523-actorid-upis::...`, or a bare value/term to search)."
      },
      "name": {
       "type": "string",
       "description": "Business name (partial match; with or without `country`)."
      },
      "country": {
       "type": "string",
       "description": "ISO 3166-1 alpha-2 country code (with `name`)."
      }
     }
    }
   },
   "additionalProperties": false
  },
  "output": {
   "type": "object",
   "required": [
    "type"
   ],
   "properties": {
    "type": {
     "type": "string"
    },
    "example": {
     "type": "object",
     "required": [
      "found",
      "count",
      "participants"
     ],
     "properties": {
      "count": {
       "type": "integer",
       "description": "Total matches in the directory (may exceed the returned page)."
      },
      "found": {
       "type": "boolean"
      },
      "source": {
       "type": "string"
      },
      "participants": {
       "type": "array",
       "items": {
        "type": "object",
        "properties": {
         "name": {
          "type": "string"
         },
         "scheme": {
          "type": "string"
         },
         "country": {
          "type": "string"
         },
         "schemes": {
          "type": "array",
          "items": {
           "type": "string"
          }
         },
         "peppolId": {
          "type": "string",
          "description": "e.g. 0225:992412536."
         },
         "documentTypes": {
          "type": "array",
          "items": {
           "type": "string"
          }
         }
        }
       }
      }
     }
    }
   }
  }
 }
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/peppol-directory-lookup-86bd1b23/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from 402utils.com](https://www.zero.xyz/host/402utils.com/llms.txt)
