- Deborah Cross (Unlicensed) to resolve if 'contract' column in tables is necessary and should be called that.
greenID has two web service methods that return the verification details for an individual.
- A web service method (getVerificationResult) that can be called at any time after a person has been registered that returns the current verification details for a person.
- The web service method registerUser also returns the verification details of the person who was just registered. This can avoid the need to immediately call getVerificationResult after registering a person.
Verification results are returned in a complex SOAP type called RichVerificationResult this structure contains information about whether a person has completed their online verification, and if so, whether the verification was successful, and any changes to the original data supplied that were made during the verification process.
getVerificationResult
Method Summary
Method Signature
VerificationResult getVerificationResult( String customerId, String userId)
Parameters
Name | Type | Required? | Description |
---|---|---|---|
customerId
| String 255 Chars | Yes
| This parameter is GreenID's identifier for the client application. The value is supplied by GreenID, and must be included with each registration request.
|
userId
| String 255 Chars | Yes
| This parameter is an identifier that the client uses for the individual being verified. GreenID does not use it as an identifier, but in order to easily locate individual's for a particular client application, the userIdis used. This must match a registered userId
|
Return Value
RichVerificationResult
The return value is the complex type RichVerificationResult. This complex type is described below.
Member | Type | Description | Contract |
---|---|---|---|
userId
| String 255 Chars | The unique ID for the user.
| Not null.
|
outcome
| String 255 Chars | This member indicates the outcome of the whole AML verification process. For a detailed description of what values are possible in this field, please see the table of Overall Outcome States.
| Not null.
|
transactionId
| String 20 Chars | This value should be ignored as it is only maintained for backwards compatibility reasons.
| Not null.
|
ruleId
| String 255 Chars | The identifier rule that was used to determine the outcome.
| Not null.
|
mode
| String 255 Chars | The verification mode used. This shows HOW the verification was made. Possible modes are POSTOFFICE, ASSISTED and EXTERNAL. When a person is verified by filling out a Post Office form and visiting a post office with documentary evidence the mode is set to POSTOFFICE. When a person is verified and someone using the admin panel has visited a source on their behalf then the mode is ASSISTED. Finally EXTERNAL is only used for mode if a batch process run by a greenID admin is performed (on request from a customer organisation) results in a person becoming verified. In all other cases the mode is null. |
|
dateVerified | Date | The date that the user became verified. |
|
individualResults | List<RichCheckResult> | This member gives the customer a list of the outcomes of each individual check that was attempted. Note that methods that were not attempted are not included. | Not null. |
RichCheckResult
The complex type RichCheckResult has the structure described below:
Member | Type | Description | Contract |
---|---|---|---|
name
| String 255 Chars | The name of the check. For example, if a check against the Electoral Roll was attempted, then the name would be “AEC”. As each customer will accept a different set of checks, customers should refer to their individual rules document for the list of names that they can expect. Refer to Data Source Reference for a list of data source names. | Not null.
|
state
| String 255 Chars | The state of the individual check. For a list of possible states, please see the list of individual source states.
| Not null.
|
method
| String 255 Chars | The method via which the check was carried out. This is an enumerated type, for a list of possible values, please refer to Method Names. |
|
resultData
| String No Char limit | This field contains extra data that may be passed on from database checks, for example this field may contain XML for a specific check. This will be specific to an individual customer’s setup, by default it is not returned.
|
|
mode
| String 255 Chars | The verification mode used for this specific check. This shows HOW the check was made. Please see the list of possible modes. This can be null which indicates that no mode was used. |
|
dateVerified
| Date | The date that this particular check became verified. |
|
fieldResults
| List<RichFieldResult> | Only the fields that were successful checked, or were changed, are returned. Any field that was not checked is not returned. | Not null. May be empty, though. |
postOfficeData
| If and only if the name of the RichCheckResult is “PostOffice” then this member will be present. Otherwise it will be null. This represents the raw data retrieved from Australia Post. |
|
RichFieldResult
The complex type RichFieldResult has the structure described below:
Member | Type | Description | Contract |
---|---|---|---|
name
| String 255 Chars | The name of the field. The possible name will depend on the source used. Again which sources used will depend on the individual customer setup, and new sources, with potentially new fields are constantly being added. For a list of possible field names for each source, please refer to the Data Source Reference tables. | Not null.
|
status
| String 255 Chars | This member describes the status of the field. For a complete list of possible status values, please refer to Field Status. | Not null.
|
dataDifference
| String No Char limit | This member will contain changed values. That is, if a value was changed in order to become verified, then this member will contain the value that was the data was changed to, and subsequently verified.
|
|
data
| String No Char limit | This contains the original data that was supplied at time of registration. In the case of a status of ADDITION (see Field Status) then this will hold the added data.
|
|
dataInfo
| String 255 Chars | This contains information about the data. At this time it contains either “previousAddress” or “currentAddress” to indicate which address this data was checked as. |
|
label
| String No Char limit | This field represents a human readable version of name, it will reflect what the user may see on the screen when they fill the details in. The data in this field is designed for reporting purposes and can change without notice. |
|
format
| String 255 Chars | Indicates the format of the data in the field. “plain” indicates a plain text field. This may differ depending on the customer’s individual setup. |
|
PostOfficeData
The complex type PostOfficeData has the structure described below.
This type and the following members are for the most part exact representations of the fields found in an Australia Post contract. The reader should be aware of the individual Australia Post contract they will be using to ensure that they can match up the fields. These fields are retrieved from a flat file and stored in Strings with no interpretation of the meanings of the fields. Not all implementations of an Australia Post contract will have all the fields detailed below.
Member | Type | Description | Contract |
---|---|---|---|
customerId
| String 255 Chars | This parameter is GreenID's identifier for the client application. The value is supplied by GreenID.
| Not null.
|
documents | String | Human readable string that is a comma separated list of all the names of the documents used to verify this user. | Not null. |
header | detailRecordHeader | Representation of the header of the flat file received from Australia Post | Not null. |
poFileName
| String 255 Chars | The name of the actual file read from Australia Post
| Not null.
|
records | documentRecord[] | List of individual representations of the documents used to verify this User | Not null. |
DetailRecordHeader
The complex type DetailRecordHeader has the structure described below:
Member | Type | Description | Contract |
---|---|---|---|
amount | String 255 Chars | Unsigned amount in cents. |
|
channelId
| String 255 Chars | 0 = default |
|
date
| String 255 Chars | ddmmyy (NOTE: system generated date with no slashes) |
|
dateOfBirth
| String 255 Chars | ddmmyyyy represents the date of birth on the form that was checked. |
|
filler
| String 255 Chars | Often there will be filler, it serves no purpose and should be ignored. |
|
formVersion
| String 255 Chars | A-Z |
|
givenName
| String 255 Chars | 16 characters of the given name that was on the form that was checked. |
|
id | Long | Extra identifier that identifies this record. Not set by Australia Post. |
|
idWizardRefNo
| String 255 Chars |
|
|
paymentMethod
| String 255 Chars | '00' = Cash/EFTPOS/Direct Debit, '01'-'09' = number of Cheques, '11' = VISA, '12 = MasterCard. Note: This may differ per contract, but in general the above applies. |
|
phoneNo
| String 255 Chars | Phone number as entered on the form that was checked.
|
|
postOfficeName
| String 255 Chars | Presumably the name of the Post Office the form was checked at.
|
|
recordNo
| String 255 Chars | Seems to be fixed as ‘1’
|
|
recordType
| String 255 Chars | Seems to be fixed as ‘5’ |
|
referenceNo
| String 255 Chars | The reference number used to identify this user. Most often this will be the userId. It must be 16 characters or less. |
|
surname
| String 255 Chars | 20 characters of the surname that was on the form that was checked. |
|
totalNumberOfIdDocument
| String 255 Chars | Number of documents used to verify this user |
|
typeCode
| String 255 Chars |
|
|
uniqueReferenceNumber
| String 255 Chars | wwwwwwttnnnnn, first 6 digits are AP Work Centre Code.
|
|
DocumentRecord
The complex type DocumentRecord has the structure described below:
Member | Type | Description | Contract |
---|---|---|---|
amount
| String 255 Chars | Always zero
|
|
comments
| String 255 Chars |
|
|
countryOfIssue
| String 255 Chars | Name of country from the document if applicable
|
|
dateOfBirthMatchesaForm
| String 255 Chars | Y = Yes, X = not applicable |
|
documentExpiryDate
| String 255 Chars | dd/mm/yyyy; spaces if not applicable NOTE: (manually entered date with slashes) |
|
documentName
| String 255 Chars | This is an automatic lookup to convert the idDocumentType member into a human readable document name. |
|
documentNumber
| String 255 Chars | Alphanumeric, eg passport number. |
|
filler
| String 255 Chars | Often there will be filler, it serves no purpose and should be ignored. |
|
id | Long | Extra identifier that identifies this record. Not set by Australia Post. |
|
idDocumentType
| String 255 Chars | Code number representing the document type. The lookup for the name is done automatically and stored in the documentName member. |
|
idWizardRefNo
| String 255 Chars |
|
|
issuedBy
| String 255 Chars | This may be present instead of country of Issue, stateOrTerritoryOfIssue, utilityAccountIssuer and utilityAccountType. It may selectively hold this information in a less rigid format. |
|
issueDate
| String 255 Chars | dd/mm/yyyy; spaces if not applicable NOTE: (manually entered date with slashes) May not be present. |
|
nameMatchesForm
| String 255 Chars | Y = Yes, X = not applicable |
|
photoMatch
| String 255 Chars | Y = Yes, X = not applicable |
|
recordNo
| Strin 255 Chars |
|
|
recordType
| String 255 Chars |
|
|
referenceNo
| String 255 Chars |
|
|
residentialAddressMatchesForm
| String 255 Chars | Y = Yes, X = not applicable |
|
stateOrTerritoryOfIssue
| String 255 Chars | ACT, QLD, NSW, NT, SA, TAS, VIC or WA; |
|
utilityAccountIssuer
| String 255 Chars | If specifically a utility, then the name. |
|
utilityAccountType
| String 255 Chars | 01 = electricity, 02 = gas, 03 = water, 04 = telephone |
|
Faults
This method may raise a FaultDetails, inside which can be the following codes:
- InvalidCustomerIdFault
- UserIdNotFoundFault
- InvalidCertificateException
- SystemFault
Overall Outcome States
State Name | Meaning | Human Readable Name |
---|---|---|
VERIFIED | The user has been verified against the given rule set. | Verified |
VERIFIED_ADMIN | The user was manually verified by an administrator through the admin panel. | Verified (by admin) |
VERIFIED_WITH_CHANGES | The user was verified against the given rule set, however some minor changes were made to the data in order to get the result. These changes are included in the rule set as acceptable changes. | Verified with changes |
IN_PROGRESS | The user has not yet been verified, as GreenID allows further checks to be performed at any time this can be considered as not yet meeting the rule set requirements for verification. | In progress |
PENDING | The user has been verified against the rule set, but to do so they changed data in a way that is not considered acceptable without further action. | Pending review |
LOCKED_OUT | The user has been locked out completely. This will occur depending on the customer lock out rules. By default there are no lock out rules. | Locked out |
Possible Modes
Mode name | Meaning | Human readable name |
---|---|---|
POSTOFFICE | The user was verified by filling out a Post Office form and visiting a post office with documentary evidence. | Post Office |
ASSISTED | The user was verified by an administrator loggin into the admin panel and entering the data on behalf of the user. This method still contacts the third party data sources to confirm the entered data. | Admin assisted |
EXTERNAL | This mode is used to indicate that verification was carried out outside of the GreenID system. | Externally Verified |
Individual Source States
State name | Meaning | Human readable name |
---|---|---|
VERIFIED | The users data has been verified against this source | Verified |
VERIFIED_ADMIN | The details for this source were manually verified by an administrator through the admin panel. | Verified (by admin) |
VERIFIED_WITH_CHANGES | The user was verified against this source, however some minor changes were made to the data in order to get the result. These changes are included in the rule set as acceptable changes. | Verified with changes |
PASSED | This state is specific to the watchlist checks. If a problem was NOT found on a watchlist check then they are considered to have PASSED the watchlist. | Passed |
FAILED | This state is specific to the watchlist checks. If a problem was found on a watchlist check then they are considered to have FAILED the watchlist. | Failed |
AUTOFAIL | This state is specific to non-consent or “BG” checks it indicates that the automatic check did not become verified. | Autofail |
IN_PROGRESS | When a user centric “UC” check has not yet reached a verified state it is considered in progress. | In progress |
PENDING | The user has been verified this source, but to do so they changed data in a way that is not considered acceptable without further action. | Pending review |
LOCKED_OUT | This individual source has been locked out. Either by customer specific rules, or at the source end. Only some sources force a lockout after a number of attempts. | Locked out |
ERROR | The individual source could not be queried because of an error. The user may retry at a later date if necessary. | Error |
Method Names
Method name | Meaning | Human readable name |
---|---|---|
DB | This check was a “Data Base” check that was automatically carried out with no user input. This is also referred to as a “Non Consent check” as no explicit consent is needed from the user. | Data Base OR Non Consent |
UC | The check was a “User Centric” check that required either input or explicit consent from the user or both. | User Centric |
PP | This check was carried out as a “Person Present” or face to face check. The main example of this type of check is a Post Office verification where the user physically presented themselves and their verification information at a Post Office. | Person Present |
A category that does not fall into the above will have a blank or null method name. | None |
Field Status
Status name | Meaning | Human readable name |
---|---|---|
CONFIRMED | This field was matched to this source exactly | Field confirmed. |
CHANGED | This field was changed in order to get a valid match on this source | Field changed. |
ADDITION | This was an additional field that was added by the user in order to get a valid verification. This is a specialised field that is only available to certain customers. By default a customer will never receive this. | Additional field. |
NO_MATCH | This is a status returned by “DB” or non consent checks and indicates that a match was not able to found on the source. | No exact match found. |
MISSING | This is a status returned by a “DB” or non consent source and indicates that this field was not available to be compared on the source, for example in the phone book check the givenName is most often MISSING, whereas the firstInitial is present. | Field missing on source. |