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" 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" 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 DefaultEndpoint = "https://api.eu.onfido.com/v3.1"
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"` Address Address `json:"address,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