| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Overview
Use this method to get the results of the latest Proof of address (PoA) check performed for an applicant.
The PoA check verifies a document that the applicant submitted as proof of their residential address — for example, a utility bill or a bank statement — and, when the corresponding settings are enabled, an identity document used as proof of address (PoI as PoA). Alongside the overall verdict, the response returns some of the individual sub-checks that make up the verdict, the data recognized on the document, and the detected type and subtype of the issuing organization.
The method returns the latest active PoA check of the requested type for the applicant, subject to the following:
- Checks that were deactivated (for example, because the document was replaced and re-verified) are not returned.
- Only one check is returned, wrapped in the
checksarray. - If the applicant exists but has no PoA check of the requested type, the response is
200 OKwith an emptychecksarray. - This method covers only document-based proof of address. If the applicant confirmed their address through geolocation as PoA, no PoA check is produced, and this method returns an empty
checksarray for everytypevalue.
NoteTo get the check for the second Proof of address step, call the same method with
type=POA2. ThecheckTypefield of the returned check always equals the value you requested.
Request examples
curl -X GET \
'https://api.sumsub.com/resources/checks/latest?applicantId=632acad6f170310001c00000&type=POA' \
-H 'X-App-Token: <your-app-token>' \
-H 'X-App-Access-Sig: <your-signature>' \
-H 'X-App-Access-Ts: <unix-timestamp>'curl -X GET \
'https://api.sumsub.com/resources/checks/latest?applicantId=632acad6f170310001c00000&type=POA2' \
-H 'X-App-Token: <your-app-token>' \
-H 'X-App-Access-Sig: <your-signature>' \
-H 'X-App-Access-Ts: <unix-timestamp>'Response explained
The response is a JSON object with a single checks array that contains the latest PoA check and its detailed results.
NoteThe response omits every field that has no value, so the exact set of fields differs from check to check.
| Field | Type | Description |
|---|---|---|
checks | Array of objects | The latest active PoA check of the requested type. Contains at most one element, and is empty when the applicant has no such check. |
checks element fields
checks element fields| Field | Type | Description |
|---|---|---|
id | String | Unique identifier of the check. |
checkType | String | Type of the check. Always equals the type value you requested:
|
createdAt | String | Date and time (UTC) when the check was performed, in the YYYY-MM-DD HH:MM:SS format. |
answer | String | Overall result of the PoA check:
|
poaCheckInfo | Object | Results of the PoA check and its individual sub-checks. |
inputDoc | Object | Data of the document that the check was performed on, as it is stored in the applicant profile. |
extractedDoc | Object | Additional data recognized on the submitted document. |
poaCheckInfo attributes
poaCheckInfo attributes| Field | Type | Description |
|---|---|---|
answer | String | Overall result of the PoA check:
|
unexpired | String | Whether the document is still valid at the moment of the check.
|
acceptableType | String | Whether the document is accepted as a proof of address under your settings. For standard PoA documents:
|
validAddress | String | Whether the address recognized on the document is a valid residential address of an accepted kind.
|
acceptableRegion | String | Whether the address is located in a region that Sumsub can accept.
|
poiPoaCountryMatched | String | Whether the country of the PoA document matches the country of the applicant's identity documents.
|
poiAsPoa | Boolean | Whether an identity document was submitted as the proof of address.
|
poaIdDocType | String | Type of the identity document that was used as the proof of address, for example: ID_CARD, PASSPORT, DRIVERS, or RESIDENCE_PERMIT.Returned only when poiAsPoa is true. |
companyContact | Object | Category of the organization that issued the document. Returned only when poiAsPoa is false. |
subType | String | Recognized subtype of the document within the issuer category, for example utilityBill or bankStatement.See companyContact attributes for the values available per category.Returned only when the advanced PoA type detection service is enabled for your account and the recognized subtype is valid for the recognized issuer type. |
unconventionalProvider | Boolean | Whether the document was issued by an unconventional provider of its category — for example, a neobank rather than a traditional bank. Whether such documents are accepted is controlled per issuer type in your PoA settings. Returned only when poiAsPoa is false. |
companyContact attributes
companyContact attributes| Field | Type | Description |
|---|---|---|
type | String | Category of the organization that issued the document. |
Possible type values and the poaCheckInfo.subType values that can be returned for each of them:
type | Description | Possible subType values |
|---|---|---|
governmentOrganization | Documents issued by government organizations. | statement, voterRegistration, taxBill, other |
utilityProvider | Documents issued by utility companies. | telecom, utilityBill, other |
bank | Documents issued by banks. | bankLetter, bankStatement, other |
mobileOperator | Statements and bills for mobile communications. | This category has no subtypes. |
other | Documents not covered by other categories, such as lease agreements or employer confirmation letters. | lease, universityLetter, employmentLetter, other |
Refer to Set document types for detailed description.
inputDoc attributes
inputDoc attributesinputDoc is a snapshot of the applicant document the check was performed on. It contains the data recognized on the document. Fields with no value are omitted.
For a standard PoA document, recognition targets the applicant name, the address, and the issue date. For an identity document used as a PoA, the document number and the expiry date are extracted as well.
| Field | Type | Description |
|---|---|---|
idDocType | String | Type of the document as it is stored in the applicant profile. For PoA checks, this is UTILITY_BILL for the first PoA step and UTILITY_BILL2 for the second one, including when an identity document was used as a proof of address. The actual identity document type in the latter case is returned in poaCheckInfo.poaIdDocType. |
country | String | Alpha-3 code of the country the document belongs to. For example, DEU, GBR, ARG. |
firstName | String | Applicant first name as recognized on the document. |
firstNameEn | String | Transliteration of firstName into Latin characters. |
middleName | String | Applicant middle name as recognized on the document. |
middleNameEn | String | Transliteration of middleName into Latin characters. |
lastName | String | Applicant last name as recognized on the document. |
lastNameEn | String | Transliteration of lastName into Latin characters. |
aliasName | String | Additional name recognized on the document. |
parentName1 | String | Name of the first parent, for document types that carry it. |
parentName2 | String | Name of the second parent, for document types that carry it. |
issuedDate | String | Date the document was issued, in the YYYY-MM-DD format. |
validUntil | String | Date the document expires, in the YYYY-MM-DD format. |
firstIssuedDate | String | Date the document was first issued, in the YYYY-MM-DD format. |
issueAuthority | String | Authority or organization that issued the document. |
issueAuthorityCode | String | Code of the issuing authority. |
issueNumber | String | Issue number of the document. |
number | String | Document number. |
additionalNumber | String | Second document number, for countries where an additional document number exists. |
tin | String | Taxpayer identification number recognized on the document. |
dob | String | Applicant date of birth, in the YYYY-MM-DD format. |
gender | String | Applicant gender as recognized on the document. |
nationality | String | Alpha-3 code of the applicant nationality recognized on the document. |
placeOfBirth | String | Applicant place of birth as recognized on the document. |
category | String | Category of the document, for document types that carry it (for example, a driving licence category). |
mrzLine1 | String | First line of the machine-readable zone, for identity documents used as a PoA. |
mrzLine2 | String | Second line of the machine-readable zone. |
mrzLine3 | String | Third line of the machine-readable zone. |
barcodeLine | String | Raw content of the barcode recognized on the document if the barcode is present. |
address | Object | Address as stored on the document. |
address attributes
address attributesUsed by inputDoc.address. Fields with no value are omitted.
| Field | Type | Description |
|---|---|---|
country | String | Alpha-3 code of the country. |
postCode | String | Postal code. |
town | String | City or settlement. |
townEn | String | Transliteration of town into Latin characters. |
state | String | State, province, or region. |
stateEn | String | Transliteration of state into Latin characters. |
stateCode | String | Code of the state or province. |
street | String | Street. Depending on the level settings and your requirements, this field may contain the whole address while the other address fields stay empty. |
streetEn | String | Transliteration of street into Latin characters. |
subStreet | String | Second address line. |
subStreetEn | String | Transliteration of subStreet into Latin characters. |
buildingName | String | Name of the building. |
buildingNumber | String | Number of the building. |
flatNumber | String | Flat or apartment number. |
formattedAddress | String | The whole address assembled into a single line. |
startDate | String | Date and time the applicant started living at this address, in the YYYY-MM-DD HH:MM:SS format. |
endDate | String | Date and time the applicant stopped living at this address, in the YYYY-MM-DD HH:MM:SS format. |
source | String | How the address was obtained:
|
locationPosition | Object | Geographical position resolved for this address. |
locationPosition attributes
locationPosition attributes| Field | Type | Description |
|---|---|---|
formattedAddress | String | Address resolved for the coordinates. |
locationCoords | Object | Coordinates:
|
extractedDoc attributes
extractedDoc attributesAdditional data recognized on the submitted document, beyond the document fields returned in inputDoc.
| Field | Type | Description |
|---|---|---|
companyName | String | Name of the company or institution that issued the document (for example, the utility provider or bank). Returned only for standard proof of address documents. |
companyWebsite | String | Website of the issuing company or institution. Returned only for standard proof of address documents. |
documentName | String | Name/title of the document as identified during processing. Returned only for standard proof of address documents. |
detectedLanguages | Array of strings | Languages detected in the document (for example, ["en", "de"]).Returned for proof of address checks. |
iban | String | IBAN recognized on the document. Typically returned for bank statements. |
Note:
companyName,companyWebsite, anddocumentNameapply to standard PoA documents, whiledetectedLanguagesapplies to all PoA checks, including identity-document-as-PoA. All four are omitted when unavailableNON_NULLserialization).
Response examples
If the request is successfully sent and processed, you will get a response like one of the following:
// The following example lists every field that the method can return. In practice, a single check never contains all of them at once: `companyContact`, `subType`, `unconventionalProvider`, `companyName`, `companyWebsite`, and `documentName` are returned for standard PoA documents, whereas `poaIdDocType` is returned only when an identity document was used as a proof of address.
{
"checks": [
{
"id": "6874f9db2b8c1a0001f3ae21",
"checkType": "POA",
"createdAt": "2026-07-14 11:23:07",
"answer": "GREEN",
"poaCheckInfo": {
"answer": "GREEN",
"unexpired": "GREEN",
"acceptableType": "GREEN",
"validAddress": "GREEN",
"acceptableRegion": "GREEN",
"poiPoaCountryMatched": "GREEN",
"poiAsPoa": false,
"poaIdDocType": "ID_CARD",
"companyContact": {
"type": "utilityProvider"
},
"subType": "utilityBill",
"unconventionalProvider": false
},
"inputDoc": {
"idDocType": "UTILITY_BILL",
"country": "GBR",
"firstName": "JANE",
"firstNameEn": "JANE",
"middleName": "ANNE",
"middleNameEn": "ANNE",
"lastName": "DOE",
"lastNameEn": "DOE",
"aliasName": "J. DOE",
"parentName1": "JOHN DOE",
"parentName2": "MARY DOE",
"issuedDate": "2026-06-02",
"validUntil": "2031-06-01",
"firstIssuedDate": "2019-04-02",
"issueAuthority": "Thames Water",
"issueAuthorityCode": "TW-01",
"issueNumber": "3",
"number": "P1234567",
"additionalNumber": "9876543",
"tin": "AB123456C",
"dob": "1990-01-31",
"gender": "F",
"nationality": "GBR",
"placeOfBirth": "London",
"category": "B",
"mrzLine1": "IDGBR1234567897<<<<<<<<<<<<<<<",
"mrzLine2": "9001319F3106014GBR<<<<<<<<<<<8",
"mrzLine3": "DOE<<JANE<ANNE<<<<<<<<<<<<<<<<",
"barcodeLine": "ANSI 636000100002DL00410288",
"address": {
"country": "GBR",
"postCode": "SW1A 2AA",
"town": "London",
"townEn": "London",
"state": "Greater London",
"stateEn": "Greater London",
"stateCode": "LND",
"street": "Downing Street",
"streetEn": "Downing Street",
"subStreet": "Westminster",
"subStreetEn": "Westminster",
"buildingName": "Cabinet Office",
"buildingNumber": "10",
"flatNumber": "2",
"formattedAddress": "10 Downing Street, Westminster, London SW1A 2AA, United Kingdom",
"startDate": "2023-01-15 00:00:00",
"endDate": "2026-05-01 00:00:00",
"source": "proofOfAddress",
"locationPosition": {
"formattedAddress": "10 Downing Street, London SW1A 2AA, UK",
"locationCoords": {
"lat": 51.5033635,
"lon": -0.1276248
}
}
}
},
"extractedDoc": {
"companyName": "Thames Water Utilities Limited",
"companyWebsite": "thameswater.co.uk",
"documentName": "Water bill",
"detectedLanguages": [
"en"
],
"iban": "GB33BUKB20201555555555"
}
}
]
}
// A typical response for a standard PoA document looks like this.
{
"checks": [
{
"id": "6874f9db2b8c1a0001f3ae21",
"checkType": "POA",
"createdAt": "2026-07-14 11:23:07",
"answer": "RED",
"poaCheckInfo": {
"answer": "RED",
"unexpired": "RED",
"acceptableType": "GREEN",
"validAddress": "GREEN",
"acceptableRegion": "GREEN",
"poiAsPoa": false,
"companyContact": {
"type": "bank"
},
"subType": "bankStatement",
"unconventionalProvider": true
},
"inputDoc": {
"idDocType": "UTILITY_BILL",
"country": "DEU",
"firstName": "MAX",
"lastName": "MUSTERMANN",
"issuedDate": "2025-11-04",
"address": {
"country": "DEU",
"postCode": "10115",
"town": "Berlin",
"street": "Invalidenstrasse",
"buildingNumber": "117",
"formattedAddress": "Invalidenstrasse 117, 10115 Berlin, Germany",
"source": "proofOfAddress"
}
},
"extractedDoc": {
"companyName": "N26 Bank AG",
"companyWebsite": "n26.com",
"documentName": "Account statement",
"detectedLanguages": [
"de"
],
"iban": "DE89370400440532013000"
}
}
]
}// A response for an identity document used as a proof of address looks like this.
{
"checks": [
{
"id": "6874fa4d2b8c1a0001f3ae55",
"checkType": "POA",
"createdAt": "2026-07-14 11:25:01",
"answer": "GREEN",
"poaCheckInfo": {
"answer": "GREEN",
"unexpired": "GREEN",
"acceptableType": "GREEN",
"validAddress": "GREEN",
"acceptableRegion": "GREEN",
"poiAsPoa": true,
"poaIdDocType": "RESIDENCE_PERMIT"
},
"inputDoc": {
"idDocType": "UTILITY_BILL",
"country": "ESP",
"firstName": "MARIA",
"lastName": "GARCIA",
"number": "Z1234567X",
"issuedDate": "2024-03-18",
"validUntil": "2029-03-17",
"dob": "1988-07-22",
"address": {
"country": "ESP",
"postCode": "28013",
"town": "Madrid",
"street": "Gran Via",
"buildingNumber": "28",
"formattedAddress": "Gran Via 28, 28013 Madrid, Spain",
"source": "proofOfIdentity"
}
},
"extractedDoc": {
"detectedLanguages": [
"es"
]
}
}
]
}You will get an empty list if the applicant exists but has no PoA check, if the only check available belongs to the other type POAPOA2), or if the address was confirmed via geolocation as PoA.
{
"checks": []
}If the request fails, you will receive an HTTP response containing an error code along with a message explaining the error. For example:
{
"code": 400,
"description": "Invalid id 'not-an-object-id'",
"correlationId": "0d3457fdac54803edf23c90000000000"
}Possible errors
The errors you can encounter:
| HTTP code | When it happens |
|---|---|
400 | The applicantId is not a valid identifier, or the type parameter is missing. |
401 | The request signature or the app token is invalid. |
403 | The token does not have permission to read check results. |
404 | The applicant does not exist or is not available for your token. |