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 Client
- func (c *Client) CancelReport(ctx context.Context, checkID, id string) error
- func (c *Client) CreateApplicant(ctx context.Context, a Applicant) (*Applicant, error)
- func (c *Client) CreateCheck(ctx context.Context, applicantID string, cr CheckRequest) (*Check, error)
- func (c *Client) CreateWebhook(ctx context.Context, wr WebhookRefRequest) (*WebhookRef, error)
- func (c *Client) DeleteApplicant(ctx context.Context, id string) error
- func (c *Client) GetApplicant(ctx context.Context, id string) (*Applicant, error)
- func (c *Client) GetCheck(ctx context.Context, applicantID, id string) (*CheckRetrieved, error)
- func (c *Client) GetCheckExpanded(ctx context.Context, applicantID, id string) (*Check, error)
- func (c *Client) GetDocument(ctx context.Context, applicantID, id string) (*Document, error)
- func (c *Client) GetReport(ctx context.Context, checkID, id string) (*Report, error)
- func (c *Client) ListApplicants() *ApplicantIter
- func (c *Client) ListChecks(applicantID string) *CheckIter
- func (c *Client) ListDocuments(applicantID string) *DocumentIter
- func (c *Client) ListLivePhotos(applicantID string) *LivePhotoIter
- func (c *Client) ListReports(checkID string) *ReportIter
- func (c *Client) ListWebhooks() *WebhookRefIter
- func (c *Client) NewSdkToken(ctx context.Context, id, referrer, applicationID string) (*SdkToken, error)
- func (c *Client) PickAddresses(postcode string) *PickerIter
- func (c *Client) ResumeCheck(ctx context.Context, id string) (*Check, error)
- func (c *Client) ResumeReport(ctx context.Context, checkID, id string) error
- func (c *Client) UpdateApplicant(ctx context.Context, a Applicant) (*Applicant, error)
- func (c *Client) UploadDocument(ctx context.Context, applicantID string, dr DocumentRequest) (*Document, error)
- type Document
- type DocumentIter
- type DocumentRequest
- type DocumentSide
- type DocumentType
- type Documents
- type Error
- type ErrorFields
- type HTTPRequester
- type IDNumber
- type IDNumberType
- type LivePhoto
- type LivePhotoIter
- type PickerIter
- type Properties
- type Report
- type ReportIter
- type ReportName
- type ReportResult
- type ReportSubResult
- type ReportVariant
- 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 ( CheckTypeExpress CheckType = "express" CheckTypeStandard CheckType = "standard" 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.onfido.com/v2" TokenEnv = "ONFIDO_TOKEN" )
Constants
const ( ReportNameIdentity ReportName = "identity" ReportNameDocument ReportName = "document" ReportNameFacialSimilarity ReportName = "facial_similarity" ReportNameStreetLevel ReportName = "street_level" ReportNameProofOfAddress ReportName = "proof_of_address" ReportResultClear ReportResult = "clear" ReportResultConsider ReportResult = "consider" ReportResultUnidentified ReportResult = "unidentified" ReportSubResultClear ReportSubResult = "clear" ReportSubResultRejected ReportSubResult = "rejected" ReportSubResultSuspected ReportSubResult = "suspected" ReportSubResultCaution ReportSubResult = "caution" ReportVariantStandard ReportVariant = "standard" ReportVariantKYC ReportVariant = "kyc" ReportVariantVideo ReportVariant = "video" )
Supported report names, results, subresults, and variants
const ( WebhookSignatureHeader = "X-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"` Gender string `json:"gender,omitempty"` DOB string `json:"dob,omitempty"` Telephone string `json:"telephone,omitempty"` Mobile string `json:"mobile,omitempty"` Country string `json:"country,omitempty"` MothersMaidenName string `json:"mothers_maiden_name,omitempty"` PreviousLastName string `json:"previous_last_name,omitempty"` Nationality string `json:"nationality,omitempty"` CountryOfBirth string `json:"country_of_birth,omitempty"` TownOfBirth string `json:"town_of_birth,omitempty"` IDNumbers []IDNumber `json:"id_numbers,omitempty"` Addresses []Address `json:"addresses,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"` }
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 { Type CheckType `json:"type"` RedirectURI string `json:"redirect_uri,omitempty"` Reports []*Report `json:"reports"` Tags []string `json:"tags,omitempty"` SupressFormEmails bool `json:"suppress_form_emails,omitempty"` Async bool `json:"async,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"` }
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:"reports,omitempty"` Tags []string `json:"tags,omitempty"` }
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 Client ¶
type Client struct { Endpoint string HTTPClient HTTPRequester Token Token }
Client represents an Onfido API client
func NewClientFromEnv ¶
NewClientFromEnv creates a new Onfido client using configuration from environment variables.
func (*Client) CancelReport ¶
CancelReport cancels a report by its ID. see https://documentation.onfido.com/?shell#cancel-report
func (*Client) CreateApplicant ¶
CreateApplicant creates a new applicant. see https://documentation.onfido.com/?shell#create-applicant
func (*Client) CreateCheck ¶
func (c *Client) CreateCheck(ctx context.Context, applicantID string, cr CheckRequest) (*Check, error)
CreateCheck creates a new check for the provided applicant. see https://documentation.onfido.com/?shell#create-check
func (*Client) CreateWebhook ¶
func (c *Client) CreateWebhook(ctx context.Context, wr WebhookRefRequest) (*WebhookRef, error)
CreateWebhook register a new webhook. see https://documentation.onfido.com/#register-webhook
func (*Client) DeleteApplicant ¶
DeleteApplicant deletes an applicant by its id. see https://documentation.onfido.com/?shell#delete-applicant
func (*Client) GetApplicant ¶
GetApplicant retrieves an applicant by its id. see https://documentation.onfido.com/?shell#retrieve-applicant
func (*Client) GetCheck ¶
GetCheck retrieves a check for the provided applicant by its ID. see https://documentation.onfido.com/?shell#retrieve-check
func (*Client) GetCheckExpanded ¶
GetCheckExpanded retrieves a check for the provided applicant by its ID, with the Check's Reports expanded within the returned Check object. see https://documentation.onfido.com/?shell#retrieve-check (Shell) but refer to the JSON response object for https://documentation.onfido.com/?php#check-object (PHP) for the expanded contents.
func (*Client) GetDocument ¶
GetDocument retrieves a single document for the provided applicant by its ID. see https://documentation.onfido.com/?shell#retrieve-document
func (*Client) GetReport ¶
GetReport retrieves a report for the provided check by its ID. see https://documentation.onfido.com/?shell#retrieve-report
func (*Client) ListApplicants ¶
func (c *Client) ListApplicants() *ApplicantIter
ListApplicants retrieves the list of applicants. see https://documentation.onfido.com/?shell#list-applicants
func (*Client) ListChecks ¶
ListChecks retrieves the list of checks for the provided applicant. see https://documentation.onfido.com/?shell#list-checks
func (*Client) ListDocuments ¶
func (c *Client) ListDocuments(applicantID string) *DocumentIter
ListDocuments retrieves the list of documents for the provided applicant. see https://documentation.onfido.com/?shell#list-documents
func (*Client) ListLivePhotos ¶
func (c *Client) ListLivePhotos(applicantID string) *LivePhotoIter
ListPhotos retrieves the list of photos for the provided applicant. see https://documentation.onfido.com/?shell#live-photos
func (*Client) ListReports ¶
func (c *Client) ListReports(checkID string) *ReportIter
ListReports retrieves the list of reports for the provided check. see https://documentation.onfido.com/?shell#list-reports
func (*Client) ListWebhooks ¶
func (c *Client) ListWebhooks() *WebhookRefIter
ListWebhooks retrieves the list of webhooks. see https://documentation.onfido.com/#list-webhooks
func (*Client) NewSdkToken ¶
func (c *Client) NewSdkToken(ctx context.Context, id, referrer, applicationID string) (*SdkToken, error)
NewSdkToken returns a JWT token to used by the Javascript SDK
func (*Client) PickAddresses ¶
func (c *Client) PickAddresses(postcode string) *PickerIter
PickAddresses retrieves the list of addresses matched against the provided postcode. see https://documentation.onfido.com/?shell#address-picker
func (*Client) ResumeCheck ¶
ResumeCheck resumes a paused check by its ID. see https://documentation.onfido.com/?shell#resume-check
func (*Client) ResumeReport ¶
ResumeReport resumes a paused report by its ID. see https://documentation.onfido.com/?shell#resume-report
func (*Client) UpdateApplicant ¶
UpdateApplicant updates an applicant by its id. see https://documentation.onfido.com/?shell#update-applicant
func (*Client) UploadDocument ¶
func (c *Client) UploadDocument(ctx context.Context, applicantID string, dr DocumentRequest) (*Document, error)
UploadDocument uploads a document for the provided applicant. see https://documentation.onfido.com/?shell#upload-document
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"` }
Document represents a document in Onfido API
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 DocumentRequest ¶
type DocumentRequest struct { 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_license" )
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 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"` Variant ReportVariant `json:"variant,omitempty"` Href string `json:"href,omitempty"` Options map[string]interface{} `json:"options,omitempty"` Breakdown Breakdowns `json:"breakdown,omitempty"` Properties Properties `json:"properties,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"` ApplicationID string `json:"application_id,omitempty"` Referrer string `json:"referrer,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 ¶
Webhook represents a webhook handler
func NewWebhookFromEnv ¶
NewWebhookFromEnv creates a new webhook handler using configuration from environment variables.
func (*Webhook) ParseFromRequest ¶
func (wh *Webhook) ParseFromRequest(req *http.Request) (*WebhookRequest, error)
ParseFromRequest parses the webhook request body and returns it as WebhookRequest if the request signature is valid.
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"` Href string `json:"href"` } `json:"object"` } `json:"payload"` }
WebhookRequest represents an incoming webhook request from Onfido