Skip to main content
POST
File a discrepancy report (Beta)

Authorizations

x-api-key
string
header
required

Headers

x-topograph-workspace-id
string

Workspace whose register credentials file the report. Defaults to the default workspace.

Idempotency-Key
string
required

Unique key for this report (a UUID is recommended). Resending the same body with the same key returns the original report (200) and files nothing new; a different body with a used key is refused (409).

Body

application/json
countryCode
enum<string>
required

Country of the company. Supported during the beta: Germany (DE); more countries are coming.

Available options:
AT,
BE,
BG,
CH,
CN,
CZ,
CY,
DE,
DK,
EE,
ES,
FI,
FR,
GB,
GG,
GR,
HK,
HR,
HU,
IE,
IS,
IT,
JE,
LI,
LU,
LV,
MC,
MT,
MU,
NL,
NO,
PL,
PT,
RO,
RU,
SE,
SG,
SI,
SK,
VG,
PA,
MX,
CO,
EC,
BM,
AR,
AU,
AG,
BA,
BR,
GI,
IM,
KY,
US-FL,
US-CO,
US-IL,
US-MA,
US-MD,
US-MI,
US-TX,
US-DE,
UA,
US-NY,
US-NJ,
US-NM,
US-OH,
US-WA,
US-TN,
US-GA,
US-MN,
US-MO,
US-NV,
RS,
US-PA,
US-WY,
US-CT,
US-UT,
US-IA,
US-ID,
US-AZ,
US-VA,
US-MS,
US-CA,
US-OR,
US-KY,
US-NE,
US-NC,
US-AR,
US-WI,
US-SC,
US-AL,
US-AK,
US-DC,
US-IN,
US-ME,
US-MT,
US-OK,
US-SD,
US-LA,
US-WV,
US-ND,
US-VT,
US-KS,
US-RI,
US-HI,
LT,
MD,
MH,
US-NH,
CA-FED,
CA-ON,
CA-QC,
CA-BC,
CA-AB,
CA-MB,
CA-SK,
CA-NS,
CA-NL,
CA-PE,
CA-YT,
CA-NT,
NC,
PF,
NZ
Example:

"DE"

companyId
string
required

The company ID, as used by POST /v2/company

Example:

"München HRB 228960"

reasons
enum<string>[]
required

Why the register is wrong. incorrect_or_incomplete_information: details of a registered beneficial owner are wrong or incomplete. different_beneficial_owners: you identified different beneficial owners. More values may be added; tolerate unknown ones.

Available options:
incorrect_or_incomplete_information,
different_beneficial_owners
Example:
ultimateBeneficialOwners
object[]
required

The beneficial owners as you believe the register should list them, in the same shape as ultimateBeneficialOwners in the company response. The filed explanation is written from these facts only.

evidence
object
required

Evidence the report relies on

attestation
object
required

Your attestation; the report is filed on acceptance

comment
string

Free text appended to the generated explanation, in the register's language (German for Germany). The whole explanation must fit the register's limit (1,000 characters in Germany).

Example:

"Die Beteiligung wurde im Rahmen unserer Sorgfaltspflichten festgestellt."

sourceRequestId
string

The requestId of the company request that showed the register data you are disputing, if any

Example:

"4f1c3a0e-8b9d-4d6e-a1f2-3c4d5e6f7a8b"

metadata
object

Arbitrary key-value string pairs echoed back in responses and in every discrepancy_report.updated webhook. Limits: max 50 keys, keys up to 40 chars (longer keys are skipped), values up to 500 chars (longer values are truncated).

Example:

Response

Replay of an earlier request with the same Idempotency-Key

id
string
required

Unique identifier of the report

Example:

"0b7e8a3c-5d2f-4c1e-9a6b-7f8e9d0c1b2a"

status
enum<string>
required

in_progress: accepted and being filed. succeeded: filed with the register; filing.registerReference and filing.receipt are set. failed: nothing was filed; see error, then correct and resend with a new Idempotency-Key.

Available options:
in_progress,
succeeded,
failed
Example:

"succeeded"

countryCode
string
required

Country of the company

Example:

"DE"

companyId
string
required

The company ID

Example:

"München HRB 228960"

register
object
required

The register the report is filed with

reasons
enum<string>[]
required

Why the register is wrong, as sent

Available options:
incorrect_or_incomplete_information,
different_beneficial_owners
Example:
ultimateBeneficialOwners
object[]
required

The beneficial owners, as sent

evidence
object
required

Evidence the report relies on, as sent

filing
object
required

What was filed, and the register acknowledgement

createdAt
string
required

Creation time (ISO 8601)

Example:

"2026-10-27T14:10:02.000Z"

updatedAt
string
required

Last update time (ISO 8601)

Example:

"2026-10-27T14:12:46.000Z"

comment
string

Free text appended to the explanation, as sent

error
object

Why the report failed. Present only when status is failed.

sourceRequestId
string

The company request the report refers to, as sent

metadata
object

Key-value pairs provided at creation

Example: