Documentation
¶
Index ¶
- Constants
- Variables
- type Address
- type Addresses
- type Applicant
- type ApplicantIter
- type Applicants
- type Breakdown
- type BreakdownResult
- type BreakdownSubResult
- type Breakdowns
- type Check
- type CheckIter
- type CheckRequest
- type CheckResult
- type CheckRetrieved
- type CheckStatus
- type CheckType
- type Checks
- type Document
- type DocumentDownload
- type DocumentIter
- type DocumentProcessed
- type DocumentRequest
- type DocumentSide
- type DocumentType
- type Documents
- type Error
- type ErrorFields
- type HTTPRequester
- type IDNumber
- type IDNumberType
- type Iter
- type LivePhoto
- type LivePhotoIter
- type LiveVideo
- type LiveVideoDownload
- type LiveVideoIter
- type OnfidoClient
- type PickerIter
- type Properties
- type Report
- type ReportIter
- type ReportName
- type ReportResult
- type ReportSubResult
- type Reports
- type SdkToken
- type SubBreakdown
- type SubBreakdowns
- type Token
- type Webhook
- type WebhookEnvironment
- type WebhookEvent
- type WebhookRef
- type WebhookRefIter
- type WebhookRefRequest
- type WebhookRefs
- type WebhookRequest
Constants ¶
const ( BreakdownClear BreakdownResult = "clear" BreakdownConsider BreakdownResult = "consider" BreakdownUnidentified BreakdownResult = "unidentified" SubBreakdownClear BreakdownSubResult = "clear" SubBreakdownConsider BreakdownSubResult = "consider" SubBreakdownUnidentified BreakdownSubResult = "unidentified" )
const ( CheckStatusInProgress CheckStatus = "in_progress" CheckStatusAwaitingApplicant CheckStatus = "awaiting_applicant" CheckStatusComplete CheckStatus = "complete" CheckStatusWithdrawn CheckStatus = "withdrawn" CheckStatusPaused CheckStatus = "paused" CheckStatusReopened CheckStatus = "reopened" CheckResultClear CheckResult = "clear" CheckResultConsider CheckResult = "consider" )
Supported check types
const ( DocumentTypeUnknown DocumentType = "unknown" DocumentTypePassport DocumentType = "passport" DocumentTypeIDCard DocumentType = "national_identity_card" DocumentTypeDrivingLicense DocumentType = "driving_licence" DocumentTypeUKBRP DocumentType = "uk_biometric_residence_permit" DocumentTypeTaxID DocumentType = "tax_id" DocumentTypeVoterID DocumentType = "voter_id" DocumentSideFront DocumentSide = "front" DocumentSideBack DocumentSide = "back" )
Supported document types and sides
const ( ClientVersion = "0.1.0" DefaultEndpoint = "https://api.eu.onfido.com/v3.5" TokenEnv = "ONFIDO_TOKEN" )
Constants
const ( ReportNameDocument ReportName = "document" ReportNameDocumentWithAddress ReportName = "document_with_address_information" ReportNameDocumentWithDrivingLicense ReportName = "document_with_driving_licence_information" ReportNameFacialSimilarityPhoto ReportName = "facial_similarity_photo" ReportNameFacialSimilarityPhotoFullyAuto ReportName = "facial_similarity_photo_fully_auto" ReportNameFacialSimilarityVideo ReportName = "facial_similarity_video" ReportNameKnownFaces ReportName = "known_faces" ReportNameIdentityEnhanced ReportName = "identity_enhanced" ReportNameWatchlistEnhanced ReportName = "watchlist_enhanced" ReportNameWatchlistStandard ReportName = "watchlist_standard" ReportNameWatchlistPepsOnly ReportName = "watchlist_peps_only" ReportNameWatchlistSanctionsOnly ReportName = "watchlist_sanctions_only" ReportNameProofOfAddress ReportName = "proof_of_address" ReportNameRightToWork ReportName = "right_to_work" ReportResultClear ReportResult = "clear" ReportResultConsider ReportResult = "consider" ReportResultUnidentified ReportResult = "unidentified" ReportSubResultClear ReportSubResult = "clear" ReportSubResultRejected ReportSubResult = "rejected" ReportSubResultSuspected ReportSubResult = "suspected" ReportSubResultCaution ReportSubResult = "caution" )
Supported report names, results, subresults, and variants
const ( WebhookSignatureHeader = "X-Sha2-Signature" WebhookTokenEnv = "ONFIDO_WEBHOOK_TOKEN" )
Constants
const ( WebhookEnvironmentSandbox WebhookEnvironment = "sandbox" WebhookEnvironmentLive WebhookEnvironment = "live" WebhookEventReportWithdrawn WebhookEvent = "report.withdrawn" WebhookEventReportResumed WebhookEvent = "report.resumed" WebhookEventReportCancelled WebhookEvent = "report.cancelled" WebhookEventReportAwaitingApproval WebhookEvent = "report.awaiting_approval" WebhookEventReportInitiated WebhookEvent = "report.initiated" WebhookEventReportCompleted WebhookEvent = "report.completed" WebhookEventCheckStarted WebhookEvent = "check.started" WebhookEventCheckReopened WebhookEvent = "check.reopened" WebhookEventCheckWithdrawn WebhookEvent = "check.withdrawn" WebhookEventCheckCompleted WebhookEvent = "check.completed" WebhookEventCheckFormOpened WebhookEvent = "check.form_opened" WebhookEventCheckFormCompleted WebhookEvent = "check.form_completed" )
Constants
Variables ¶
var ( ErrInvalidWebhookSignature = errors.New("invalid request, payload hash doesn't match signature") ErrMissingWebhookToken = errors.New("webhook token not found in environmental variable") )
Webhook errors
var ( // ErrEmptyPostcode means that an empty postcode param was passed ErrEmptyPostcode = errors.New("empty postcode") )
Functions ¶
This section is empty.
Types ¶
type Address ¶
type Address struct {
FlatNumber string `json:"flat_number"`
BuildingNumber string `json:"building_number"`
BuildingName string `json:"building_name"`
Street string `json:"street"`
SubStreet string `json:"sub_street"`
Town string `json:"town"`
State string `json:"state"`
Postcode string `json:"postcode"`
Country string `json:"country"`
// Applicant specific
StartDate string `json:"start_date,omitempty"`
EndDate string `json:"end_date,omitempty"`
}
Address represents an address from the Onfido API
type Addresses ¶
type Addresses struct {
Addresses []*Address `json:"addresses"`
}
Addresses represents a list of addresses from the Onfido API
type Applicant ¶
type Applicant struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Sandbox bool `json:"sandbox,omitempty"`
Title string `json:"title,omitempty"`
FirstName string `json:"first_name,omitempty"`
LastName string `json:"last_name,omitempty"`
MiddleName string `json:"middle_name,omitempty"`
Email string `json:"email,omitempty"`
DOB string `json:"dob,omitempty"`
IDNumbers []IDNumber `json:"id_numbers,omitempty"`
}
Applicant represents an applicant from the Onfido API
type ApplicantIter ¶
type ApplicantIter struct {
// contains filtered or unexported fields
}
ApplicantIter represents an applicant iterator
func (*ApplicantIter) Applicant ¶
func (i *ApplicantIter) Applicant() *Applicant
Applicant returns the current applicant on the iterator.
type Applicants ¶
type Applicants struct {
Applicants []*Applicant `json:"applicants"`
}
Applicants represents a list of applicants from the Onfido API
type Breakdown ¶
type Breakdown struct {
Result *BreakdownResult `json:"result"`
SubBreakdowns SubBreakdowns `json:"breakdown"`
}
type BreakdownResult ¶
type BreakdownResult string
BreakdownResult represents a report's breakdown result
type BreakdownSubResult ¶
type BreakdownSubResult string
BreakdownSubResult represents a report's sub-breakdown result
type Breakdowns ¶
type Check ¶
type Check struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Href string `json:"href,omitempty"`
Type CheckType `json:"type,omitempty"`
Status CheckStatus `json:"status,omitempty"`
Result CheckResult `json:"result,omitempty"`
DownloadURI string `json:"download_uri,omitempty"`
FormURI string `json:"form_uri,omitempty"`
RedirectURI string `json:"redirect_uri,omitempty"`
ResultsURI string `json:"results_uri,omitempty"`
Reports []*Report `json:"reports,omitempty"`
Tags []string `json:"tags,omitempty"`
ApplicantID string `json:"applicant_id,omitempty"`
ApplicantProvidesData bool `json:"applicant_provides_data"`
}
Check represents a check in Onfido API
type CheckIter ¶
type CheckIter struct {
// contains filtered or unexported fields
}
CheckIter represents a check iterator
type CheckRequest ¶
type CheckRequest struct {
ApplicantID string `json:"applicant_id"`
ReportNames []string `json:"report_names"`
RedirectURI string `json:"redirect_uri,omitempty"`
Tags []string `json:"tags,omitempty"`
SupressFormEmails bool `json:"suppress_form_emails,omitempty"`
Async bool `json:"asynchronous,omitempty"`
ChargeApplicantForCheck bool `json:"charge_applicant_for_check,omitempty"`
// Consider is used for Sandbox Testing of multiple report scenarios.
// see https://documentation.onfido.com/#sandbox-responses
Consider []ReportName `json:"consider,omitempty"`
ApplicantProvidesData bool `json:"applicant_provides_data"`
}
CheckRequest represents a check request to Onfido API
type CheckResult ¶
type CheckResult string
CheckResult represents a result of a check (clear, consider)
type CheckRetrieved ¶
type CheckRetrieved struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Href string `json:"href,omitempty"`
Type CheckType `json:"type,omitempty"`
Status CheckStatus `json:"status,omitempty"`
Result CheckResult `json:"result,omitempty"`
DownloadURI string `json:"download_uri,omitempty"`
FormURI string `json:"form_uri,omitempty"`
RedirectURI string `json:"redirect_uri,omitempty"`
ResultsURI string `json:"results_uri,omitempty"`
Reports []string `json:"report_ids,omitempty"`
Tags []string `json:"tags,omitempty"`
ApplicantID string `json:"applicant_id,omitempty"`
ApplicantProvidesData bool `json:"applicant_provides_data"`
}
CheckRetrieved represents a check in the Onfido API which has been retrieved. This is subtly different to the Check type above, as the Reports slice is just a string of Report IDs, not fully expanded Report objects. See https://documentation.onfido.com/?shell#check-object (Shell)
type Checks ¶
type Checks struct {
Checks []*Check `json:"checks"`
}
Checks represents a list of checks in Onfido API
type Document ¶
type Document struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Href string `json:"href,omitempty"`
DownloadHref string `json:"download_href,omitempty"`
FileName string `json:"file_name,omitempty"`
FileType string `json:"file_type,omitempty"`
FileSize int `json:"file_size,omitempty"`
Type DocumentType `json:"type,omitempty"`
Side DocumentSide `json:"side,omitempty"`
ApplicantID string `json:"applicant_id,omitempty"`
}
Document represents a document in Onfido API
type DocumentDownload ¶
type DocumentDownload struct {
// Data is the binary data of the document
Data []byte
}
type DocumentIter ¶
type DocumentIter struct {
// contains filtered or unexported fields
}
DocumentIter represents a document iterator
func (*DocumentIter) Document ¶
func (i *DocumentIter) Document() *Document
Document returns the current item in the iterator as a Document.
type DocumentProcessed ¶
type DocumentProcessed map[string]interface{}
DocumentProcessed contains metadata about the document that has been processed
type DocumentRequest ¶
type DocumentRequest struct {
ApplicantID string
File io.ReadSeeker
Type DocumentType
Side DocumentSide
}
DocumentRequest represents a document request to Onfido API
type DocumentType ¶
type DocumentType string
DocumentType represents a document type (passport, ID, etc)
type Documents ¶
type Documents struct {
Documents []*Document `json:"documents"`
}
Documents represents a list of documents from the Onfido API
type Error ¶
type Error struct {
Resp *http.Response
// see https://documentation.onfido.com/#error-object
Err struct {
ID string `json:"id"`
Type string `json:"type"`
Msg string `json:"message"`
Fields ErrorFields `json:"fields"`
} `json:"error"`
}
Error represents an Onfido API error response
type ErrorFields ¶
type ErrorFields map[string]interface{}
known shapes of the values are []string and map[string][]string for recursive field validation
type HTTPRequester ¶
HTTPRequester represents an HTTP requester
type IDNumber ¶
type IDNumber struct {
Type IDNumberType `json:"type,omitempty"`
Value string `json:"value,omitempty"`
StateCode string `json:"state_code,omitempty"`
}
IDNumber represents an ID number from the Onfido API
type IDNumberType ¶
type IDNumberType string
IDNumberType represents an ID type (ssn, social insurance, etc)
const ( IDNumberTypeSSN IDNumberType = "ssn" IDNumberTypeSocialInsurance IDNumberType = "social_insurance" IDNumberTypeTaxID IDNumberType = "tax_id" IDNumberTypeIdentityCard IDNumberType = "identity_card" IDNumberTypeDrivingLicense IDNumberType = "driving_licence" )
Supported ID number types
type LivePhoto ¶
type LivePhoto struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Href string `json:"href,omitempty"`
DownloadHref string `json:"download_href,omitempty"`
FileName string `json:"file_name,omitempty"`
FileType string `json:"file_type,omitempty"`
FileSize int32 `json:"file_size,omitempty"`
}
LivePhoto represents a LivePhoto in Onfido API
type LivePhotoIter ¶
type LivePhotoIter struct {
// contains filtered or unexported fields
}
LivePhotoIter represents a LivePhoto iterator
func (*LivePhotoIter) LivePhoto ¶
func (i *LivePhotoIter) LivePhoto() *LivePhoto
LivePhoto returns the current item in the iterator as a LivePhoto.
type LiveVideo ¶
type LiveVideo struct {
ID string `json:"id,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Href string `json:"href,omitempty"`
DownloadHref string `json:"download_href,omitempty"`
FileName string `json:"file_name,omitempty"`
FileType string `json:"file_type,omitempty"`
FileSize int `json:"file_size,omitempty"`
}
LiveVideo represents a live video object in Onfido API https://documentation.onfido.com/#live-video-object
type LiveVideoDownload ¶
type LiveVideoDownload struct {
// Data is the binary data of the live video
Data []byte
}
type LiveVideoIter ¶
type OnfidoClient ¶
type OnfidoClient interface {
SetHTTPClient(client HTTPRequester)
NewSdkTokenWeb(ctx context.Context, applicantID, referrer string) (*SdkToken, error)
NewSdkTokenMobile(ctx context.Context, applicantID, applicationID string) (*SdkToken, error)
GetReport(ctx context.Context, id string) (*Report, error)
ResumeReport(ctx context.Context, id string) error
CancelReport(ctx context.Context, id string) error
ListReports(checkID string) *ReportIter
GetDocument(ctx context.Context, id string) (*Document, error)
ListDocuments(applicantID string) *DocumentIter
UploadDocument(ctx context.Context, dr DocumentRequest) (*Document, error)
DownloadDocument(ctx context.Context, id string) (*DocumentDownload, error)
ListLivePhotos(applicantID string) *LivePhotoIter
DownloadLiveVideo(ctx context.Context, id string) (*LiveVideoDownload, error)
ListLiveVideos(applicantID string) LiveVideoIter
CreateApplicant(ctx context.Context, a Applicant) (*Applicant, error)
DeleteApplicant(ctx context.Context, id string) error
GetApplicant(ctx context.Context, id string) (*Applicant, error)
ListApplicants() *ApplicantIter
UpdateApplicant(ctx context.Context, a Applicant) (*Applicant, error)
CreateCheck(ctx context.Context, cr CheckRequest) (*Check, error)
GetCheck(ctx context.Context, id string) (*CheckRetrieved, error)
GetCheckExpanded(ctx context.Context, id string) (*Check, error)
ResumeCheck(ctx context.Context, id string) (*Check, error)
ListChecks(applicantID string) *CheckIter
CreateWebhook(ctx context.Context, wr WebhookRefRequest) (*WebhookRef, error)
UpdateWebhook(ctx context.Context, id string, wr WebhookRefRequest) (*WebhookRef, error)
DeleteWebhook(ctx context.Context, id string) error
ListWebhooks() *WebhookRefIter
PickAddresses(postcode string) *PickerIter
GetResource(ctx context.Context, href string, v interface{}) error
Token() Token
}
func NewClientFromEnv ¶
func NewClientFromEnv() (OnfidoClient, error)
NewClientFromEnv creates a new Onfido client using configuration from environment variables.
type PickerIter ¶
type PickerIter struct {
// contains filtered or unexported fields
}
PickerIter represents an address picker iterator
func (*PickerIter) Address ¶
func (i *PickerIter) Address() *Address
Address returns the current address on the iterator.
type Properties ¶
type Properties map[string]interface{}
type Report ¶
type Report struct {
ID string `json:"id,omitempty"`
Name ReportName `json:"name,omitempty"`
CreatedAt *time.Time `json:"created_at,omitempty"`
Status string `json:"status,omitempty"`
Result ReportResult `json:"result,omitempty"`
SubResult ReportSubResult `json:"sub_result,omitempty"`
Href string `json:"href,omitempty"`
Options map[string]interface{} `json:"options,omitempty"`
Breakdown Breakdowns `json:"breakdown,omitempty"`
Properties Properties `json:"properties,omitempty"`
CheckID string `json:"check_id,omitempty"`
Documents []DocumentProcessed `json:"documents,omitempty"`
}
Report represents a report from the Onfido API
type ReportIter ¶
type ReportIter struct {
// contains filtered or unexported fields
}
ReportIter represents a document iterator
func (*ReportIter) Report ¶
func (i *ReportIter) Report() *Report
Report returns the current item in the iterator as a Report.
type Reports ¶
type Reports struct {
Reports []*Report `json:"reports"`
}
Reports represents a list of reports from the Onfido API
type SdkToken ¶
type SdkToken struct {
ApplicantID string `json:"applicant_id,omitempty"`
Referrer string `json:"referrer,omitempty"`
ApplicationID string `json:"application_id,omitempty"`
Token string `json:"token,omitempty"`
}
SdkToken represents the response for a request for a JWT token
type SubBreakdown ¶
type SubBreakdown struct {
Result *BreakdownSubResult `json:"result"`
Properties Properties `json:"properties"`
}
type SubBreakdowns ¶
type SubBreakdowns map[string]SubBreakdown
type Webhook ¶
type Webhook interface {
ValidateSignature(body []byte, signature string) error
ParseFromRequest(req *http.Request) (*WebhookRequest, error)
}
func NewWebhookFromEnv ¶
NewWebhookFromEnv creates a new webhook handler using configuration from environment variables.
type WebhookEnvironment ¶
type WebhookEnvironment string
WebhookEnvironment represents an environment type (see `WebhookEnvironment*` constants for possible values)
type WebhookEvent ¶
type WebhookEvent string
WebhookEvent represents an event type (see `WebhookEvent*` constants for possible values)
type WebhookRef ¶
type WebhookRef struct {
ID string `json:"id,omitempty"`
URL string `json:"url,omitempty"`
Enabled bool `json:"enabled"`
Href string `json:"href,omitempty"`
Token string `json:"token,omitempty"`
Environments []WebhookEnvironment `json:"environments,omitempty"`
Events []WebhookEvent `json:"events,omitempty"`
}
WebhookRef represents a webhook in Onfido API
type WebhookRefIter ¶
type WebhookRefIter struct {
// contains filtered or unexported fields
}
WebhookRefIter represents a webhook iterator
func (*WebhookRefIter) WebhookRef ¶
func (i *WebhookRefIter) WebhookRef() *WebhookRef
WebhookRef returns the current item in the iterator as a WebhookRef.
type WebhookRefRequest ¶
type WebhookRefRequest struct {
URL string `json:"url"` // Onfido requires that this must be HTTPS
Enabled bool `json:"enabled"`
Environments []WebhookEnvironment `json:"environments,omitempty"` // If omitted then Onfido will default to both
Events []WebhookEvent `json:"events,omitempty"` // If omitted then Onfido will default to all
}
WebhookRefRequest represents a webhook request to Onfido API
type WebhookRefs ¶
type WebhookRefs struct {
WebhookRefs []*WebhookRef `json:"webhooks"`
}
WebhookRefs represents a list of webhooks in Onfido API
type WebhookRequest ¶
type WebhookRequest struct {
Payload struct {
ResourceType string `json:"resource_type"`
Action string `json:"action"`
Object struct {
ID string `json:"id"`
Status string `json:"status"`
CompletedAt string `json:"completed_at_iso8601"`
Href string `json:"href"`
} `json:"object"`
} `json:"payload"`
}
WebhookRequest represents an incoming webhook request from Onfido
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
examples
|
|
|
applicant
command
|
|
|
check
command
|
|
|
error
command
|
|
|
jwt
command
|
|
|
list-applicants
command
|
|
|
upload-document
command
|
|
|
webhook
command
|