"resultClassDetails": {
"addressResult": "D",
"recipientResult": "A",
"recipientLevel": "PERSON",
"recipientAddressCorrection": ["HOUSE_NUMBER_CORRECTED_BY_RECIPIENT"]
}
Data Model
The Recipient-Validation API checks and fixes addresses and also verifies that the given recipient (or household) matches the address. Right now, this service works only for Germany (DE).
The different address types and the individual address fields are explained on the Address-Validation Data Model page.
Address Fields
Below are only the extra fields used to check the recipient or household:
Field ( input) | Length | Type | Description |
---|---|---|---|
|
50 |
string |
The unstructured recipient name. This can be a single lastName (e.g., “Meier”) or “First Last” (e.g., “Max Mustermann”). Use this if you do not give |
|
50 |
string |
The recipient’s firstName (structured). |
|
50 |
string |
The recipient’s lastName (structured). |
In one request, you must use either:
The recipient field, the lastName field alone, or
both firstName and lastName .Do not combine recipient with firstName or lastName .
|
Quality of an Address and Recipient
In addition to normal address validation (see Address-Validation Data Model), Recipient-Validation returns extra information that includes the recipient/household check.
In the response JSON, you will see a block called resultClassDetails
with four parts:
Address result
The result class for address validation (addressResult
) is exactly the same as in the Address-Validation service. You can see all codes (A, B, C, D, E, F) and their descriptions in the Address-Validation Data Model (Result classes).
Recipient result
The recipient/household check has its own result class codes. These codes show how well the name matched, with examples:
Code | Description |
---|---|
A |
No change (recipient found exactly; e.g., input “Meier” → output “Meier”) |
B |
Only normalization (e.g., “meier” → “Meier”) |
C |
Changed (name was corrected; e.g., “meier” → “Maier”) |
F |
Not identified (name not found or incomplete) |
Recipient level
This shows what level matched:
Code | Description |
---|---|
PERSON |
Both first name and last name matched exactly. |
HOUSEHOLD |
Only household or last name matched (first name did not). |
NONE |
No match or check not done (for example, no house number). |
Recipient Address Correction
This lists any changes to the house number (and thus the address) made during the recipient/household check:
Code | Description |
---|---|
NONE |
No changes made to the address. |
HOUSE_NUMBER_CORRECTED_BY_RECIPIENT |
House number was corrected by the recipient/household check. |
HOUSE_NUMBER_ADDED_BY_RECIPIENT |
House number was added by the recipient/household check. |
If a house number was changed, that change appears in the final result. Also, _meta.fields.houseNumber.status
will show CHANGED
or IDENTIFIED
, depending on the correction.
Meta-Information
Like in Address-Validation, each field under _meta.fields
has relevance
and status
. We added firstName
and lastName
here:
-
relevance
-
MANDATORY – Required if you use
firstName
/lastName
. -
IMPORTANT – Important for the recipient check.
-
OPTIONAL – Only checked if provided.
-
-
status
-
IDENTIFIED – Value was recognized exactly.
-
NORMALIZED – Only small adjustments like case or accents.
-
CHANGED – The name was corrected.
-
NOT_IDENTIFIED – Could not find the value.
-
NOT_CHECKED – Field was not checked (for example, if
recipient
is used).
-
Example _meta
block in the response:
"_meta": {
"fields": {
"lastName": {
"relevance": "MANDATORY",
"status": "IDENTIFIED"
},
"firstName": {
"relevance": "IMPORTANT",
"status": "IDENTIFIED"
},
"houseNumber": {
"relevance": "IMPORTANT",
"status": "IDENTIFIED",
"changedByRecipient": true
},
…
}
}
Here, changedByRecipient: true
means the house number was changed by the recipient check.
Example Structure of the Full Result
In the response object, you will find these top-level fields in addition to the usual address fields:
-
firstName
(structured first name) -
lastName
(structured last name) -
resultClass
(overall result that includes address and recipient) -
resultClassDetails
(detail block, see above) -
results
(array of candidates, like in Address-Validation, but with extra meta-info)
A shortened example:
{
"firstName": "Max",
"lastName": "Mustermann",
"resultClass": "C",
"resultClassDetails": {
"addressResult": "D",
"recipientResult": "A",
"recipientLevel": "PERSON",
"recipientAddressCorrection": ["HOUSE_NUMBER_CORRECTED_BY_RECIPIENT"]
},
"results": [
{
"firstName": "Max",
"lastName": "Mustermann",
"addressType": "delivery",
"houseNumber": "50f",
…
"_meta": {
"fields": {
"lastName": {
"relevance": "MANDATORY",
"status": "IDENTIFIED"
},
"firstName": {
"relevance": "IMPORTANT",
"status": "IDENTIFIED"
},
"houseNumber": {
"relevance": "IMPORTANT",
"status": "IDENTIFIED",
"changedByRecipient": true
},
…
}
}
}
// More candidates (only if resultClass = E)
]
}