Documentation
¶
Overview ¶
Package didit is the official Didit Go library: identity verification (KYC), business verification (KYB), AML screening, biometrics, transaction monitoring, Travel Rule and account management from your Go backend.
Create one client per process and reuse it; it is safe for concurrent use:
client := didit.NewClient() // reads DIDIT_API_KEY
session, err := client.Sessions.Create(ctx, didit.SessionsCreateParams{
WorkflowID: workflowID,
VendorData: didit.String("user-42"),
})
Every field of Client is a resource of the API, and every method is one operation: a context first, then the path parameters, then a parameters struct when the operation has a body or query parameters, then github.com/didit-protocol/sdk-go/option.RequestOption values that override the client's settings for that call.
Optional request fields have the type Opt: their zero value is not sent. Response types are plain structs decoded leniently; their JSON field (ResponseJSON) gives the raw object, which keys were present or null, and keys this version does not know.
Errors implement Error; use errors.As with *APIStatusError or a status-specific type such as *NotFoundError. Failed requests are retried with backoff, except a POST or PATCH that may have reached the server.
List methods return a Page; their AutoPaging variants return a PageIterator over every item of every page.
Webhooks are verified by package github.com/didit-protocol/sdk-go/webhook and Authentication tokens by package github.com/didit-protocol/sdk-go/authentication.
API reference: https://docs.didit.me
Most of this package is generated from Didit's OpenAPI documents; see https://github.com/didit-protocol/sdk-go for the design and the generator.
Index ¶
- func NewAPIStatusError(e *APIStatusError) error
- type AMLDatasetFreshness
- type AMLDatasetFreshnessSources
- type AMLDatasetSourceFreshness
- type AMLMonitoringRetrieveJobResponse
- type AMLMonitoringRetrieveJobResponseOutcomes
- type AMLMonitoringRetrieveJobResponseResults
- type AMLMonitoringRetrieveJobResponseResultsOutcome
- type AMLMonitoringRetrieveJobResponseStatus
- type AMLMonitoringRetrieveJobResponseTargetType
- type AMLMonitoringService
- type AMLRetrieveDatasetFreshnessResponse
- type AMLRetrieveDatasetFreshnessResponseAvailability
- type AMLScreenParams
- type AMLScreenParamsEntityType
- type AMLScreenResponse
- type AMLScreenResponseAML
- type AMLScreenResponseAMLEntityType
- type AMLScreenResponseAMLHits
- type AMLScreenResponseAMLHitsAdverseMediaMatches
- type AMLScreenResponseAMLHitsLinkedEntities
- type AMLScreenResponseAMLHitsPEPMatches
- type AMLScreenResponseAMLHitsReviewStatus
- type AMLScreenResponseAMLHitsScoreBreakdown
- type AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType
- type AMLScreenResponseAMLScreenedData
- type AMLScreenResponseAMLStatus
- type AMLScreenResponseAMLWarnings
- type AMLScreening
- type AMLScreeningHits
- type AMLScreeningHitsAdverseMediaDetails
- type AMLScreeningHitsAdverseMediaMatches
- type AMLScreeningHitsDatasets
- type AMLScreeningHitsLinkedEntities
- type AMLScreeningHitsPEPMatches
- type AMLScreeningHitsProperties
- type AMLScreeningHitsReviewStatus
- type AMLScreeningHitsRiskView
- type AMLScreeningHitsRiskViewCategories
- type AMLScreeningHitsRiskViewCountries
- type AMLScreeningHitsRiskViewCrimes
- type AMLScreeningHitsSanctionMatches
- type AMLScreeningHitsScoreBreakdown
- type AMLScreeningHitsScoreBreakdownDocumentNumberMatchType
- type AMLScreeningHitsWarningMatches
- type AMLScreeningHitsWarningMatchesAdditionalData
- type AMLScreeningHitsWarningMatchesAdditionalDataData
- type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails
- type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType
- type AMLScreeningRun
- type AMLScreeningRunOutcome
- type AMLScreeningRunStatus
- type AMLScreeningRunTrigger
- type AMLScreeningScreenedData
- type AMLScreeningStatus
- type AMLScreeningWarnings
- type AMLScreeningWarningsFeature
- type AMLService
- type APIConnectionError
- type APIStatusError
- type APITimeoutError
- type AccountApplicationsListParams
- type AccountApplicationsService
- func (r *AccountApplicationsService) Create(ctx context.Context, orgID string, params ApplicationCreateRequest, ...) (*Application, error)
- func (r *AccountApplicationsService) List(ctx context.Context, orgID string, params AccountApplicationsListParams, ...) (*Page[Application], error)
- func (r *AccountApplicationsService) ListAutoPaging(ctx context.Context, orgID string, params AccountApplicationsListParams, ...) *PageIterator[Application]
- func (r *AccountApplicationsService) Retrieve(ctx context.Context, orgID string, appID string, opts ...option.RequestOption) (*Application, error)
- func (r *AccountApplicationsService) Update(ctx context.Context, orgID string, appID string, ...) (*Application, error)
- type AccountOrganizationsListParams
- type AccountOrganizationsService
- type AccountResendOTPParams
- type AccountResendOTPResponse
- type AccountService
- func (r *AccountService) Login(ctx context.Context, params LoginRequest, opts ...option.RequestOption) (*LoginResponse, error)
- func (r *AccountService) Register(ctx context.Context, params RegisterRequest, opts ...option.RequestOption) (*RegisterResponse, error)
- func (r *AccountService) ResendOTP(ctx context.Context, params AccountResendOTPParams, ...) (*AccountResendOTPResponse, error)
- func (r *AccountService) VerifyEmail(ctx context.Context, params VerifyEmailRequest, opts ...option.RequestOption) (*VerifyEmailResponse, error)
- type AgeEstimationEstimateParams
- type AgeEstimationEstimateResponse
- type AgeEstimationEstimateResponseAgeEstimation
- type AgeEstimationEstimateResponseAgeEstimationMethod
- type AgeEstimationEstimateResponseAgeEstimationStatus
- type AgeEstimationEstimateResponseAgeEstimationUserImage
- type AgeEstimationEstimateResponseAgeEstimationUserImageEntities
- type AgeEstimationEstimateResponseAgeEstimationWarnings
- type AgeEstimationEstimateResponseAgeEstimationWarningsFeature
- type AgeEstimationEstimateResponseAgeEstimationWarningsLogType
- type AgeEstimationEstimateResponseAgeEstimationWarningsRisk
- type AgeEstimationService
- type AnalyticsRetrieveParams
- type AnalyticsRetrieveParamsScope
- type AnalyticsRetrieveResponse
- type AnalyticsRetrieveResponseGroupingMode
- type AnalyticsRetrieveResponseScope
- type AnalyticsService
- type Application
- type ApplicationAnalyticsCountryCount
- type ApplicationAnalyticsDataPoint
- type ApplicationAnalyticsDemographicPoint
- type ApplicationAnalyticsDemographicStats
- type ApplicationAnalyticsDemographicStatsAgeDistribution
- type ApplicationAnalyticsDeviceDetails
- type ApplicationAnalyticsDeviceDetailsBrowsers
- type ApplicationAnalyticsDeviceDetailsDeviceModels
- type ApplicationAnalyticsDeviceDetailsOperatingSystems
- type ApplicationAnalyticsDevicePoint
- type ApplicationAnalyticsLocationStats
- type ApplicationAnalyticsLocationStatsCities
- type ApplicationAnalyticsLocationStatsConversionByCountry
- type ApplicationAnalyticsOriginalStatusPoint
- type ApplicationAnalyticsOriginalStatusStats
- type ApplicationAnalyticsRequestBreakdown
- type ApplicationAnalyticsResubmissionPoint
- type ApplicationAnalyticsResubmissionStats
- type ApplicationAnalyticsVerificationTimePoint
- type ApplicationAnalyticsVerificationTimeStats
- type ApplicationAnalyticsVerificationTimeStatsPerFeature
- type ApplicationAnalyticsVerificationTimeStatsPerSubStep
- type ApplicationAnalyticsWarningStats
- type ApplicationAnalyticsWarningStatsRisks
- type ApplicationAnalyticsWidget
- type ApplicationAnalyticsWidgetGroupingMode
- type ApplicationAnalyticsWidgetKind
- type ApplicationAnalyticsWidgetSearch
- type ApplicationAnalyticsWidgetThresholds
- type ApplicationAnalyticsWorkflowFunnel
- type ApplicationAnalyticsWorkflowFunnelSteps
- type ApplicationCreateRequest
- type ApplicationCredentialsSummary
- type ApplicationProduct
- type ApplicationProductProduct
- type ApplicationProductStatus
- type ApplicationUpdateRequest
- type AuthenticationError
- type BadRequestError
- type BankAccountCheckHolder
- type BankAccountCheckPricing
- type BankAccountCheckRequest
- type BankAccountCheckRequestAccount
- type BankAccountCheckResponse
- type BankAccountCheckResponseResult
- type BankService
- type BankSignInPricing
- type BankSignInPricingAddOns
- type BankStatementUploadPricing
- type BankVerificationPricing
- type BankVerificationPricingCountry
- type BankVerificationPricingCurrency
- type BankVerificationPricingMethods
- type BankVerificationResult
- type BankVerificationResultAccount
- type BankVerificationResultAccountHolderType
- type BankVerificationResultAccountType
- type BankVerificationResultBilling
- type BankVerificationResultBillingRoute
- type BankVerificationResultConnection
- type BankVerificationResultConnectionStatus
- type BankVerificationResultContinuation
- type BankVerificationResultContinuationOffered
- type BankVerificationResultContinuationReason
- type BankVerificationResultCredentialSource
- type BankVerificationResultFinancialData
- type BankVerificationResultFinancialDataNotCollected
- type BankVerificationResultMethod
- type BankVerificationResultOwnership
- type BankVerificationResultOwnershipEvidenceFreshness
- type BankVerificationResultOwnershipHolderConfirmation
- type BankVerificationResultOwnershipMethod
- type BankVerificationResultOwnershipResult
- type BankVerificationResultRoute
- type BankVerificationResultRouteCredentialSource
- type BankVerificationResultStatus
- type BillingRetrieveBalanceResponse
- type BillingService
- type BillingTopUpParams
- type BillingTopUpResponse
- type BiometricTemplatesBatchDeleteParams
- type BiometricTemplatesBatchDeleteParamsSourceType
- type BiometricTemplatesBatchDeleteParamsStatus
- type BiometricTemplatesBatchDeleteResponse
- type BiometricTemplatesBatchDeleteResponseResults
- type BiometricTemplatesBatchDeleteResponseResultsOutcome
- type BiometricTemplatesCountParams
- type BiometricTemplatesCountParamsSourceType
- type BiometricTemplatesCountParamsStatus
- type BiometricTemplatesCountResponse
- type BiometricTemplatesDeleteResponse
- type BiometricTemplatesDeleteResponseOutcome
- type BiometricTemplatesListParams
- type BiometricTemplatesListParamsOrdering
- type BiometricTemplatesListParamsSourceType
- type BiometricTemplatesListParamsStatus
- type BiometricTemplatesListResponseResults
- type BiometricTemplatesListResponseResultsInstructionClass
- type BiometricTemplatesListResponseResultsInstructionSource
- type BiometricTemplatesListResponseResultsRetainedByType
- type BiometricTemplatesListResponseResultsRetentionPolicy
- type BiometricTemplatesListResponseResultsSourceType
- type BiometricTemplatesListResponseResultsStatus
- type BiometricTemplatesRetrieveResponse
- type BiometricTemplatesRetrieveResponseInstructionClass
- type BiometricTemplatesRetrieveResponseInstructionSource
- type BiometricTemplatesRetrieveResponseRetainedByType
- type BiometricTemplatesRetrieveResponseRetentionPolicy
- type BiometricTemplatesRetrieveResponseSourceType
- type BiometricTemplatesRetrieveResponseStatus
- type BiometricTemplatesService
- func (r *BiometricTemplatesService) BatchDelete(ctx context.Context, params BiometricTemplatesBatchDeleteParams, ...) (*BiometricTemplatesBatchDeleteResponse, error)
- func (r *BiometricTemplatesService) Count(ctx context.Context, params BiometricTemplatesCountParams, ...) (*BiometricTemplatesCountResponse, error)
- func (r *BiometricTemplatesService) Delete(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*BiometricTemplatesDeleteResponse, error)
- func (r *BiometricTemplatesService) List(ctx context.Context, params BiometricTemplatesListParams, ...) (*Page[BiometricTemplatesListResponseResults], error)
- func (r *BiometricTemplatesService) ListAutoPaging(ctx context.Context, params BiometricTemplatesListParams, ...) *PageIterator[BiometricTemplatesListResponseResults]
- func (r *BiometricTemplatesService) Retrieve(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*BiometricTemplatesRetrieveResponse, error)
- type BlocklistAddParams
- type BlocklistAddResponse
- type BlocklistListParams
- type BlocklistListParamsItemType
- type BlocklistRemoveParams
- type BlocklistRemoveResponse
- type BlocklistService
- func (r *BlocklistService) Add(ctx context.Context, params BlocklistAddParams, opts ...option.RequestOption) (*BlocklistAddResponse, error)
- func (r *BlocklistService) List(ctx context.Context, params BlocklistListParams, opts ...option.RequestOption) (*Page[BlocklistedItem], error)
- func (r *BlocklistService) ListAutoPaging(ctx context.Context, params BlocklistListParams, opts ...option.RequestOption) *PageIterator[BlocklistedItem]
- func (r *BlocklistService) Remove(ctx context.Context, params BlocklistRemoveParams, ...) (*BlocklistRemoveResponse, error)
- type BlocklistedItem
- type BlocklistedItemType
- type BrandingCustomization
- type BusinessDetailItem
- type BusinessDetailItemFeaturesList
- type BusinessDetailItemStatus
- type BusinessDetailItemTags
- type BusinessListItem
- type BusinessListItemFeaturesList
- type BusinessListItemStatus
- type BusinessListItemTags
- type BusinessSessionsService
- type BusinessesBatchDeleteParams
- type BusinessesBatchDeleteResponse
- type BusinessesCreateParams
- type BusinessesCreateParamsStatus
- type BusinessesListParams
- type BusinessesService
- func (r *BusinessesService) BatchDelete(ctx context.Context, params BusinessesBatchDeleteParams, ...) (*BusinessesBatchDeleteResponse, error)
- func (r *BusinessesService) Create(ctx context.Context, params BusinessesCreateParams, ...) (*BusinessDetailItem, error)
- func (r *BusinessesService) GenerateSessionPDF(ctx context.Context, businessSessionID string, opts ...option.RequestOption) (*http.Response, error)
- func (r *BusinessesService) List(ctx context.Context, params BusinessesListParams, opts ...option.RequestOption) (*Page[BusinessListItem], error)
- func (r *BusinessesService) ListAutoPaging(ctx context.Context, params BusinessesListParams, opts ...option.RequestOption) *PageIterator[BusinessListItem]
- func (r *BusinessesService) ListNetworks(ctx context.Context, vendorBusinessUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
- func (r *BusinessesService) Retrieve(ctx context.Context, vendorData string, opts ...option.RequestOption) (*BusinessDetailItem, error)
- func (r *BusinessesService) RetrieveOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
- func (r *BusinessesService) RetrieveSessionOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
- func (r *BusinessesService) SetAMLMonitoring(ctx context.Context, params BusinessesSetAMLMonitoringParams, ...) (*BusinessesSetAMLMonitoringResponse, error)
- func (r *BusinessesService) SetOngoingMonitoring(ctx context.Context, params OngoingMonitoringToggleRequest, ...) (*BusinessesSetOngoingMonitoringResponse, error)
- func (r *BusinessesService) SetSessionOngoingMonitoring(ctx context.Context, params BusinessesSetSessionOngoingMonitoringParams, ...) (*BusinessesSetSessionOngoingMonitoringResponse, error)
- func (r *BusinessesService) Update(ctx context.Context, vendorData string, params BusinessesUpdateParams, ...) (*BusinessDetailItem, error)
- func (r *BusinessesService) UpdateStatus(ctx context.Context, vendorData string, params BusinessesUpdateStatusParams, ...) (*BusinessDetailItem, error)
- type BusinessesSetAMLMonitoringParams
- type BusinessesSetAMLMonitoringResponse
- type BusinessesSetAMLMonitoringResponseEstimate
- type BusinessesSetAMLMonitoringResponseOutcomes
- type BusinessesSetAMLMonitoringResponseResults
- type BusinessesSetAMLMonitoringResponseResultsOutcome
- type BusinessesSetAMLMonitoringResponseStatus
- type BusinessesSetAMLMonitoringResponseTargetType
- type BusinessesSetOngoingMonitoringResponse
- type BusinessesSetOngoingMonitoringResponseEstimate
- type BusinessesSetOngoingMonitoringResponseOutcomes
- type BusinessesSetOngoingMonitoringResponseStatus
- type BusinessesSetSessionOngoingMonitoringParams
- type BusinessesSetSessionOngoingMonitoringResponse
- type BusinessesSetSessionOngoingMonitoringResponseEstimate
- type BusinessesSetSessionOngoingMonitoringResponseOutcomes
- type BusinessesSetSessionOngoingMonitoringResponseStatus
- type BusinessesUpdateParams
- type BusinessesUpdateParamsStatus
- type BusinessesUpdateStatusParams
- type BusinessesUpdateStatusParamsStatus
- type CaseActionActionEnum
- type CaseActionCaseActionReceipt
- type CaseActionCaseActionReceiptPage
- type CaseActionCaseEntityActionRequest
- type CaseActionCaseEntityActionResult
- type CaseActionEntityTypeEnum
- type CaseActionStatusEnum
- type CaseAssignee
- type CaseBlueprintDetail
- type CaseBlueprintDetailAssignmentMethod
- type CaseBlueprintDetailContentConfig
- type CaseBlueprintDetailContentConfigAMLControl
- type CaseBlueprintDetailContentConfigChecklist
- type CaseBlueprintDetailContentConfigChecklistItems
- type CaseBlueprintDetailContentConfigFinancial
- type CaseBlueprintDetailContentConfigIdentity
- type CaseBlueprintDetailContentConfigReporting
- type CaseBlueprintDetailContentConfigVerifications
- type CaseBlueprintDetailCreationSources
- type CaseBlueprintDetailCreationSourcesKind
- type CaseBlueprintDetailReceivesEscalationFrom
- type CaseBlueprintListItem
- type CaseBlueprintListItemAssignmentMethod
- type CaseBlueprintPresetInstallResult
- type CaseBlueprintSummary
- type CaseBulkUpdateResult
- type CaseBulkUpdateResultFailures
- type CaseChecker
- type CaseChecklistItem
- type CaseCollaborationCaseNote
- type CaseCollaborationCaseNoteCreateRequest
- type CaseCollaborationCaseNoteReply
- type CaseCollaborationPatchedCaseNoteUpdateRequest
- type CaseContentConfig
- type CaseContentConfigAMLControl
- type CaseContentConfigChecklist
- type CaseContentConfigChecklistItems
- type CaseContentConfigFinancial
- type CaseContentConfigIdentity
- type CaseContentConfigParam
- type CaseContentConfigParamAMLControl
- type CaseContentConfigParamChecklist
- type CaseContentConfigParamChecklistItems
- type CaseContentConfigParamFinancial
- type CaseContentConfigParamIdentity
- type CaseContentConfigParamReporting
- type CaseContentConfigParamVerifications
- type CaseContentConfigReporting
- type CaseContentConfigVerifications
- type CaseDetail
- type CaseDetailPendingResolution
- type CaseDetailPendingResolutionResolution
- type CaseDetailPriority
- type CaseDetailResolution
- type CaseDetailSource
- type CaseDetailStatus
- type CaseDuplicateCaseDuplicate
- type CaseDuplicateCaseDuplicatePage
- type CaseDuplicateCaseDuplicateQueryRequest
- type CaseDuplicateCaseFraudSourceContextRequest
- type CaseDuplicateCaseLinkCreateRequest
- type CaseDuplicateCaseSubjectInputRequest
- type CaseDuplicateEntityTypeEnum
- type CaseDuplicatePriorityEnum
- type CaseDuplicateStatusEnum
- type CaseDuplicateTypeEnum
- type CaseEvent
- type CaseEventEventType
- type CaseEventNewStatus
- type CaseEventPreviousStatus
- type CaseLink
- type CaseLinkLinkedEntityType
- type CaseListItem
- type CaseListItemPendingResolution
- type CaseListItemPendingResolutionResolution
- type CaseListItemPriority
- type CaseListItemResolution
- type CaseListItemSource
- type CaseListItemStatus
- type CaseNote
- type CaseNoteAttachments
- type CasePublicationAssignmentMethodEnum
- type CasePublicationCaseBlueprint
- type CasePublicationPolicyDraft
- type CasePublicationPolicyDraftPreconditionRequest
- type CasePublicationPolicyDraftResponse
- type CasePublicationPolicyDraftWriteRequest
- type CasePublicationPolicyRevision
- type CaseReviewTeam
- type CaseReviewTeamCreate
- type CaseReviewTeamMember
- type CaseReviewTeamMemberAvailability
- type CaseReviewTeamMemberParam
- type CaseReviewTeamUpdate
- type CaseRoutingCondition
- type CaseRoutingConditionField
- type CaseRoutingConditionOperator
- type CaseRoutingConditionParam
- type CaseRoutingPreview
- type CaseRoutingPreviewCandidates
- type CaseRoutingPreviewMatchedRules
- type CaseRoutingPreviewRequest
- type CaseRoutingPreviewRequestPriority
- type CaseRoutingPreviewRequestSource
- type CaseRoutingRule
- type CaseRoutingRuleCreate
- type CaseRoutingRuleUpdate
- type CaseSubject
- type CaseSubjectType
- type CaseTeamSummary
- type CasesAssignParams
- type CasesBlueprintsCreateParams
- type CasesBlueprintsCreateParamsAssignmentMethod
- type CasesBlueprintsInstallPresetsParams
- type CasesBlueprintsListHistoryParams
- type CasesBlueprintsListParams
- type CasesBlueprintsListPresetsResponse
- type CasesBlueprintsListPresetsResponseResults
- type CasesBlueprintsListPresetsResponseResultsPresetKey
- type CasesBlueprintsService
- func (r *CasesBlueprintsService) Create(ctx context.Context, params CasesBlueprintsCreateParams, ...) (*CaseBlueprintDetail, error)
- func (r *CasesBlueprintsService) Delete(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) error
- func (r *CasesBlueprintsService) DiscardDraft(ctx context.Context, blueprintUUID string, ...) error
- func (r *CasesBlueprintsService) InstallPresets(ctx context.Context, params CasesBlueprintsInstallPresetsParams, ...) (*CaseBlueprintPresetInstallResult, error)
- func (r *CasesBlueprintsService) List(ctx context.Context, params CasesBlueprintsListParams, ...) (*Page[CaseBlueprintListItem], error)
- func (r *CasesBlueprintsService) ListAutoPaging(ctx context.Context, params CasesBlueprintsListParams, ...) *PageIterator[CaseBlueprintListItem]
- func (r *CasesBlueprintsService) ListHistory(ctx context.Context, blueprintUUID string, ...) (*Page[CasePublicationPolicyRevision], error)
- func (r *CasesBlueprintsService) ListHistoryAutoPaging(ctx context.Context, blueprintUUID string, ...) *PageIterator[CasePublicationPolicyRevision]
- func (r *CasesBlueprintsService) ListPresets(ctx context.Context, opts ...option.RequestOption) (*CasesBlueprintsListPresetsResponse, error)
- func (r *CasesBlueprintsService) Publish(ctx context.Context, blueprintUUID string, ...) (*CasePublicationCaseBlueprint, error)
- func (r *CasesBlueprintsService) Retrieve(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) (*CaseBlueprintDetail, error)
- func (r *CasesBlueprintsService) RetrieveDraft(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) (*CasePublicationPolicyDraftResponse, error)
- func (r *CasesBlueprintsService) SaveDraft(ctx context.Context, blueprintUUID string, ...) (*CasePublicationPolicyDraft, error)
- func (r *CasesBlueprintsService) Update(ctx context.Context, blueprintUUID string, params CasesBlueprintsUpdateParams, ...) (*CaseBlueprintDetail, error)
- type CasesBlueprintsUpdateParams
- type CasesBlueprintsUpdateParamsAssignmentMethod
- type CasesBulkAssignParams
- type CasesBulkUpdateStatusParams
- type CasesBulkUpdateStatusParamsResolution
- type CasesBulkUpdateStatusParamsStatus
- type CasesChecklistService
- type CasesChecklistToggleItemParams
- type CasesCreateParams
- type CasesCreateParamsPriority
- type CasesCreateParamsSubject
- type CasesCreateParamsSubjectType
- type CasesLinksCreateParams
- type CasesLinksCreateParamsEntityType
- type CasesLinksService
- func (r *CasesLinksService) Create(ctx context.Context, caseUUID string, params CasesLinksCreateParams, ...) (*CaseLink, error)
- func (r *CasesLinksService) Delete(ctx context.Context, caseUUID string, linkUUID string, ...) error
- func (r *CasesLinksService) List(ctx context.Context, caseUUID string, opts ...option.RequestOption) ([]CaseLink, error)
- type CasesListActionReceiptsParams
- type CasesListEventsParams
- type CasesListParams
- type CasesListParamsOrdering
- type CasesListReviewersResponse
- type CasesListReviewersResponseResults
- type CasesNotesCreateAttachmentUploadParams
- type CasesNotesCreateAttachmentUploadResponse
- type CasesNotesListParams
- type CasesNotesRetrieveAttachmentURLParams
- type CasesNotesRetrieveAttachmentURLResponse
- type CasesNotesService
- func (r *CasesNotesService) Create(ctx context.Context, caseUUID string, ...) (*CaseCollaborationCaseNote, error)
- func (r *CasesNotesService) CreateAttachmentUpload(ctx context.Context, caseUUID string, ...) (*CasesNotesCreateAttachmentUploadResponse, error)
- func (r *CasesNotesService) Delete(ctx context.Context, caseUUID string, noteUUID string, ...) error
- func (r *CasesNotesService) List(ctx context.Context, caseUUID string, params CasesNotesListParams, ...) (*Page[CaseCollaborationCaseNote], error)
- func (r *CasesNotesService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesNotesListParams, ...) *PageIterator[CaseCollaborationCaseNote]
- func (r *CasesNotesService) RetrieveAttachmentURL(ctx context.Context, caseUUID string, ...) (*CasesNotesRetrieveAttachmentURLResponse, error)
- func (r *CasesNotesService) Update(ctx context.Context, caseUUID string, noteUUID string, ...) (*CaseCollaborationCaseNote, error)
- type CasesPrintResponse
- type CasesRegulatoryReportsCreateParams
- type CasesRegulatoryReportsCreateParamsNarrative
- type CasesRegulatoryReportsCreateParamsReportType
- type CasesRegulatoryReportsCreateParamsSubmissionCode
- type CasesRegulatoryReportsListParams
- type CasesRegulatoryReportsService
- func (r *CasesRegulatoryReportsService) Create(ctx context.Context, caseUUID string, ...) (*RegulatoryReportDetail, error)
- func (r *CasesRegulatoryReportsService) List(ctx context.Context, caseUUID string, params CasesRegulatoryReportsListParams, ...) (*Page[RegulatoryReportDetail], error)
- func (r *CasesRegulatoryReportsService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesRegulatoryReportsListParams, ...) *PageIterator[RegulatoryReportDetail]
- type CasesRejectResolutionParams
- type CasesRequestsListParams
- type CasesRequestsRemindResponse
- type CasesRequestsRemindResponseDeliveryStatus
- type CasesRequestsService
- func (r *CasesRequestsService) Cancel(ctx context.Context, caseUUID string, requestUUID string, ...) (*CustomerMessagingCaseRequest, error)
- func (r *CasesRequestsService) Create(ctx context.Context, caseUUID string, ...) (*CustomerMessagingCaseRequest, error)
- func (r *CasesRequestsService) List(ctx context.Context, caseUUID string, params CasesRequestsListParams, ...) (*Page[CustomerMessagingCaseRequest], error)
- func (r *CasesRequestsService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesRequestsListParams, ...) *PageIterator[CustomerMessagingCaseRequest]
- func (r *CasesRequestsService) Preview(ctx context.Context, caseUUID string, ...) (*CustomerMessagingCaseRequestPreviewResponse, error)
- func (r *CasesRequestsService) Remind(ctx context.Context, caseUUID string, requestUUID string, ...) (*CasesRequestsRemindResponse, error)
- func (r *CasesRequestsService) RetrieveAttachment(ctx context.Context, caseUUID string, requestUUID string, ...) (*http.Response, error)
- func (r *CasesRequestsService) RetrieveOptions(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CustomerMessagingCaseRequestOptions, error)
- type CasesResolveParams
- type CasesResolveParamsResolution
- type CasesRetrieveStatisticsParams
- type CasesRetrieveStatisticsParamsPriority
- type CasesRetrieveStatisticsParamsSource
- type CasesRetrieveStatisticsParamsStatus
- type CasesRetrieveStatisticsResponse
- type CasesRetrieveStatisticsResponseQueue
- type CasesRetrieveStatisticsResponseSeries
- type CasesRetrieveStatisticsResponseTables
- type CasesRetrieveStatisticsResponseTablesBlueprint
- type CasesRetrieveStatisticsResponseTablesOfficer
- type CasesRetrieveStatisticsResponseTablesSource
- type CasesRetrieveStatisticsResponseTablesStatus
- type CasesRetrieveStatisticsResponseTotals
- type CasesRoutingRulesListHistoryParams
- type CasesRoutingRulesListParams
- type CasesRoutingRulesService
- func (r *CasesRoutingRulesService) Create(ctx context.Context, params CaseRoutingRuleCreate, ...) (*CaseRoutingRule, error)
- func (r *CasesRoutingRulesService) DiscardDraft(ctx context.Context, recordUUID string, ...) error
- func (r *CasesRoutingRulesService) List(ctx context.Context, params CasesRoutingRulesListParams, ...) (*Page[CaseRoutingRule], error)
- func (r *CasesRoutingRulesService) ListAutoPaging(ctx context.Context, params CasesRoutingRulesListParams, ...) *PageIterator[CaseRoutingRule]
- func (r *CasesRoutingRulesService) ListHistory(ctx context.Context, recordUUID string, ...) (*Page[RoutingPublicationPolicyRevision], error)
- func (r *CasesRoutingRulesService) ListHistoryAutoPaging(ctx context.Context, recordUUID string, ...) *PageIterator[RoutingPublicationPolicyRevision]
- func (r *CasesRoutingRulesService) Preview(ctx context.Context, params CaseRoutingPreviewRequest, ...) (*CaseRoutingPreview, error)
- func (r *CasesRoutingRulesService) Publish(ctx context.Context, recordUUID string, ...) (*RoutingPublicationCaseRoutingRule, error)
- func (r *CasesRoutingRulesService) Retrieve(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*CaseRoutingRule, error)
- func (r *CasesRoutingRulesService) RetrieveDraft(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*RoutingPublicationPolicyDraftResponse, error)
- func (r *CasesRoutingRulesService) SaveDraft(ctx context.Context, recordUUID string, ...) (*RoutingPublicationPolicyDraft, error)
- func (r *CasesRoutingRulesService) Update(ctx context.Context, recordUUID string, params CaseRoutingRuleUpdate, ...) (*CaseRoutingRule, error)
- type CasesService
- func (r *CasesService) ApplyEntityAction(ctx context.Context, caseUUID string, params CaseActionCaseEntityActionRequest, ...) (*CaseActionCaseEntityActionResult, error)
- func (r *CasesService) ApproveResolution(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) Assign(ctx context.Context, caseUUID string, params CasesAssignParams, ...) (*CaseDetail, error)
- func (r *CasesService) BulkAssign(ctx context.Context, params CasesBulkAssignParams, ...) (*CaseBulkUpdateResult, error)
- func (r *CasesService) BulkUpdateStatus(ctx context.Context, params CasesBulkUpdateStatusParams, ...) (*CaseBulkUpdateResult, error)
- func (r *CasesService) Create(ctx context.Context, params CasesCreateParams, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) Delete(ctx context.Context, caseUUID string, opts ...option.RequestOption) error
- func (r *CasesService) Escalate(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) FindDuplicates(ctx context.Context, params CaseDuplicateCaseDuplicateQueryRequest, ...) (*CaseDuplicateCaseDuplicatePage, error)
- func (r *CasesService) List(ctx context.Context, params CasesListParams, opts ...option.RequestOption) (*Page[CaseListItem], error)
- func (r *CasesService) ListAMLHits(ctx context.Context, caseUUID string, opts ...option.RequestOption) ([]AMLScreening, error)
- func (r *CasesService) ListActionReceipts(ctx context.Context, caseUUID string, params CasesListActionReceiptsParams, ...) (*CaseActionCaseActionReceiptPage, error)
- func (r *CasesService) ListAutoPaging(ctx context.Context, params CasesListParams, opts ...option.RequestOption) *PageIterator[CaseListItem]
- func (r *CasesService) ListEvents(ctx context.Context, caseUUID string, params CasesListEventsParams, ...) (*Page[CaseEvent], error)
- func (r *CasesService) ListEventsAutoPaging(ctx context.Context, caseUUID string, params CasesListEventsParams, ...) *PageIterator[CaseEvent]
- func (r *CasesService) ListReviewers(ctx context.Context, opts ...option.RequestOption) (*CasesListReviewersResponse, error)
- func (r *CasesService) Print(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CasesPrintResponse, error)
- func (r *CasesService) RejectResolution(ctx context.Context, caseUUID string, params CasesRejectResolutionParams, ...) (*CaseDetail, error)
- func (r *CasesService) Reopen(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) RequestInfo(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) Resolve(ctx context.Context, caseUUID string, params CasesResolveParams, ...) (*CaseDetail, error)
- func (r *CasesService) Retrieve(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
- func (r *CasesService) RetrieveStatistics(ctx context.Context, params CasesRetrieveStatisticsParams, ...) (*CasesRetrieveStatisticsResponse, error)
- func (r *CasesService) RetryActionReceipt(ctx context.Context, caseUUID string, receiptUUID string, ...) (*CaseActionCaseActionReceipt, error)
- func (r *CasesService) Transfer(ctx context.Context, caseUUID string, params CasesTransferParams, ...) (*CaseDetail, error)
- func (r *CasesService) Update(ctx context.Context, caseUUID string, params CasesUpdateParams, ...) (*CaseDetail, error)
- type CasesTeamsListParams
- type CasesTeamsService
- func (r *CasesTeamsService) Create(ctx context.Context, params CaseReviewTeamCreate, opts ...option.RequestOption) (*CaseReviewTeam, error)
- func (r *CasesTeamsService) List(ctx context.Context, params CasesTeamsListParams, opts ...option.RequestOption) (*Page[CaseReviewTeam], error)
- func (r *CasesTeamsService) ListAutoPaging(ctx context.Context, params CasesTeamsListParams, opts ...option.RequestOption) *PageIterator[CaseReviewTeam]
- func (r *CasesTeamsService) Retrieve(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*CaseReviewTeam, error)
- func (r *CasesTeamsService) Update(ctx context.Context, recordUUID string, params CaseReviewTeamUpdate, ...) (*CaseReviewTeam, error)
- type CasesTransferParams
- type CasesUpdateParams
- type CasesUpdateParamsPriority
- type Client
- type ComplianceList
- type ComplianceListEntry
- type ComplianceListEntryMetadata
- type ComplianceListEntryMetadataFaceImageSource
- type ComplianceListEntryMetadataFingerprintTier
- type ComplianceListEntryMetadataReferenceType
- type ComplianceListEntryReferenceSessionType
- type ComplianceListEntryType
- type ComplianceListListType
- type ConfigurationError
- type ConflictError
- type CustomerMessagingCaseRequest
- type CustomerMessagingCaseRequestConfirmRequest
- type CustomerMessagingCaseRequestContact
- type CustomerMessagingCaseRequestOptions
- type CustomerMessagingCaseRequestPreviewRequest
- type CustomerMessagingCaseRequestPreviewResponse
- type CustomerMessagingLanguageEnum
- type CustomerMessagingLanguagesEnum
- type CustomerMessagingPurposeEnum
- type CustomerMessagingPurposesEnum
- type CustomizationService
- type CustomizationUpdateParams
- type DatabaseValidationService
- type DatabaseValidationValidateParams
- type DatabaseValidationValidateParamsDocumentType
- type DatabaseValidationValidateParamsGender
- type DatabaseValidationValidateParamsNoMatchAction
- type DatabaseValidationValidateParamsPartialMatchAction
- type DatabaseValidationValidateResponse
- type DatabaseValidationValidateResponseDatabaseValidation
- type DatabaseValidationValidateResponseDatabaseValidationErrors
- type DatabaseValidationValidateResponseDatabaseValidationMatchType
- type DatabaseValidationValidateResponseDatabaseValidationStatus
- type DatabaseValidationValidateResponseDatabaseValidationValidationType
- type DatabaseValidationValidateResponseDatabaseValidationWarnings
- type DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIAudkenniWalletVerificationStartRequest
- type DigitalIDWalletAPIBankidCzWalletVerificationStartRequest
- type DigitalIDWalletAPIBankidNoWalletVerificationStartRequest
- type DigitalIDWalletAPIBankidSeWalletVerificationStartRequest
- type DigitalIDWalletAPIBuypassWalletVerificationStartRequest
- type DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIConnectidWalletVerificationStartRequest
- type DigitalIDWalletAPICountry520enum
- type DigitalIDWalletAPICountryAfcEnum
- type DigitalIDWalletAPICountryE2dEnum
- type DigitalIDWalletAPICountryEe9enum
- type DigitalIDWalletAPIDeviceEnum
- type DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIDiiaWalletVerificationStartRequest
- type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest
- type DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIEudiWalletVerificationStartRequest
- type DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest
- type DigitalIDWalletAPIFrejaidWalletVerificationStartRequest
- type DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIFtnWalletVerificationStartRequest
- type DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIGovbrWalletVerificationStartRequest
- type DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest
- type DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest
- type DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIIdinWalletVerificationStartRequest
- type DigitalIDWalletAPIInteractionEnum
- type DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIItsmeWalletVerificationStartRequest
- type DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIMitidWalletVerificationStartRequest
- type DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIMobileIDWalletVerificationStartRequest
- type DigitalIDWalletAPIMojeidWalletVerificationStartRequest
- type DigitalIDWalletAPIOneidWalletVerificationStartRequest
- type DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest
- type DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum
- type DigitalIDWalletAPISmartIDWalletVerificationStartRequest
- type DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum
- type DigitalIDWalletAPIUaePassWalletVerificationStartRequest
- type DigitalIDWalletAPIVippsWalletVerificationStartRequest
- type DigitalIDWalletAPIWallet
- type DigitalIDWalletAPIWalletCatalogEntry
- type DigitalIDWalletAPIWalletCatalogResponse
- type DigitalIDWalletAPIWalletIdentity
- type DigitalIDWalletAPIWalletNextAction
- type DigitalIDWalletAPIWalletNextActionTypeEnum
- type DigitalIDWalletAPIWalletVerificationResponse
- type DigitalIDWalletAPIWalletVerificationResult
- type DigitalIDWalletAPIWalletVerificationResultOutcomeEnum
- type DocumentAiAnalyzeParams
- type DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction
- type DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction
- type DocumentAiAnalyzeParamsDocumentAiNameMismatchAction
- type DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction
- type DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction
- type DocumentAiAnalyzeResponse
- type DocumentAiAnalyzeResponseDocumentAi
- type DocumentAiAnalyzeResponseDocumentAiFields
- type DocumentAiAnalyzeResponseDocumentAiFieldsType
- type DocumentAiAnalyzeResponseDocumentAiStatus
- type DocumentAiAnalyzeResponseDocumentAiWarnings
- type DocumentAiAnalyzeResponseDocumentAiWarningsFeature
- type DocumentAiAnalyzeResponseDocumentAiWarningsLogType
- type DocumentAiAnalyzeResponseDocumentAiWarningsRisk
- type DocumentAiDetectedCode
- type DocumentAiService
- type EmailCheckCodeParams
- type EmailCheckCodeParamsBreachedEmailAction
- type EmailCheckCodeParamsDisposableEmailAction
- type EmailCheckCodeParamsDuplicatedEmailAction
- type EmailCheckCodeParamsEmailNoSocialPresenceAction
- type EmailIntelligence
- type EmailMatchItem
- type EmailRiskRequest
- type EmailRiskResponse
- type EmailRiskResponseEmail
- type EmailRiskResponseEmailBreaches
- type EmailRiskResponseEmailStatus
- type EmailRiskResponseStatus
- type EmailSendCodeParams
- type EmailSendCodeParamsOptions
- type EmailSendCodeParamsOptionsLocale
- type EmailSendCodeParamsSignals
- type EmailSendCodeParamsSignalsDevicePlatform
- type EmailService
- func (r *EmailService) AssessRisk(ctx context.Context, params EmailRiskRequest, opts ...option.RequestOption) (*EmailRiskResponse, error)
- func (r *EmailService) CheckCode(ctx context.Context, params EmailCheckCodeParams, opts ...option.RequestOption) (*EmailVerificationCheckResponse, error)
- func (r *EmailService) SendCode(ctx context.Context, params EmailSendCodeParams, opts ...option.RequestOption) (*EmailVerificationSendResponse, error)
- type EmailSocialFootprint
- type EmailSocialFootprintWhatsappProfileCompleteness
- type EmailVerificationCheckResponse
- type EmailVerificationCheckResponseEmail
- type EmailVerificationCheckResponseEmailBreaches
- type EmailVerificationCheckResponseEmailLifecycle
- type EmailVerificationCheckResponseEmailMatches
- type EmailVerificationCheckResponseEmailStatus
- type EmailVerificationCheckResponseEmailWarnings
- type EmailVerificationCheckResponseEmailWarningsLogType
- type EmailVerificationCheckResponseStatus
- type EmailVerificationSendResponse
- type EmailVerificationSendResponseReason
- type EmailVerificationSendResponseStatus
- type EntityNetworkMembership
- type EntityNetworkMembershipList
- type EntityNetworkMembershipSignalTypes
- type Error
- type FaceMatchCompareParams
- type FaceMatchCompareResponse
- type FaceMatchCompareResponseFaceMatch
- type FaceMatchCompareResponseFaceMatchRefImage
- type FaceMatchCompareResponseFaceMatchRefImageEntities
- type FaceMatchCompareResponseFaceMatchStatus
- type FaceMatchCompareResponseFaceMatchUserImage
- type FaceMatchCompareResponseFaceMatchUserImageEntities
- type FaceMatchCompareResponseFaceMatchWarnings
- type FaceMatchCompareResponseFaceMatchWarningsFeature
- type FaceMatchCompareResponseFaceMatchWarningsLogType
- type FaceMatchCompareResponseFaceMatchWarningsRisk
- type FaceMatchService
- type FaceSearchSearchParams
- type FaceSearchSearchParamsSearchType
- type FaceSearchSearchResponse
- type FaceSearchSearchResponseFaceSearch
- type FaceSearchSearchResponseFaceSearchMatches
- type FaceSearchSearchResponseFaceSearchMatchesSource
- type FaceSearchSearchResponseFaceSearchMatchesUserDetails
- type FaceSearchSearchResponseFaceSearchStatus
- type FaceSearchSearchResponseFaceSearchUserImage
- type FaceSearchSearchResponseFaceSearchUserImageEntities
- type FaceSearchSearchResponseFaceSearchWarnings
- type FaceSearchSearchResponseFaceSearchWarningsFeature
- type FaceSearchSearchResponseFaceSearchWarningsLogType
- type FaceSearchSearchResponseFaceSearchWarningsRisk
- type FaceSearchService
- type FeatureStatusOverride
- type FeatureStatusOverrideCancelReason
- type FeatureStatusOverrideNewStatus
- type FeatureStatusOverridePreviousStatus
- type FeatureStatusOverrideRequestedBy
- type FeatureStatusOverrideRequestedByType
- type FeatureStatusOverrideState
- type File
- type FraudAvailabilityEnum
- type FraudBandEnum
- type FraudCheckAttributesRequest
- type FraudCheckContextRequest
- type FraudCheckIdentifierRequest
- type FraudCheckIdentityRelationship
- type FraudCheckInput
- type FraudCheckModuleReport
- type FraudCheckModuleSelectionRequest
- type FraudCheckPlan
- type FraudCheckPlannedModule
- type FraudCheckRequestRequest
- type FraudCheckResponse
- type FraudCheckRisk
- type FraudCheckSubjectRequest
- type FraudChecksService
- func (r *FraudChecksService) Create(ctx context.Context, params FraudCheckRequestRequest, ...) (*FraudCheckResponse, error)
- func (r *FraudChecksService) Plan(ctx context.Context, params FraudCheckRequestRequest, ...) (*FraudCheckPlan, error)
- func (r *FraudChecksService) Retrieve(ctx context.Context, checkID string, opts ...option.RequestOption) (*FraudCheckResponse, error)
- type FraudDimensionEnum
- type FraudExcludeEnum
- type FraudNextActionEnum
- type FraudProcessingStatusEnum
- type FraudRecommendationEnum
- type FraudResultEnum
- type FraudStatusEnum
- type FraudTypeEnum
- type IDVerificationService
- type IDVerificationVerifyParams
- type IDVerificationVerifyParamsCriticalFieldOcclusionAction
- type IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction
- type IDVerificationVerifyParamsExpirationDateNotDetectedAction
- type IDVerificationVerifyParamsInconsistentDataAction
- type IDVerificationVerifyParamsInvalidMRZAction
- type IDVerificationVerifyParamsPreferredCharacters
- type IDVerificationVerifyResponse
- type IDVerificationVerifyResponseIDVerification
- type IDVerificationVerifyResponseIDVerificationBackImageQualityScore
- type IDVerificationVerifyResponseIDVerificationBarcodes
- type IDVerificationVerifyResponseIDVerificationFrontImageQualityScore
- type IDVerificationVerifyResponseIDVerificationMRZ
- type IDVerificationVerifyResponseIDVerificationParsedAddress
- type IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation
- type IDVerificationVerifyResponseIDVerificationStatus
- type IDVerificationVerifyResponseIDVerificationWarnings
- type IDVerificationVerifyResponseIDVerificationWarningsFeature
- type IDVerificationVerifyResponseIDVerificationWarningsLogType
- type IDWalletsService
- func (r *IDWalletsService) CancelVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) List(ctx context.Context, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletCatalogResponse, error)
- func (r *IDWalletsService) PollVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) RetrieveVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartAudkenni(ctx context.Context, params IDWalletsStartAudkenniParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartBankidCz(ctx context.Context, params IDWalletsStartBankidCzParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartBankidNo(ctx context.Context, params IDWalletsStartBankidNoParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartBankidSe(ctx context.Context, params IDWalletsStartBankidSeParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartBuypass(ctx context.Context, params IDWalletsStartBuypassParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartConnectid(ctx context.Context, params IDWalletsStartConnectidParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartDiia(ctx context.Context, params IDWalletsStartDiiaParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartEparakstsMobile(ctx context.Context, params IDWalletsStartEparakstsMobileParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartEudi(ctx context.Context, params IDWalletsStartEudiParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartFranceconnect(ctx context.Context, params IDWalletsStartFranceconnectParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartFrejaid(ctx context.Context, params IDWalletsStartFrejaidParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartFtn(ctx context.Context, params IDWalletsStartFtnParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartGovbr(ctx context.Context, params IDWalletsStartGovbrParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartGovukWallet(ctx context.Context, params IDWalletsStartGovukWalletParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartIdcardEe(ctx context.Context, params IDWalletsStartIdcardEeParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartIdin(ctx context.Context, params IDWalletsStartIdinParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartItsme(ctx context.Context, params IDWalletsStartItsmeParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartMitid(ctx context.Context, params IDWalletsStartMitidParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartMobileID(ctx context.Context, params IDWalletsStartMobileIDParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartMojeid(ctx context.Context, params IDWalletsStartMojeidParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartOneid(ctx context.Context, params IDWalletsStartOneidParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartPersonalausweis(ctx context.Context, params IDWalletsStartPersonalausweisParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartSmartID(ctx context.Context, params IDWalletsStartSmartIDParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartUaePass(ctx context.Context, params IDWalletsStartUaePassParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- func (r *IDWalletsService) StartVipps(ctx context.Context, params IDWalletsStartVippsParams, ...) (*DigitalIDWalletAPIWalletVerificationResponse, error)
- type IDWalletsStartAudkenniParams
- type IDWalletsStartBankidCzParams
- type IDWalletsStartBankidNoParams
- type IDWalletsStartBankidSeParams
- type IDWalletsStartBuypassParams
- type IDWalletsStartConnectidParams
- type IDWalletsStartDiiaParams
- type IDWalletsStartEparakstsMobileParams
- type IDWalletsStartEudiParams
- type IDWalletsStartFranceconnectParams
- type IDWalletsStartFrejaidParams
- type IDWalletsStartFtnParams
- type IDWalletsStartGovbrParams
- type IDWalletsStartGovukWalletParams
- type IDWalletsStartIdcardEeParams
- type IDWalletsStartIdinParams
- type IDWalletsStartItsmeParams
- type IDWalletsStartMitidParams
- type IDWalletsStartMobileIDParams
- type IDWalletsStartMojeidParams
- type IDWalletsStartOneidParams
- type IDWalletsStartPersonalausweisParams
- type IDWalletsStartSmartIDParams
- type IDWalletsStartUaePassParams
- type IDWalletsStartVippsParams
- type IPRiskRequest
- type IPRiskResponse
- type IPRiskResponseIP
- type IPRiskResponseIPStatus
- type IPRiskResponseStatus
- type IPService
- type ImportJobSummary
- type ImportJobSummaryFaceTemplates
- type ImportJobSummaryKind
- type ImportJobSummaryProgress
- type ImportJobSummarySource
- type ImportJobSummaryStartedBy
- type ImportJobSummaryState
- type ImportProvider
- type ImportProviderCredentialFields
- type ImportProviderKey
- type ImportProviderMode
- type ImportProviderStatusMapping
- type InternalServerError
- type InvestigatorAcceptRequest
- type InvestigatorBatchAcceptRequest
- type InvestigatorBatchAcceptResponse
- type InvestigatorBatchAcceptResponseResults
- type InvestigatorBatchAcceptResponseResultsReason
- type InvestigatorBatchAcceptResponseResultsResult
- type InvestigatorBlock
- type InvestigatorBlockConfidence
- type InvestigatorBlockDecidedBy
- type InvestigatorBlockQueue
- type InvestigatorBlockRecommendation
- type InvestigatorBlockStage
- type InvestigatorBlockStatus
- type InvestigatorDecision
- type InvestigatorDecisionAction
- type InvestigatorDecisionDecidedBy
- type InvestigatorDecisionOriginalOutcome
- type InvestigatorDecisionOutcome
- type InvestigatorDecisionOverrideCategory
- type InvestigatorDecisionOverrides
- type InvestigatorExportActivityParams
- type InvestigatorExportActivityParamsGroup
- type InvestigatorExportActivityParamsScope
- type InvestigatorListActivityParams
- type InvestigatorListActivityParamsGroup
- type InvestigatorListActivityParamsScope
- type InvestigatorListGuardrailsResponse
- type InvestigatorListGuardrailsResponseResults
- type InvestigatorListGuardrailsResponseResultsKey
- type InvestigatorListQueueParams
- type InvestigatorListQueueParamsConfidence
- type InvestigatorListQueueParamsQueue
- type InvestigatorListQueueParamsRecommendation
- type InvestigatorListQueueParamsScope
- type InvestigatorOverrideRequest
- type InvestigatorOverrideRequestAction
- type InvestigatorOverrideRequestCategory
- type InvestigatorQueueRow
- type InvestigatorQueueRowConfidence
- type InvestigatorQueueRowKind
- type InvestigatorQueueRowQueue
- type InvestigatorQueueRowRecommendation
- type InvestigatorQueueRowStage
- type InvestigatorRetrieveDashboardParams
- type InvestigatorRetrieveDashboardParamsScope
- type InvestigatorRetrieveDashboardResponse
- type InvestigatorRetrievePerformanceParams
- type InvestigatorRetrievePerformanceParamsPeriod
- type InvestigatorRetrievePerformanceParamsScope
- type InvestigatorRetrievePerformanceResponse
- type InvestigatorRetrieveSummaryParams
- type InvestigatorRetrieveSummaryParamsScope
- type InvestigatorRetrieveSummaryResponse
- type InvestigatorRetrieveTransactionResponse
- type InvestigatorRunDetail
- type InvestigatorRunDetailConfidence
- type InvestigatorRunDetailKind
- type InvestigatorRunDetailQueue
- type InvestigatorRunDetailRecommendation
- type InvestigatorRunDetailStage
- type InvestigatorService
- func (r *InvestigatorService) AcceptRun(ctx context.Context, runID string, params InvestigatorAcceptRequest, ...) (*InvestigatorDecision, error)
- func (r *InvestigatorService) BatchAcceptRuns(ctx context.Context, params InvestigatorBatchAcceptRequest, ...) (*InvestigatorBatchAcceptResponse, error)
- func (r *InvestigatorService) ExportActivity(ctx context.Context, params InvestigatorExportActivityParams, ...) (*http.Response, error)
- func (r *InvestigatorService) ListActivity(ctx context.Context, params InvestigatorListActivityParams, ...) (*Page[map[string]any], error)
- func (r *InvestigatorService) ListActivityAutoPaging(ctx context.Context, params InvestigatorListActivityParams, ...) *PageIterator[map[string]any]
- func (r *InvestigatorService) ListGuardrails(ctx context.Context, opts ...option.RequestOption) (*InvestigatorListGuardrailsResponse, error)
- func (r *InvestigatorService) ListQueue(ctx context.Context, params InvestigatorListQueueParams, ...) (*Page[InvestigatorQueueRow], error)
- func (r *InvestigatorService) ListQueueAutoPaging(ctx context.Context, params InvestigatorListQueueParams, ...) *PageIterator[InvestigatorQueueRow]
- func (r *InvestigatorService) OverrideRun(ctx context.Context, runID string, params InvestigatorOverrideRequest, ...) (*InvestigatorDecision, error)
- func (r *InvestigatorService) RetrieveDashboard(ctx context.Context, params InvestigatorRetrieveDashboardParams, ...) (*InvestigatorRetrieveDashboardResponse, error)
- func (r *InvestigatorService) RetrievePerformance(ctx context.Context, params InvestigatorRetrievePerformanceParams, ...) (*InvestigatorRetrievePerformanceResponse, error)
- func (r *InvestigatorService) RetrieveRun(ctx context.Context, runID string, opts ...option.RequestOption) (*InvestigatorRunDetail, error)
- func (r *InvestigatorService) RetrieveSettings(ctx context.Context, opts ...option.RequestOption) (*InvestigatorSettings, error)
- func (r *InvestigatorService) RetrieveSummary(ctx context.Context, params InvestigatorRetrieveSummaryParams, ...) (*InvestigatorRetrieveSummaryResponse, error)
- func (r *InvestigatorService) RetrieveTransaction(ctx context.Context, transactionID string, opts ...option.RequestOption) (*InvestigatorRetrieveTransactionResponse, error)
- func (r *InvestigatorService) UpdateSettings(ctx context.Context, params InvestigatorSettingsParam, ...) (*InvestigatorSettings, error)
- type InvestigatorSettings
- type InvestigatorSettingsParam
- type InvestigatorSettingsSpendLimit
- type InvestigatorSettingsStage
- type KYBKeyPeopleParty
- type KYBKeyPeoplePartyEntityType
- type KYBKeyPeoplePartyKYBSubSessionStatus
- type KYBKeyPeoplePartyKYCSessionStatus
- type KYBKeyPeoplePartyRoles
- type KYBKeyPeoplePartyRolesRole
- type KYBKeyPeoplePartySource
- type KYBKeyPeoplePartyVerificationWorkflowFeatures
- type KYBKeyPeoplePartyVerificationWorkflowType
- type KYBListShareholdersResponse
- type KYBListShareholdersResponseKYBRegistry
- type KYBListShareholdersResponseKYBRegistryBeneficialOwners
- type KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType
- type KYBListShareholdersResponseKYBRegistryBeneficialOwnersKYCStatus
- type KYBListShareholdersResponseKYBRegistryFetchStatus
- type KYBListShareholdersResponseKYBRegistryOfficers
- type KYBListShareholdersResponseKYBRegistryOfficersKYCStatus
- type KYBListShareholdersResponseKYBRegistryOfficersRole
- type KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus
- type KYBListShareholdersResponseKYBRegistryRegistryStatus
- type KYBListShareholdersResponseKYBRegistryRegistryTierDelivered
- type KYBListShareholdersResponseKYBRegistryStatus
- type KYBListShareholdersResponseKYBRegistryVATValidationSource
- type KYBListShareholdersResponseKYBRegistryVATValidationStatus
- type KYBListShareholdersResponseRegistryTierDelivered
- type KYBListShareholdersResponseRegistryTierRequested
- type KYBListUBOsResponse
- type KYBListUBOsResponseKYBRegistry
- type KYBListUBOsResponseKYBRegistryBeneficialOwners
- type KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType
- type KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus
- type KYBListUBOsResponseKYBRegistryFetchStatus
- type KYBListUBOsResponseKYBRegistryOfficers
- type KYBListUBOsResponseKYBRegistryOfficersKYCStatus
- type KYBListUBOsResponseKYBRegistryOfficersRole
- type KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus
- type KYBListUBOsResponseKYBRegistryRegistryStatus
- type KYBListUBOsResponseKYBRegistryRegistryTierDelivered
- type KYBListUBOsResponseKYBRegistryStatus
- type KYBListUBOsResponseKYBRegistryVATValidationSource
- type KYBListUBOsResponseKYBRegistryVATValidationStatus
- type KYBListUBOsResponseRegistryTierDelivered
- type KYBListUBOsResponseRegistryTierRequested
- type KYBRegistryAddress
- type KYBRegistryCandidateRequest
- type KYBRegistryIndustry
- type KYBRegistryOwnership
- type KYBRegistryOwnershipStatus
- type KYBRegistryOwnershipTierDelivered
- type KYBRegistryOwnershipTierRequested
- type KYBRegistryOwnershipUnavailableReason
- type KYBRegistryOwnershipUnresolved
- type KYBRegistrySearchResults
- type KYBRegistrySearchResultsCompanies
- type KYBRegistrySearchResultsPagination
- type KYBRegistrySearchResultsSearchStatus
- type KYBRegistryShareholding
- type KYBSearchParams
- type KYBSearchParamsSearchType
- type KYBSearchParamsTier
- type KYBSearchResponse
- type KYBSelectResponse
- type KYBSelectResponseKYBRegistry
- type KYBSelectResponseKYBRegistryBeneficialOwners
- type KYBSelectResponseKYBRegistryBeneficialOwnersEntityType
- type KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus
- type KYBSelectResponseKYBRegistryFetchStatus
- type KYBSelectResponseKYBRegistryOfficers
- type KYBSelectResponseKYBRegistryOfficersKYCStatus
- type KYBSelectResponseKYBRegistryOfficersRole
- type KYBSelectResponseKYBRegistryRegistryOwnershipStatus
- type KYBSelectResponseKYBRegistryRegistryStatus
- type KYBSelectResponseKYBRegistryRegistryTierDelivered
- type KYBSelectResponseKYBRegistryStatus
- type KYBSelectResponseKYBRegistryVATValidationSource
- type KYBSelectResponseKYBRegistryVATValidationStatus
- type KYBSelectResponseRegistryTierDelivered
- type KYBSelectResponseRegistryTierRequested
- type KYBService
- func (r *KYBService) ListShareholders(ctx context.Context, params KYBRegistryCandidateRequest, ...) (*KYBListShareholdersResponse, error)
- func (r *KYBService) ListUBOs(ctx context.Context, params KYBRegistryCandidateRequest, ...) (*KYBListUBOsResponse, error)
- func (r *KYBService) Search(ctx context.Context, params KYBSearchParams, opts ...option.RequestOption) (*KYBSearchResponse, error)
- func (r *KYBService) Select(ctx context.Context, params KYBRegistryCandidateRequest, ...) (*KYBSelectResponse, error)
- type ListsCreateParams
- type ListsCreateParamsEntryType
- type ListsCreateParamsListType
- type ListsEntriesCreateParams
- type ListsEntriesCreateParamsFaceImageSource
- type ListsEntriesCreateParamsMetadata
- type ListsEntriesCreateParamsMetadataReferenceType
- type ListsEntriesListParams
- type ListsEntriesService
- func (r *ListsEntriesService) Create(ctx context.Context, listUUID string, params ListsEntriesCreateParams, ...) (*ComplianceListEntry, error)
- func (r *ListsEntriesService) Delete(ctx context.Context, listUUID string, entryUUID string, ...) error
- func (r *ListsEntriesService) List(ctx context.Context, listUUID string, params ListsEntriesListParams, ...) (*Page[ComplianceListEntry], error)
- func (r *ListsEntriesService) ListAutoPaging(ctx context.Context, listUUID string, params ListsEntriesListParams, ...) *PageIterator[ComplianceListEntry]
- func (r *ListsEntriesService) UploadFace(ctx context.Context, listUUID string, params ListsEntriesUploadFaceParams, ...) (*ComplianceListEntry, error)
- type ListsEntriesUploadFaceParams
- type ListsListParams
- type ListsListParamsEntryType
- type ListsListParamsListType
- type ListsListParamsOrdering
- type ListsService
- func (r *ListsService) Create(ctx context.Context, params ListsCreateParams, opts ...option.RequestOption) (*ComplianceList, error)
- func (r *ListsService) Delete(ctx context.Context, listUUID string, opts ...option.RequestOption) error
- func (r *ListsService) List(ctx context.Context, params ListsListParams, opts ...option.RequestOption) (*Page[ComplianceList], error)
- func (r *ListsService) ListAutoPaging(ctx context.Context, params ListsListParams, opts ...option.RequestOption) *PageIterator[ComplianceList]
- func (r *ListsService) Retrieve(ctx context.Context, listUUID string, opts ...option.RequestOption) (*ComplianceList, error)
- func (r *ListsService) Update(ctx context.Context, listUUID string, params ListsUpdateParams, ...) (*ListsUpdateResponse, error)
- type ListsUpdateParams
- type ListsUpdateResponse
- type LoginRequest
- type LoginResponse
- type MonitoringEvent
- type MonitoringEventCreateRequest
- type MonitoringEventCreateRequestBusiness
- type MonitoringEventCreateRequestDeviceContext
- type MonitoringEventCreateRequestDeviceContextNetworkContext
- type MonitoringEventCreateRequestEventCategory
- type MonitoringEventCreateRequestSession
- type MonitoringEventCreateRequestSubject
- type MonitoringEventCreateRequestTransactionContext
- type MonitoringEventDetail
- type MonitoringEventDetailEventCategory
- type MonitoringEventDetailFieldSources
- type MonitoringEventDetailIPEnrichment
- type MonitoringEventDetailRetentionClass
- type MonitoringEventDetailStatus
- type MonitoringEventDetailSubjectProfile
- type MonitoringEventEventCategory
- type MonitoringEventIngestResult
- type MonitoringEventIngestResultRetentionClass
- type MonitoringEventIngestResultRuleMatches
- type MonitoringEventIngestResultRuleMatchesMode
- type MonitoringEventIngestResultStatus
- type MonitoringEventRetentionClass
- type MonitoringEventRuleRun
- type MonitoringEventRuleRunMode
- type MonitoringEventRuleRunSeverity
- type MonitoringEventStatus
- type MonitoringEventsCreateBatchParams
- type MonitoringEventsCreateBatchResponse
- type MonitoringEventsCreateBatchResponseResults
- type MonitoringEventsCreateBatchResponseResultsOutcome
- type MonitoringEventsCreateBatchResponseResultsRetentionClass
- type MonitoringEventsCreateBatchResponseResultsRuleMatches
- type MonitoringEventsCreateBatchResponseResultsRuleMatchesMode
- type MonitoringEventsCreateBatchResponseResultsStatus
- type MonitoringEventsCreateSDKTokenParams
- type MonitoringEventsCreateSDKTokenParamsAllowedEventCategories
- type MonitoringEventsCreateSDKTokenResponse
- type MonitoringEventsCreateSDKTokenResponseAllowedEventCategories
- type MonitoringEventsListParams
- type MonitoringEventsListParamsEventCategory
- type MonitoringEventsListParamsRetentionClass
- type MonitoringEventsListParamsStatus
- type MonitoringEventsListParamsSubjectEntityType
- type MonitoringEventsRetrieveEnrichmentMetricsParams
- type MonitoringEventsRetrieveEnrichmentMetricsResponse
- type MonitoringEventsRetrieveSubjectTimelineParams
- type MonitoringEventsRetrieveSubjectTimelineParamsEntityType
- type MonitoringEventsRetrieveSubjectTimelineParamsEventCategory
- type MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass
- type MonitoringEventsRetrieveSubjectTimelineParamsStatus
- type MonitoringEventsService
- func (r *MonitoringEventsService) Create(ctx context.Context, params MonitoringEventCreateRequest, ...) (*MonitoringEventIngestResult, error)
- func (r *MonitoringEventsService) CreateBatch(ctx context.Context, params MonitoringEventsCreateBatchParams, ...) (*MonitoringEventsCreateBatchResponse, error)
- func (r *MonitoringEventsService) CreateSDKToken(ctx context.Context, params MonitoringEventsCreateSDKTokenParams, ...) (*MonitoringEventsCreateSDKTokenResponse, error)
- func (r *MonitoringEventsService) Delete(ctx context.Context, eventUUID string, opts ...option.RequestOption) error
- func (r *MonitoringEventsService) List(ctx context.Context, params MonitoringEventsListParams, ...) (*Page[MonitoringEvent], error)
- func (r *MonitoringEventsService) ListAutoPaging(ctx context.Context, params MonitoringEventsListParams, ...) *PageIterator[MonitoringEvent]
- func (r *MonitoringEventsService) Retrieve(ctx context.Context, eventUUID string, opts ...option.RequestOption) (*MonitoringEventDetail, error)
- func (r *MonitoringEventsService) RetrieveEnrichmentMetrics(ctx context.Context, params MonitoringEventsRetrieveEnrichmentMetricsParams, ...) (*MonitoringEventsRetrieveEnrichmentMetricsResponse, error)
- func (r *MonitoringEventsService) RetrieveSubjectTimeline(ctx context.Context, vendorData string, ...) (*Page[MonitoringEvent], error)
- func (r *MonitoringEventsService) RetrieveSubjectTimelineAutoPaging(ctx context.Context, vendorData string, ...) *PageIterator[MonitoringEvent]
- type NetworkDetail
- type NetworkDetailPatternTypes
- type NetworkDetailResponse
- type NetworkDetailResponseCrossOrgUnavailableReason
- type NetworkDetailResponsePatternTypes
- type NetworkDetailResponseSharingMode
- type NetworkDetailResponseSignalTypes
- type NetworkDetailResponseStatus
- type NetworkDetailSignalTypes
- type NetworkDetailStatus
- type NetworkGraph
- type NetworkGraphEdge
- type NetworkGraphEdgeSignalType
- type NetworkGraphEdgeSubjectKind
- type NetworkGraphMetrics
- type NetworkGraphNode
- type NetworkGraphNodeKind
- type NetworkListItem
- type NetworkListItemPatternTypes
- type NetworkListItemSignalTypes
- type NetworkListItemStatus
- type NetworkMap
- type NetworkMapPoints
- type NetworkMember
- type NetworkMemberNodeStatus
- type NetworkMemberProvenance
- type NetworkNodeTag
- type NetworkNodeTagCategory
- type NetworkNodeTagSource
- type NetworkNote
- type NetworkOutcomes
- type NetworkPatternScore
- type NetworkPatternScoreReason
- type NetworkPatternScoreType
- type NetworkRiskDisplay
- type NetworkRiskDisplayBand
- type NetworkSignal
- type NetworkSignalNodeStatus
- type NetworkSignalSignalType
- type NetworkTag
- type NetworkTagRequest
- type NetworkTagSource
- type NetworkTimelineAccount
- type NetworkTimelineAccountNodeType
- type NetworkTimelineAccountOwnership
- type NetworkTimelineAmount
- type NetworkTimelineAttempt
- type NetworkTimelineCaseLinked
- type NetworkTimelineDeclineReason
- type NetworkTimelineDevice
- type NetworkTimelineIP
- type NetworkTimelineLogin
- type NetworkTimelineNoteAdded
- type NetworkTimelineRoute
- type NetworkTimelineRuleHit
- type NetworkTimelineSourceRef
- type NetworkTimelineSourceRefKind
- type NetworkTimelineSourceRefOwnership
- type NetworkTimelineTransaction
- type NetworksDownloadReportParams
- type NetworksListMembersResponse
- type NetworksListParams
- type NetworksListParamsScope
- type NetworksListSignalsResponse
- type NetworksNotesCreateParams
- type NetworksNotesDeleteParams
- type NetworksNotesListParams
- type NetworksNotesService
- func (r *NetworksNotesService) Create(ctx context.Context, networkUUID string, params NetworksNotesCreateParams, ...) (*NetworkNote, error)
- func (r *NetworksNotesService) Delete(ctx context.Context, networkUUID string, noteUUID string, ...) error
- func (r *NetworksNotesService) List(ctx context.Context, networkUUID string, params NetworksNotesListParams, ...) (*Page[NetworkNote], error)
- func (r *NetworksNotesService) ListAutoPaging(ctx context.Context, networkUUID string, params NetworksNotesListParams, ...) *PageIterator[NetworkNote]
- type NetworksRetrieveGraphParams
- type NetworksRetrieveGraphParamsDepth
- type NetworksRetrieveGraphParamsFocusKind
- type NetworksRetrieveTimelineParams
- type NetworksRetrieveTimelineParamsContract
- type NetworksRetrieveTimelineParamsEventType
- type NetworksRetrieveTimelineResponse
- type NetworksRetrieveTimelineResponseResults
- type NetworksService
- func (r *NetworksService) AddTag(ctx context.Context, networkUUID string, params NetworkTagRequest, ...) (*NetworkDetailResponse, error)
- func (r *NetworksService) DownloadReport(ctx context.Context, networkUUID string, params NetworksDownloadReportParams, ...) (*http.Response, error)
- func (r *NetworksService) List(ctx context.Context, params NetworksListParams, opts ...option.RequestOption) (*Page[NetworkListItem], error)
- func (r *NetworksService) ListAutoPaging(ctx context.Context, params NetworksListParams, opts ...option.RequestOption) *PageIterator[NetworkListItem]
- func (r *NetworksService) ListMembers(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworksListMembersResponse, error)
- func (r *NetworksService) ListSignals(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworksListSignalsResponse, error)
- func (r *NetworksService) RemoveTag(ctx context.Context, networkUUID string, params NetworkTagRequest, ...) (*NetworkDetailResponse, error)
- func (r *NetworksService) Retrieve(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworkDetailResponse, error)
- func (r *NetworksService) RetrieveGraph(ctx context.Context, networkUUID string, params NetworksRetrieveGraphParams, ...) (*NetworkGraph, error)
- func (r *NetworksService) RetrieveMap(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworkMap, error)
- func (r *NetworksService) RetrieveTimeline(ctx context.Context, networkUUID string, params NetworksRetrieveTimelineParams, ...) (*NetworksRetrieveTimelineResponse, error)
- type NotFoundError
- type OngoingMonitoringJob
- type OngoingMonitoringJobEstimate
- type OngoingMonitoringJobOutcomes
- type OngoingMonitoringJobStatus
- type OngoingMonitoringToggleRequest
- type Opt
- type Organization
- type OrganizationSummary
- type Page
- type PageIterator
- type PassiveLivenessCheckParams
- type PassiveLivenessCheckResponse
- type PassiveLivenessCheckResponseLiveness
- type PassiveLivenessCheckResponseLivenessMethod
- type PassiveLivenessCheckResponseLivenessStatus
- type PassiveLivenessCheckResponseLivenessUserImage
- type PassiveLivenessCheckResponseLivenessUserImageEntities
- type PassiveLivenessCheckResponseLivenessWarnings
- type PassiveLivenessCheckResponseLivenessWarningsFeature
- type PassiveLivenessCheckResponseLivenessWarningsLogType
- type PassiveLivenessCheckResponseLivenessWarningsRisk
- type PassiveLivenessService
- type PermissionDeniedError
- type PhoneCheckCodeParams
- type PhoneCheckCodeParamsDisposableNumberAction
- type PhoneCheckCodeParamsDuplicatedPhoneNumberAction
- type PhoneCheckCodeParamsPhoneNoSocialPresenceAction
- type PhoneCheckCodeParamsVoipNumberAction
- type PhoneIntelligence
- type PhoneMatchItem
- type PhoneRiskRequest
- type PhoneRiskResponse
- type PhoneRiskResponsePhone
- type PhoneRiskResponsePhoneCarrier
- type PhoneRiskResponsePhoneStatus
- type PhoneRiskResponseStatus
- type PhoneSendCodeParams
- type PhoneSendCodeParamsOptions
- type PhoneSendCodeParamsOptionsPreferredChannel
- type PhoneSendCodeParamsSignals
- type PhoneSendCodeParamsSignalsDevicePlatform
- type PhoneService
- func (r *PhoneService) AssessRisk(ctx context.Context, params PhoneRiskRequest, opts ...option.RequestOption) (*PhoneRiskResponse, error)
- func (r *PhoneService) CheckCode(ctx context.Context, params PhoneCheckCodeParams, opts ...option.RequestOption) (*PhoneVerificationCheckResponse, error)
- func (r *PhoneService) SendCode(ctx context.Context, params PhoneSendCodeParams, opts ...option.RequestOption) (*PhoneVerificationSendResponse, error)
- type PhoneSocialFootprint
- type PhoneSocialFootprintWhatsappProfileCompleteness
- type PhoneVerificationCheckResponse
- type PhoneVerificationCheckResponsePhone
- type PhoneVerificationCheckResponsePhoneCarrier
- type PhoneVerificationCheckResponsePhoneLifecycle
- type PhoneVerificationCheckResponsePhoneMatches
- type PhoneVerificationCheckResponsePhoneStatus
- type PhoneVerificationCheckResponsePhoneWarnings
- type PhoneVerificationCheckResponsePhoneWarningsLogType
- type PhoneVerificationCheckResponseStatus
- type PhoneVerificationSendResponse
- type PhoneVerificationSendResponseStatus
- type PricingService
- type ProofOfAddressService
- type ProofOfAddressVerifyParams
- type ProofOfAddressVerifyParamsPOAAddressMismatchAction
- type ProofOfAddressVerifyParamsPOADocumentAuthenticityAction
- type ProofOfAddressVerifyParamsPOADocumentIssuesAction
- type ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction
- type ProofOfAddressVerifyParamsPOANameMismatchAction
- type ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction
- type ProofOfAddressVerifyResponse
- type ProofOfAddressVerifyResponsePOA
- type ProofOfAddressVerifyResponsePOADocumentType
- type ProofOfAddressVerifyResponsePOAExtraFields
- type ProofOfAddressVerifyResponsePOAPOAParsedAddress
- type ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation
- type ProofOfAddressVerifyResponsePOAStatus
- type ProofOfAddressVerifyResponsePOAWarnings
- type ProofOfAddressVerifyResponsePOAWarningsFeature
- type ProofOfAddressVerifyResponsePOAWarningsLogType
- type QuestionnaireDetail
- type QuestionnaireDetailStatus
- type QuestionnaireListItem
- type QuestionnaireListItemStatus
- type QuestionnairesListParams
- type QuestionnairesService
- func (r *QuestionnairesService) Create(ctx context.Context, params SimpleQuestionnaireRequest, ...) (*QuestionnaireDetail, error)
- func (r *QuestionnairesService) Delete(ctx context.Context, questionnaireUUID string, opts ...option.RequestOption) error
- func (r *QuestionnairesService) List(ctx context.Context, params QuestionnairesListParams, ...) (*Page[QuestionnaireListItem], error)
- func (r *QuestionnairesService) ListAutoPaging(ctx context.Context, params QuestionnairesListParams, ...) *PageIterator[QuestionnaireListItem]
- func (r *QuestionnairesService) Retrieve(ctx context.Context, questionnaireUUID string, opts ...option.RequestOption) (*QuestionnaireDetail, error)
- func (r *QuestionnairesService) Update(ctx context.Context, questionnaireUUID string, ...) (*QuestionnaireDetail, error)
- type RateLimitError
- type RegisterRequest
- type RegisterResponse
- type RegulatoryReportDetail
- type RegulatoryReportDetailNarrative
- type RegulatoryReportDetailReportType
- type RegulatoryReportDetailStatus
- type RegulatoryReportDetailSubmissionCode
- type RegulatoryReportDetailValidationErrors
- type RegulatoryReportsCreateParams
- type RegulatoryReportsCreateParamsNarrative
- type RegulatoryReportsCreateParamsReportType
- type RegulatoryReportsCreateParamsSubmissionCode
- type RegulatoryReportsListParams
- type RegulatoryReportsListParamsReportType
- type RegulatoryReportsListParamsStatus
- type RegulatoryReportsRetrieveDownloadURLParams
- type RegulatoryReportsRetrieveDownloadURLParamsFile
- type RegulatoryReportsRetrieveDownloadURLResponse
- type RegulatoryReportsRetrieveDownloadURLResponseFile
- type RegulatoryReportsService
- func (r *RegulatoryReportsService) Create(ctx context.Context, params RegulatoryReportsCreateParams, ...) (*RegulatoryReportDetail, error)
- func (r *RegulatoryReportsService) Delete(ctx context.Context, reportUUID string, opts ...option.RequestOption) error
- func (r *RegulatoryReportsService) Finalize(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
- func (r *RegulatoryReportsService) List(ctx context.Context, params RegulatoryReportsListParams, ...) (*Page[RegulatoryReportDetail], error)
- func (r *RegulatoryReportsService) ListAutoPaging(ctx context.Context, params RegulatoryReportsListParams, ...) *PageIterator[RegulatoryReportDetail]
- func (r *RegulatoryReportsService) Retrieve(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
- func (r *RegulatoryReportsService) RetrieveDownloadURL(ctx context.Context, reportUUID string, ...) (*RegulatoryReportsRetrieveDownloadURLResponse, error)
- func (r *RegulatoryReportsService) Update(ctx context.Context, reportUUID string, params RegulatoryReportsUpdateParams, ...) (*RegulatoryReportDetail, error)
- func (r *RegulatoryReportsService) Validate(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportsValidateResponse, error)
- type RegulatoryReportsUpdateParams
- type RegulatoryReportsUpdateParamsNarrative
- type RegulatoryReportsUpdateParamsSubmissionCode
- type RegulatoryReportsValidateResponse
- type RegulatoryReportsValidateResponseErrors
- type RegulatoryReportsValidateResponseStatus
- type ReportTemplateDetail
- type ReportTemplateDetailReportType
- type ReportTemplatesCreateParams
- type ReportTemplatesCreateParamsReportType
- type ReportTemplatesListParams
- type ReportTemplatesService
- func (r *ReportTemplatesService) Create(ctx context.Context, params ReportTemplatesCreateParams, ...) (*ReportTemplateDetail, error)
- func (r *ReportTemplatesService) Delete(ctx context.Context, templateUUID string, opts ...option.RequestOption) error
- func (r *ReportTemplatesService) List(ctx context.Context, params ReportTemplatesListParams, ...) (*Page[ReportTemplateDetail], error)
- func (r *ReportTemplatesService) ListAutoPaging(ctx context.Context, params ReportTemplatesListParams, ...) *PageIterator[ReportTemplateDetail]
- func (r *ReportTemplatesService) Retrieve(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*ReportTemplateDetail, error)
- func (r *ReportTemplatesService) Update(ctx context.Context, templateUUID string, params ReportTemplatesUpdateParams, ...) (*ReportTemplateDetail, error)
- type ReportTemplatesUpdateParams
- type ReportTemplatesUpdateParamsReportType
- type ResponseJSON
- type ReviewItem
- type ReviewItemActivityType
- type ReviewItemActorType
- type ReviewItemNewStatus
- type ReviewItemPreviousStatus
- type RiskLifecycleEvent
- type RiskSignals
- type RiskSignalsDevicePlatform
- type RiskWarning
- type RiskWarningLogType
- type RoutingPublicationCaseRoutingRule
- type RoutingPublicationFieldEnum
- type RoutingPublicationOperatorEnum
- type RoutingPublicationPolicyDraft
- type RoutingPublicationPolicyDraftPreconditionRequest
- type RoutingPublicationPolicyDraftResponse
- type RoutingPublicationPolicyDraftWriteRequest
- type RoutingPublicationPolicyRevision
- type RoutingPublicationRoutingCondition
- type SandboxSimulateRequest
- type SandboxSimulateRequestNewStatus
- type SandboxSimulateResponse
- type SandboxSimulateResponsePreviousStatus
- type SandboxSimulateResponseStatus
- type SessionDecision
- type SessionDecisionContactDetails
- type SessionDecisionDatabaseValidations
- type SessionDecisionDatabaseValidationsErrors
- type SessionDecisionDatabaseValidationsMatchType
- type SessionDecisionDatabaseValidationsScreenedData
- type SessionDecisionDatabaseValidationsStatus
- type SessionDecisionDatabaseValidationsValidationType
- type SessionDecisionDatabaseValidationsValidations
- type SessionDecisionDatabaseValidationsValidationsValidation
- type SessionDecisionDatabaseValidationsWarnings
- type SessionDecisionDatabaseValidationsWarningsFeature
- type SessionDecisionDocumentAiDocuments
- type SessionDecisionDocumentAiDocumentsItems
- type SessionDecisionDocumentAiDocumentsItemsFields
- type SessionDecisionDocumentAiDocumentsItemsFieldsType
- type SessionDecisionDocumentAiDocumentsItemsStatus
- type SessionDecisionDocumentAiDocumentsStatus
- type SessionDecisionDocumentVerifications
- type SessionDecisionDocumentVerificationsGroups
- type SessionDecisionDocumentVerificationsItems
- type SessionDecisionDocumentVerificationsItemsDocumentGroup
- type SessionDecisionDocumentVerificationsItemsDocumentMetadata
- type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation
- type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions
- type SessionDecisionDocumentVerificationsItemsDocumentType
- type SessionDecisionDocumentVerificationsItemsStatus
- type SessionDecisionEmailVerifications
- type SessionDecisionEmailVerificationsBreaches
- type SessionDecisionEmailVerificationsLifecycle
- type SessionDecisionEmailVerificationsLifecycleDetails
- type SessionDecisionEmailVerificationsMatches
- type SessionDecisionEmailVerificationsMatchesSource
- type SessionDecisionEmailVerificationsStatus
- type SessionDecisionEmailVerificationsWarnings
- type SessionDecisionEmailVerificationsWarningsFeature
- type SessionDecisionEnvironment
- type SessionDecisionExpectedDetails
- type SessionDecisionExpectedDetailsExpectedDocumentTypes
- type SessionDecisionExpectedDetailsGender
- type SessionDecisionFaceMatches
- type SessionDecisionFaceMatchesStatus
- type SessionDecisionFaceMatchesWarnings
- type SessionDecisionFaceMatchesWarningsFeature
- type SessionDecisionIDVerifications
- type SessionDecisionIDVerificationsAssurance
- type SessionDecisionIDVerificationsBackImageQualityScore
- type SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue
- type SessionDecisionIDVerificationsDocumentLiveness
- type SessionDecisionIDVerificationsDocumentLivenessPortraitReplace
- type SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket
- type SessionDecisionIDVerificationsDocumentLivenessPrintedCopy
- type SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket
- type SessionDecisionIDVerificationsDocumentLivenessScreenReplay
- type SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket
- type SessionDecisionIDVerificationsDocumentSelfieFaceMatches
- type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource
- type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails
- type SessionDecisionIDVerificationsExtraFields
- type SessionDecisionIDVerificationsFallbackFrom
- type SessionDecisionIDVerificationsFallbackFromMethod
- type SessionDecisionIDVerificationsFrontImageQualityScore
- type SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue
- type SessionDecisionIDVerificationsIDLookup
- type SessionDecisionIDVerificationsIDLookupComparison
- type SessionDecisionIDVerificationsIDLookupComparisonField
- type SessionDecisionIDVerificationsIDLookupComparisonResult
- type SessionDecisionIDVerificationsIDLookupOutcome
- type SessionDecisionIDVerificationsMRZ
- type SessionDecisionIDVerificationsMatches
- type SessionDecisionIDVerificationsMatchesUserDetails
- type SessionDecisionIDVerificationsParsedAddress
- type SessionDecisionIDVerificationsParsedAddressDocumentLocation
- type SessionDecisionIDVerificationsParsedAddressRawResults
- type SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents
- type SessionDecisionIDVerificationsParsedAddressRawResultsGeometry
- type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation
- type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport
- type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast
- type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest
- type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints
- type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation
- type SessionDecisionIDVerificationsStatus
- type SessionDecisionIDVerificationsVerificationMethod
- type SessionDecisionIDVerificationsWalletVerification
- type SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance
- type SessionDecisionIDVerificationsWarnings
- type SessionDecisionIDVerificationsWarningsFeature
- type SessionDecisionIPAnalyses
- type SessionDecisionIPAnalysesIDDocument
- type SessionDecisionIPAnalysesIDDocumentLocation
- type SessionDecisionIPAnalysesIP
- type SessionDecisionIPAnalysesIPLocation
- type SessionDecisionIPAnalysesMatches
- type SessionDecisionIPAnalysesMatchesDeviceInfo
- type SessionDecisionIPAnalysesMatchesLocationInfo
- type SessionDecisionIPAnalysesMatchesMatchMode
- type SessionDecisionIPAnalysesMatchesMatchSource
- type SessionDecisionIPAnalysesMatchesMatchType
- type SessionDecisionIPAnalysesMatchesSource
- type SessionDecisionIPAnalysesPOADocument
- type SessionDecisionIPAnalysesPOADocumentLocation
- type SessionDecisionIPAnalysesStatus
- type SessionDecisionIPAnalysesWarnings
- type SessionDecisionIPAnalysesWarningsFeature
- type SessionDecisionKeyPeopleChecks
- type SessionDecisionKeyPeopleChecksRegistry
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwners
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures
- type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus
- type SessionDecisionKeyPeopleChecksRegistryOfficers
- type SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings
- type SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus
- type SessionDecisionKeyPeopleChecksRegistryOfficersRole
- type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures
- type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus
- type SessionDecisionKeyPeopleChecksSubmitted
- type SessionDecisionKeyPeopleChecksSubmittedParties
- type SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType
- type SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus
- type SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus
- type SessionDecisionKeyPeopleChecksSubmittedPartiesRoles
- type SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole
- type SessionDecisionKeyPeopleChecksSubmittedPartiesSource
- type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures
- type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus
- type SessionDecisionKeyPeopleChecksUBOKYCSummary
- type SessionDecisionLivenessChecks
- type SessionDecisionLivenessChecksMatches
- type SessionDecisionLivenessChecksMatchesSource
- type SessionDecisionLivenessChecksMatchesUserDetails
- type SessionDecisionLivenessChecksStatus
- type SessionDecisionLivenessChecksWarnings
- type SessionDecisionLivenessChecksWarningsFeature
- type SessionDecisionNFCSkipReason
- type SessionDecisionNFCVerifications
- type SessionDecisionNFCVerificationsAuthenticity
- type SessionDecisionNFCVerificationsCertificateSummary
- type SessionDecisionNFCVerificationsChipData
- type SessionDecisionNFCVerificationsChipProtocol
- type SessionDecisionNFCVerificationsJpki
- type SessionDecisionNFCVerificationsJpkiAttributes
- type SessionDecisionNFCVerificationsJpkiAttributesGender
- type SessionDecisionNFCVerificationsJpkiCertificateTypes
- type SessionDecisionNFCVerificationsJpkiCertificates
- type SessionDecisionNFCVerificationsJpkiCertificatesFailure
- type SessionDecisionNFCVerificationsJpkiCertificatesType
- type SessionDecisionNFCVerificationsJpkiMismatchedAttributes
- type SessionDecisionNFCVerificationsJpkiRevocationStatus
- type SessionDecisionNFCVerificationsSkipReason
- type SessionDecisionNFCVerificationsStatus
- type SessionDecisionNFCVerificationsWarnings
- type SessionDecisionNFCVerificationsWarningsFeature
- type SessionDecisionPOAVerifications
- type SessionDecisionPOAVerificationsDocumentMetadata
- type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation
- type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions
- type SessionDecisionPOAVerificationsExtraFields
- type SessionDecisionPOAVerificationsPOAParsedAddress
- type SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation
- type SessionDecisionPOAVerificationsStatus
- type SessionDecisionPOAVerificationsWarnings
- type SessionDecisionPOAVerificationsWarningsFeature
- type SessionDecisionPhoneVerifications
- type SessionDecisionPhoneVerificationsCarrier
- type SessionDecisionPhoneVerificationsLifecycle
- type SessionDecisionPhoneVerificationsLifecycleDetails
- type SessionDecisionPhoneVerificationsMatches
- type SessionDecisionPhoneVerificationsMatchesSource
- type SessionDecisionPhoneVerificationsStatus
- type SessionDecisionPhoneVerificationsWarnings
- type SessionDecisionPhoneVerificationsWarningsFeature
- type SessionDecisionQuestionnaireResponses
- type SessionDecisionQuestionnaireResponsesSections
- type SessionDecisionQuestionnaireResponsesSectionsItems
- type SessionDecisionQuestionnaireResponsesSectionsItemsAnswer
- type SessionDecisionQuestionnaireResponsesSectionsItemsChoices
- type SessionDecisionRegistryChecks
- type SessionDecisionRegistryChecksCompany
- type SessionDecisionRegistryChecksCompanyBeneficialOwners
- type SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType
- type SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus
- type SessionDecisionRegistryChecksCompanyOfficers
- type SessionDecisionRegistryChecksCompanyOfficersKYCStatus
- type SessionDecisionRegistryChecksCompanyRiskLevel
- type SessionDecisionRegistryChecksCompanyVATValidationSource
- type SessionDecisionRegistryChecksCompanyVATValidationStatus
- type SessionDecisionResubmissions
- type SessionDecisionResubmissionsNodes
- type SessionDecisionResubmissionsRequestedBy
- type SessionDecisionReviews
- type SessionDecisionSessionKind
- type SessionDecisionStatus
- type SessionDeletionJob
- type SessionDeletionJobOutcomes
- type SessionDeletionJobStatus
- type SessionEvent
- type SessionEventEventType
- type SessionEventFeatureStep
- type SessionImportError
- type SessionImportJob
- type SessionImportJobImportType
- type SessionImportJobSource
- type SessionImportJobSourceFormat
- type SessionImportJobState
- type SessionImportJobStatus
- type SessionSignDocument
- type SessionWebhookDelivery
- type SessionsAddImagesParams
- type SessionsAddImagesParamsModelType
- type SessionsAddImagesResponse
- type SessionsBatchDeleteParams
- type SessionsBatchDeleteParamsDeletionInstruction
- type SessionsBatchDeleteResponse
- type SessionsBatchDeleteResponseOutcomes
- type SessionsBatchDeleteResponseResults
- type SessionsBatchDeleteResponseResultsFaceRetentionOutcome
- type SessionsBatchDeleteResponseStatus
- type SessionsBulkUpdateAMLHitStatusParams
- type SessionsBulkUpdateAMLHitStatusParamsHitUpdates
- type SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus
- type SessionsBulkUpdateAMLHitStatusResponse
- type SessionsCreateParams
- type SessionsCreateParamsCallbackMethod
- type SessionsCreateParamsContactDetails
- type SessionsCreateParamsContactDetailsEmailLang
- type SessionsCreateParamsExpectedDetails
- type SessionsCreateParamsExpectedDetailsExpectedDocumentTypes
- type SessionsCreateParamsExpectedDetailsGender
- type SessionsCreateParamsLanguage
- type SessionsCreateParamsSign
- type SessionsCreateResponse
- type SessionsCreateResponseStatus
- type SessionsDeleteParams
- type SessionsDeleteParamsDeletionInstruction
- type SessionsDeleteResponse
- type SessionsDeleteResponseFaceRetentionOutcome
- type SessionsExportAMLScreeningHistoryParams
- type SessionsImportSharedParams
- type SessionsImportsCheckProviderParams
- type SessionsImportsCheckProviderParamsOptions
- type SessionsImportsCheckProviderParamsProvider
- type SessionsImportsCheckProviderResponse
- type SessionsImportsCreateParams
- type SessionsImportsCreateParamsImportType
- type SessionsImportsCreateParamsOptions
- type SessionsImportsCreateParamsProvider
- type SessionsImportsCreateParamsSource
- type SessionsImportsCreateParamsSourceFormat
- type SessionsImportsCreateParamsStatusMapping
- type SessionsImportsListActiveJobsResponse
- type SessionsImportsListErrorsParams
- type SessionsImportsListJobsParams
- type SessionsImportsListJobsParamsScope
- type SessionsImportsListJobsResponse
- type SessionsImportsListJobsResponseCounts
- type SessionsImportsListProvidersResponse
- type SessionsImportsRetrieveTemplateParams
- type SessionsImportsRetrieveTemplateParamsImportType
- type SessionsImportsRetryParams
- type SessionsImportsService
- func (r *SessionsImportsService) Cancel(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
- func (r *SessionsImportsService) CheckProvider(ctx context.Context, params SessionsImportsCheckProviderParams, ...) (*SessionsImportsCheckProviderResponse, error)
- func (r *SessionsImportsService) Create(ctx context.Context, params SessionsImportsCreateParams, ...) (*SessionImportJob, error)
- func (r *SessionsImportsService) ListActiveJobs(ctx context.Context, opts ...option.RequestOption) (*SessionsImportsListActiveJobsResponse, error)
- func (r *SessionsImportsService) ListErrors(ctx context.Context, importID string, params SessionsImportsListErrorsParams, ...) (*Page[SessionImportError], error)
- func (r *SessionsImportsService) ListErrorsAutoPaging(ctx context.Context, importID string, params SessionsImportsListErrorsParams, ...) *PageIterator[SessionImportError]
- func (r *SessionsImportsService) ListJobs(ctx context.Context, params SessionsImportsListJobsParams, ...) (*SessionsImportsListJobsResponse, error)
- func (r *SessionsImportsService) ListProviders(ctx context.Context, opts ...option.RequestOption) (*SessionsImportsListProvidersResponse, error)
- func (r *SessionsImportsService) Pause(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
- func (r *SessionsImportsService) Resume(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
- func (r *SessionsImportsService) Retrieve(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
- func (r *SessionsImportsService) RetrieveTemplate(ctx context.Context, params SessionsImportsRetrieveTemplateParams, ...) (*http.Response, error)
- func (r *SessionsImportsService) Retry(ctx context.Context, importID string, params SessionsImportsRetryParams, ...) (*SessionImportJob, error)
- func (r *SessionsImportsService) Start(ctx context.Context, importID string, params SessionsImportsStartParams, ...) (*SessionImportJob, error)
- type SessionsImportsStartParams
- type SessionsImportsStartParamsStatusMapping
- type SessionsListAMLScreeningHistoryParams
- type SessionsListEventsParams
- type SessionsListFeatureOverridesResponse
- type SessionsListParams
- type SessionsListParamsAPIService
- type SessionsListParamsSessionKind
- type SessionsListResponseResults
- type SessionsListResponseResultsAdditionalDetails
- type SessionsListResponseResultsAdditionalDetailsAML
- type SessionsListResponseResultsAdditionalDetailsAMLScreenedData
- type SessionsListResponseResultsAdditionalDetailsDatabaseValidation
- type SessionsListResponseResultsAdditionalDetailsEmailVerification
- type SessionsListResponseResultsAdditionalDetailsFaceMatch
- type SessionsListResponseResultsAdditionalDetailsLiveness
- type SessionsListResponseResultsAdditionalDetailsPOA
- type SessionsListResponseResultsAdditionalDetailsPhoneVerification
- type SessionsListResponseResultsDocumentType
- type SessionsListResponseResultsEmailAddress
- type SessionsListResponseResultsFeatures
- type SessionsListResponseResultsFeaturesFeature
- type SessionsListResponseResultsFeaturesStatus
- type SessionsListResponseResultsPhoneNumber
- type SessionsListResponseResultsSessionKind
- type SessionsListResponseResultsStatus
- type SessionsPreviewDecisionEmailParams
- type SessionsPreviewDecisionEmailParamsNewStatus
- type SessionsPreviewDecisionEmailResponse
- type SessionsPreviewDecisionEmailResponseNotSentReason
- type SessionsPreviewDecisionEmailResponseRecipientSource
- type SessionsPreviewDecisionEmailResponseSenderKind
- type SessionsPreviewResubmissionParams
- type SessionsPreviewResubmissionParamsNodesToResubmit
- type SessionsPreviewResubmissionParamsNodesToResubmitFeature
- type SessionsPreviewResubmissionResponse
- type SessionsPreviewResubmissionResponseNodesToResubmit
- type SessionsPreviewResubmissionResponseNodesToResubmitFeature
- type SessionsPreviewResubmissionResponseNotSentReason
- type SessionsPreviewResubmissionResponseRecipientSource
- type SessionsPreviewResubmissionResponseSenderKind
- type SessionsRetrieveDecisionParams
- type SessionsRetrieveDecisionParamsInclude
- type SessionsReviewsCreateParams
- type SessionsReviewsCreateParamsNewStatus
- type SessionsReviewsCreateResponse
- type SessionsReviewsCreateResponseNewStatus
- type SessionsReviewsListParams
- type SessionsReviewsService
- func (r *SessionsReviewsService) Create(ctx context.Context, sessionID string, params SessionsReviewsCreateParams, ...) (*SessionsReviewsCreateResponse, error)
- func (r *SessionsReviewsService) List(ctx context.Context, sessionID string, params SessionsReviewsListParams, ...) (*Page[ReviewItem], error)
- func (r *SessionsReviewsService) ListAutoPaging(ctx context.Context, sessionID string, params SessionsReviewsListParams, ...) *PageIterator[ReviewItem]
- type SessionsService
- func (r *SessionsService) AddImages(ctx context.Context, sessionID string, params SessionsAddImagesParams, ...) (*SessionsAddImagesResponse, error)
- func (r *SessionsService) BatchDelete(ctx context.Context, params SessionsBatchDeleteParams, ...) (*SessionsBatchDeleteResponse, error)
- func (r *SessionsService) BulkUpdateAMLHitStatus(ctx context.Context, sessionID string, ...) (*SessionsBulkUpdateAMLHitStatusResponse, error)
- func (r *SessionsService) CancelFeatureOverride(ctx context.Context, sessionID string, overrideID string, ...) (*FeatureStatusOverride, error)
- func (r *SessionsService) Create(ctx context.Context, params SessionsCreateParams, opts ...option.RequestOption) (*SessionsCreateResponse, error)
- func (r *SessionsService) Delete(ctx context.Context, sessionID string, params SessionsDeleteParams, ...) (*SessionsDeleteResponse, error)
- func (r *SessionsService) ExportAMLScreeningHistory(ctx context.Context, sessionID string, ...) (*http.Response, error)
- func (r *SessionsService) GeneratePDF(ctx context.Context, sessionID string, opts ...option.RequestOption) (*http.Response, error)
- func (r *SessionsService) ImportShared(ctx context.Context, params SessionsImportSharedParams, ...) (*SessionDecision, error)
- func (r *SessionsService) List(ctx context.Context, params SessionsListParams, opts ...option.RequestOption) (*Page[SessionsListResponseResults], error)
- func (r *SessionsService) ListAMLScreeningHistory(ctx context.Context, sessionID string, ...) (*Page[AMLScreeningRun], error)
- func (r *SessionsService) ListAMLScreeningHistoryAutoPaging(ctx context.Context, sessionID string, ...) *PageIterator[AMLScreeningRun]
- func (r *SessionsService) ListAutoPaging(ctx context.Context, params SessionsListParams, opts ...option.RequestOption) *PageIterator[SessionsListResponseResults]
- func (r *SessionsService) ListEvents(ctx context.Context, sessionID string, params SessionsListEventsParams, ...) (*Page[SessionEvent], error)
- func (r *SessionsService) ListEventsAutoPaging(ctx context.Context, sessionID string, params SessionsListEventsParams, ...) *PageIterator[SessionEvent]
- func (r *SessionsService) ListFeatureOverrides(ctx context.Context, sessionID string, opts ...option.RequestOption) (*SessionsListFeatureOverridesResponse, error)
- func (r *SessionsService) ListNetworks(ctx context.Context, sessionID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
- func (r *SessionsService) PreviewDecisionEmail(ctx context.Context, sessionID string, ...) (*SessionsPreviewDecisionEmailResponse, error)
- func (r *SessionsService) PreviewResubmission(ctx context.Context, sessionID string, ...) (*SessionsPreviewResubmissionResponse, error)
- func (r *SessionsService) RegenerateKYBParty(ctx context.Context, sessionID string, partyUUID string, ...) (*KYBKeyPeopleParty, error)
- func (r *SessionsService) RetrieveDecision(ctx context.Context, sessionID string, params SessionsRetrieveDecisionParams, ...) (*SessionDecision, error)
- func (r *SessionsService) RetrieveDeletionJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*SessionDeletionJob, error)
- func (r *SessionsService) Share(ctx context.Context, sessionID string, params SessionsShareParams, ...) (*SessionsShareResponse, error)
- func (r *SessionsService) Simulate(ctx context.Context, sessionID string, params SandboxSimulateRequest, ...) (*SandboxSimulateResponse, error)
- func (r *SessionsService) UpdateAMLHitStatus(ctx context.Context, sessionID string, params SessionsUpdateAMLHitStatusParams, ...) (*SessionsUpdateAMLHitStatusResponse, error)
- func (r *SessionsService) UpdateAMLStatus(ctx context.Context, sessionID string, params SessionsUpdateAMLStatusParams, ...) (*SessionsUpdateAMLStatusResponse, error)
- func (r *SessionsService) UpdateData(ctx context.Context, sessionID string, params SessionsUpdateDataParams, ...) (*SessionsUpdateDataResponse, error)
- func (r *SessionsService) UpdateDocumentAiData(ctx context.Context, sessionID string, documentUUID string, ...) (*SessionsUpdateDocumentAiDataResponse, error)
- func (r *SessionsService) UpdateFeatureStatus(ctx context.Context, sessionID string, nodeID string, ...) (*SessionsUpdateFeatureStatusResponse, error)
- func (r *SessionsService) UpdateKYBCompanyData(ctx context.Context, sessionID string, companyUUID string, ...) (*SessionsUpdateKYBCompanyDataResponse, error)
- func (r *SessionsService) UpdateKYBParty(ctx context.Context, sessionID string, partyUUID string, ...) (*SessionsUpdateKYBPartyResponse, error)
- func (r *SessionsService) UpdatePOAData(ctx context.Context, sessionID string, params SessionsUpdatePOADataParams, ...) (*SessionsUpdatePOADataResponse, error)
- func (r *SessionsService) UpdateStatus(ctx context.Context, sessionID string, params SessionsUpdateStatusParams, ...) (*SessionsUpdateStatusResponse, error)
- type SessionsShareParams
- type SessionsShareResponse
- type SessionsShareResponseSessionKind
- type SessionsSignaturesDownloadEvidenceParams
- type SessionsSignaturesService
- func (r *SessionsSignaturesService) DownloadDocument(ctx context.Context, sessionID string, nodeID string, documentID string, ...) (*http.Response, error)
- func (r *SessionsSignaturesService) DownloadEvidence(ctx context.Context, sessionID string, nodeID string, ...) (*http.Response, error)
- func (r *SessionsSignaturesService) DownloadFieldImage(ctx context.Context, sessionID string, nodeID string, fieldID string, ...) (*http.Response, error)
- func (r *SessionsSignaturesService) Validate(ctx context.Context, sessionID string, nodeID string, ...) (*SessionsSignaturesValidateResponse, error)
- type SessionsSignaturesValidateParams
- type SessionsSignaturesValidateResponse
- type SessionsUpdateAMLHitStatusParams
- type SessionsUpdateAMLHitStatusParamsReviewStatus
- type SessionsUpdateAMLHitStatusResponse
- type SessionsUpdateAMLHitStatusResponseReviewStatus
- type SessionsUpdateAMLStatusParams
- type SessionsUpdateAMLStatusParamsStatus
- type SessionsUpdateAMLStatusResponse
- type SessionsUpdateAMLStatusResponsePreviousStatus
- type SessionsUpdateAMLStatusResponseStatus
- type SessionsUpdateDataParams
- type SessionsUpdateDataParamsDocumentType
- type SessionsUpdateDataParamsGender
- type SessionsUpdateDataParamsMaritalStatus
- type SessionsUpdateDataParamsParsedAddress
- type SessionsUpdateDataResponse
- type SessionsUpdateDataResponseDocumentType
- type SessionsUpdateDataResponseGender
- type SessionsUpdateDataResponseMaritalStatus
- type SessionsUpdateDataResponseParsedAddress
- type SessionsUpdateDocumentAiDataParams
- type SessionsUpdateDocumentAiDataParamsStatus
- type SessionsUpdateDocumentAiDataResponse
- type SessionsUpdateDocumentAiDataResponseStatus
- type SessionsUpdateFeatureStatusParams
- type SessionsUpdateFeatureStatusParamsFeatureType
- type SessionsUpdateFeatureStatusParamsNewStatus
- type SessionsUpdateFeatureStatusResponse
- type SessionsUpdateKYBCompanyDataParams
- type SessionsUpdateKYBCompanyDataParamsRegistryStatus
- type SessionsUpdateKYBCompanyDataParamsVerificationStatus
- type SessionsUpdateKYBCompanyDataResponse
- type SessionsUpdateKYBCompanyDataResponseVATValidationSource
- type SessionsUpdateKYBCompanyDataResponseVATValidationStatus
- type SessionsUpdateKYBPartyParams
- type SessionsUpdateKYBPartyResponse
- type SessionsUpdateKYBPartyResponseEntityType
- type SessionsUpdatePOADataParams
- type SessionsUpdatePOADataParamsDocumentType
- type SessionsUpdatePOADataParamsPOAParsedAddress
- type SessionsUpdatePOADataResponse
- type SessionsUpdatePOADataResponseDocumentType
- type SessionsUpdatePOADataResponsePOAParsedAddress
- type SessionsUpdateStatusParams
- type SessionsUpdateStatusParamsNewStatus
- type SessionsUpdateStatusParamsNodesToResubmit
- type SessionsUpdateStatusParamsNodesToResubmitFeature
- type SessionsUpdateStatusResponse
- type SessionsWebhooksService
- func (r *SessionsWebhooksService) List(ctx context.Context, sessionID string, opts ...option.RequestOption) ([]SessionWebhookDelivery, error)
- func (r *SessionsWebhooksService) Resend(ctx context.Context, sessionID string, webhookUUID string, ...) (*SessionWebhookDelivery, error)
- func (r *SessionsWebhooksService) Retrieve(ctx context.Context, sessionID string, webhookUUID string, ...) (*SessionWebhookDelivery, error)
- type SignatureField
- type SignatureFieldAnchor
- type SignatureFieldAnchorOccurrence
- type SignatureFieldDateFormat
- type SignatureFieldResult
- type SignatureFieldResultRole
- type SignatureFieldResultType
- type SignatureFieldResultValueSource
- type SignatureFieldResultValueUnavailableReason
- type SignatureFieldRole
- type SignatureFieldType
- type SignatureFieldValidation
- type SignatureFieldValidationKind
- type SignatureResult
- type SignatureResultAdoptedSignature
- type SignatureResultAdoptedSignatureMethod
- type SignatureResultCertificate
- type SignatureResultConfirmation
- type SignatureResultConfirmationChannel
- type SignatureResultDeclinedAction
- type SignatureResultDocuments
- type SignatureResultDocumentsConversion
- type SignatureResultDocumentsConversionFrom
- type SignatureResultDocumentsMode
- type SignatureResultDocumentsSourceFormat
- type SignatureResultDocumentsStatus
- type SignatureResultFormat
- type SignatureResultIdentityUsed
- type SignatureResultLevel
- type SignatureResultPlaceUnavailableReason
- type SignatureResultSigner
- type SignatureResultSignerCapacity
- type SignatureResultStatus
- type SignatureResultTimestamp
- type SignatureResultValidation
- type SignatureResultValidationDocuments
- type SignatureResultValidationDocumentsCertificate
- type SignatureResultValidationDocumentsTimestamp
- type SignatureResultValidationDocumentsTrustedList
- type SignatureResultVerdict
- type SignatureResultWarnings
- type SignatureResultWarningsCode
- type SimpleQuestionnaireElement
- type SimpleQuestionnaireElementElementType
- type SimpleQuestionnaireElementOptions
- type SimpleQuestionnaireElementValidation
- type SimpleQuestionnaireRequest
- type SimpleQuestionnaireRequestStatus
- type SimpleQuestionnaireUpdateRequest
- type SimpleQuestionnaireUpdateRequestStatus
- type SimpleWorkflowFeature
- type SimpleWorkflowFeatureFeature
- type SimpleWorkflowRequest
- type SimpleWorkflowRequestStatus
- type SimpleWorkflowUpdateRequest
- type SimpleWorkflowUpdateRequestStatus
- type SocialFootprintCategorySummary
- type SocialFootprintPlatform
- type SocialFootprintPlatformScope
- type SocialFootprintProfile
- type SocialFootprintProfilePrivacyStatus
- type TokenVerificationError
- type TokenVerificationReason
- type TransactionDetail
- type TransactionDetailActionRequired
- type TransactionDetailActionRequiredType
- type TransactionDetailActivities
- type TransactionDetailAlerts
- type TransactionDetailAlertsSeverity
- type TransactionDetailAlertsSource
- type TransactionDetailAlertsStatus
- type TransactionDetailDirection
- type TransactionDetailDocuments
- type TransactionDetailDocumentsFiles
- type TransactionDetailEnvironment
- type TransactionDetailNetworkSnapshot
- type TransactionDetailParties
- type TransactionDetailPartiesDevice
- type TransactionDetailPartiesDeviceNetworkContext
- type TransactionDetailPartiesEntityType
- type TransactionDetailPartiesKind
- type TransactionDetailPartiesRole
- type TransactionDetailPaymentMethods
- type TransactionDetailPaymentMethodsOwnerKind
- type TransactionDetailPaymentMethodsPaymentMethodType
- type TransactionDetailPaymentMethodsRole
- type TransactionDetailProviderResults
- type TransactionDetailProviderResultsResultType
- type TransactionDetailRemediation
- type TransactionDetailRuleRuns
- type TransactionDetailRuleRunsMode
- type TransactionDetailSeverity
- type TransactionDetailSource
- type TransactionDetailStatus
- type TransactionDetailTags
- type TransactionDetailTagsSource
- type TransactionNote
- type TransactionNoteMetadata
- type TransactionNoteMetadataNewStatus
- type TransactionNoteMetadataPreviousStatus
- type TransactionNoteMetadataSource
- type TransactionNoteMetadataType
- type TransactionRuleAction
- type TransactionRuleActionGrouping
- type TransactionRuleActionParam
- type TransactionRuleActionType
- type TransactionRuleAggregation
- type TransactionRuleAggregationMetric
- type TransactionRuleAggregationOperator
- type TransactionRuleAggregationParam
- type TransactionRuleBacktestRequest
- type TransactionRuleBacktestRequestEvaluationMode
- type TransactionRuleBacktestResult
- type TransactionRuleCondition
- type TransactionRuleConditionGroupLogic
- type TransactionRuleConditionGroupsLogic
- type TransactionRuleConditionOperator
- type TransactionRuleConditionParam
- type TransactionRuleConditionValueType
- type TransactionRuleCreateRequest
- type TransactionRuleCreateRequestEvaluationMode
- type TransactionRuleCreateRequestMode
- type TransactionRuleDetail
- type TransactionRuleDetailEvaluationMode
- type TransactionRuleDetailMode
- type TransactionRuleDetailSeverity
- type TransactionRuleDetailSource
- type TransactionRuleInstallRequest
- type TransactionRuleInstallResult
- type TransactionRuleLibraryEntry
- type TransactionRuleLibraryEntryEvaluationMode
- type TransactionRuleScope
- type TransactionRuleScopeDirections
- type TransactionRuleScopeParam
- type TransactionRuleUpdateRequest
- type TransactionRuleUpdateRequestEvaluationMode
- type TransactionRuleUpdateRequestMode
- type TransactionSummary
- type TransactionSummaryDirection
- type TransactionSummarySeverity
- type TransactionSummarySource
- type TransactionSummaryStatus
- type TransactionSummarySubjectType
- type TransactionSummaryTags
- type TransactionSummaryTagsSource
- type TransactionTravelRule
- type TransactionTravelRuleCounterpartyVASP
- type TransactionTravelRuleCounterpartyVASPDdScoreBreakdown
- type TransactionTravelRuleDirection
- type TransactionsCreateParams
- type TransactionsCreateParamsCounterparty
- type TransactionsCreateParamsCounterpartyDeviceContext
- type TransactionsCreateParamsCounterpartyDeviceContextNetworkContext
- type TransactionsCreateParamsCounterpartyPaymentMethod
- type TransactionsCreateParamsNetworkSnapshot
- type TransactionsCreateParamsSubject
- type TransactionsCreateParamsSubjectAddress
- type TransactionsCreateParamsSubjectDeviceContext
- type TransactionsCreateParamsSubjectDeviceContextNetworkContext
- type TransactionsCreateParamsSubjectInstitutionDetails
- type TransactionsCreateParamsSubjectPaymentMethod
- type TransactionsCreateParamsTransactionCategory
- type TransactionsCreateParamsTransactionDetails
- type TransactionsCreateParamsTransactionDetailsCryptoParams
- type TransactionsCreateParamsTransactionDetailsDirection
- type TransactionsCreateParamsTravelRuleDetails
- type TransactionsCreateSDKTokenParams
- type TransactionsCreateSDKTokenResponse
- type TransactionsListParams
- type TransactionsListRelatedParams
- type TransactionsListResponseResults
- type TransactionsListResponseResultsDirection
- type TransactionsListResponseResultsSeverity
- type TransactionsListResponseResultsStatus
- type TransactionsListResponseResultsTags
- type TransactionsListResponseResultsTagsSource
- type TransactionsNotesCreateParams
- type TransactionsNotesListParams
- type TransactionsNotesService
- func (r *TransactionsNotesService) Create(ctx context.Context, transactionID string, ...) (*TransactionNote, error)
- func (r *TransactionsNotesService) List(ctx context.Context, transactionID string, params TransactionsNotesListParams, ...) (*Page[TransactionNote], error)
- func (r *TransactionsNotesService) ListAutoPaging(ctx context.Context, transactionID string, params TransactionsNotesListParams, ...) *PageIterator[TransactionNote]
- type TransactionsRulesListLibraryParams
- type TransactionsRulesListParams
- type TransactionsRulesListParamsMode
- type TransactionsRulesListParamsSource
- type TransactionsRulesService
- func (r *TransactionsRulesService) Backtest(ctx context.Context, params TransactionRuleBacktestRequest, ...) (*TransactionRuleBacktestResult, error)
- func (r *TransactionsRulesService) Create(ctx context.Context, params TransactionRuleCreateRequest, ...) (*TransactionRuleDetail, error)
- func (r *TransactionsRulesService) Delete(ctx context.Context, ruleUUID string, opts ...option.RequestOption) error
- func (r *TransactionsRulesService) InstallLibrary(ctx context.Context, params TransactionRuleInstallRequest, ...) (*TransactionRuleInstallResult, error)
- func (r *TransactionsRulesService) List(ctx context.Context, params TransactionsRulesListParams, ...) (*Page[TransactionRuleDetail], error)
- func (r *TransactionsRulesService) ListAutoPaging(ctx context.Context, params TransactionsRulesListParams, ...) *PageIterator[TransactionRuleDetail]
- func (r *TransactionsRulesService) ListLibrary(ctx context.Context, params TransactionsRulesListLibraryParams, ...) (*Page[TransactionRuleLibraryEntry], error)
- func (r *TransactionsRulesService) ListLibraryAutoPaging(ctx context.Context, params TransactionsRulesListLibraryParams, ...) *PageIterator[TransactionRuleLibraryEntry]
- func (r *TransactionsRulesService) Retrieve(ctx context.Context, ruleUUID string, opts ...option.RequestOption) (*TransactionRuleDetail, error)
- func (r *TransactionsRulesService) UninstallLibrary(ctx context.Context, params TransactionRuleInstallRequest, ...) (*TransactionRuleInstallResult, error)
- func (r *TransactionsRulesService) Update(ctx context.Context, ruleUUID string, params TransactionRuleUpdateRequest, ...) (*TransactionRuleDetail, error)
- type TransactionsService
- func (r *TransactionsService) Create(ctx context.Context, params TransactionsCreateParams, ...) (*TransactionDetail, error)
- func (r *TransactionsService) CreateSDKToken(ctx context.Context, params TransactionsCreateSDKTokenParams, ...) (*TransactionsCreateSDKTokenResponse, error)
- func (r *TransactionsService) GeneratePDF(ctx context.Context, transactionUUID string, opts ...option.RequestOption) (*http.Response, error)
- func (r *TransactionsService) List(ctx context.Context, params TransactionsListParams, ...) (*Page[TransactionsListResponseResults], error)
- func (r *TransactionsService) ListAutoPaging(ctx context.Context, params TransactionsListParams, ...) *PageIterator[TransactionsListResponseResults]
- func (r *TransactionsService) ListNetworks(ctx context.Context, transactionUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
- func (r *TransactionsService) ListPartyNetworks(ctx context.Context, transactionUUID string, transactionPartyUUID string, ...) (*EntityNetworkMembershipList, error)
- func (r *TransactionsService) ListRelated(ctx context.Context, transactionID string, ...) (*Page[TransactionSummary], error)
- func (r *TransactionsService) ListRelatedAutoPaging(ctx context.Context, transactionID string, ...) *PageIterator[TransactionSummary]
- func (r *TransactionsService) Retrieve(ctx context.Context, transactionID string, opts ...option.RequestOption) (*TransactionDetail, error)
- type TransactionsTravelRuleService
- func (r *TransactionsTravelRuleService) ConfirmOwnership(ctx context.Context, transactionID string, ...) (*TravelRuleTransferDetail, error)
- func (r *TransactionsTravelRuleService) CreateMessage(ctx context.Context, transactionID string, ...) (*TravelRuleMessage, error)
- func (r *TransactionsTravelRuleService) ListMessages(ctx context.Context, transactionID string, opts ...option.RequestOption) ([]TravelRuleMessage, error)
- func (r *TransactionsTravelRuleService) TriggerTestVASPInbound(ctx context.Context, params TravelRuleTestVASPInboundRequest, ...) (*TravelRuleTestVASPInboundResponse, error)
- func (r *TransactionsTravelRuleService) UpdateTransfer(ctx context.Context, transactionID string, ...) (*TravelRuleTransferDetail, error)
- type TravelRuleChainDetails
- type TravelRuleChainDetailsNotApplicableReason
- type TravelRuleChainDetailsShape
- type TravelRuleChainDetailsUtxo
- type TravelRuleChainDetailsWarnings
- type TravelRuleChainSide
- type TravelRuleChainSideSource
- type TravelRuleCounterpartyContact
- type TravelRuleCounterpartyContactCreate
- type TravelRuleCounterpartyContactInvalidReason
- type TravelRuleCounterpartyContactScope
- type TravelRuleCounterpartyContactSource
- type TravelRuleCounterpartyContactsListParams
- type TravelRuleCounterpartyContactsService
- func (r *TravelRuleCounterpartyContactsService) Create(ctx context.Context, params TravelRuleCounterpartyContactCreate, ...) (*TravelRuleCounterpartyContact, error)
- func (r *TravelRuleCounterpartyContactsService) Delete(ctx context.Context, contactUUID string, opts ...option.RequestOption) error
- func (r *TravelRuleCounterpartyContactsService) List(ctx context.Context, params TravelRuleCounterpartyContactsListParams, ...) (*Page[TravelRuleCounterpartyContact], error)
- func (r *TravelRuleCounterpartyContactsService) ListAutoPaging(ctx context.Context, params TravelRuleCounterpartyContactsListParams, ...) *PageIterator[TravelRuleCounterpartyContact]
- type TravelRuleCounterpartyDecision
- type TravelRuleCounterpartyDecisionDecision
- type TravelRuleCounterpartyDecisionInheritedFrom
- type TravelRuleCounterpartyDecisionRequest
- type TravelRuleCounterpartyDecisionRequestDecision
- type TravelRuleCounterpartyDecisionResponse
- type TravelRuleCounterpartyQuestionnaire
- type TravelRuleCounterpartyQuestionnaireList
- type TravelRuleCounterpartyQuestionnaireRequest
- type TravelRuleCounterpartyQuestionnaireStatus
- type TravelRuleCounterpartyScreening
- type TravelRuleCounterpartyScreeningRequest
- type TravelRuleCounterpartyScreeningResult
- type TravelRuleCounterpartyScreeningResultOutcome
- type TravelRuleCounterpartyScreeningStatus
- type TravelRuleCounterpartyScreeningStatusValue
- type TravelRuleDataMatch
- type TravelRuleDataMatchFields
- type TravelRuleDataMatchFieldsResult
- type TravelRuleDataMatchFieldsStrictness
- type TravelRuleDataMatchMismatchedFields
- type TravelRuleDataSharingFields
- type TravelRuleDataSharingFieldsCompany
- type TravelRuleDataSharingFieldsIndividual
- type TravelRuleDataSharingFieldsParam
- type TravelRuleDataUnmasked
- type TravelRuleDataUnmaskedReason
- type TravelRuleDelivery
- type TravelRuleDeliveryKind
- type TravelRuleDeliveryRail
- type TravelRuleDeliveryStatus
- type TravelRuleDiscoveryStep
- type TravelRuleDiscoveryStepOutcome
- type TravelRuleDiscoveryStepStep
- type TravelRuleInboundRequest
- type TravelRuleInboundRequestOriginatingVASP
- type TravelRuleInboundResponse
- type TravelRuleListVASPsParams
- type TravelRuleListVASPsParamsKind
- type TravelRuleListVASPsParamsNetwork
- type TravelRuleListVASPsParamsResponsiveness
- type TravelRuleListVASPsParamsRisk
- type TravelRuleMatchingRules
- type TravelRuleMatchingRulesCompany
- type TravelRuleMatchingRulesCompanyAccount
- type TravelRuleMatchingRulesCompanyAddress
- type TravelRuleMatchingRulesCompanyName
- type TravelRuleMatchingRulesIndividual
- type TravelRuleMatchingRulesIndividualAccount
- type TravelRuleMatchingRulesIndividualAddress
- type TravelRuleMatchingRulesIndividualDateOfBirth
- type TravelRuleMatchingRulesIndividualName
- type TravelRuleMatchingRulesParam
- type TravelRuleMatchingRulesParamCompany
- type TravelRuleMatchingRulesParamIndividual
- type TravelRuleMessage
- type TravelRuleMessageAttachment
- type TravelRuleMessageAttachmentFiles
- type TravelRuleMessageCreateRequest
- type TravelRuleMessageCreateRequestKind
- type TravelRuleMessageDirection
- type TravelRuleMessageKind
- type TravelRuleNameMatch
- type TravelRuleNameMatchComparedWith
- type TravelRuleNameMatchMethod
- type TravelRuleNameMatchStrictness
- type TravelRuleNextAction
- type TravelRuleNextActionAction
- type TravelRuleOwnershipConfirmRequest
- type TravelRuleSendComplianceEmailConfirmationResponse
- type TravelRuleService
- func (r *TravelRuleService) ClearVASPDecision(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyDecisionResponse, error)
- func (r *TravelRuleService) CreateWidgetSession(ctx context.Context, params TravelRuleWidgetSessionCreate, ...) (*TravelRuleWidgetSessionResponse, error)
- func (r *TravelRuleService) ListVASPQuestionnaires(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyQuestionnaireList, error)
- func (r *TravelRuleService) ListVASPs(ctx context.Context, params TravelRuleListVASPsParams, ...) (*Page[VASPDirectoryEntry], error)
- func (r *TravelRuleService) ListVASPsAutoPaging(ctx context.Context, params TravelRuleListVASPsParams, ...) *PageIterator[VASPDirectoryEntry]
- func (r *TravelRuleService) RegisterInbound(ctx context.Context, params TravelRuleInboundRequest, ...) (*TravelRuleInboundResponse, error)
- func (r *TravelRuleService) RetrieveSettings(ctx context.Context, opts ...option.RequestOption) (*TravelRuleSettingsDetail, error)
- func (r *TravelRuleService) RetrieveVASP(ctx context.Context, vaspID string, opts ...option.RequestOption) (*VASPDirectoryEntry, error)
- func (r *TravelRuleService) RetrieveVASPDecision(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyDecisionResponse, error)
- func (r *TravelRuleService) RetrieveVASPScreening(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyScreeningStatus, error)
- func (r *TravelRuleService) ScreenVASP(ctx context.Context, vaspID string, ...) (*TravelRuleCounterpartyScreeningResult, error)
- func (r *TravelRuleService) SendComplianceEmailConfirmation(ctx context.Context, opts ...option.RequestOption) (*TravelRuleSendComplianceEmailConfirmationResponse, error)
- func (r *TravelRuleService) SendVASPQuestionnaire(ctx context.Context, vaspID string, ...) (*TravelRuleCounterpartyQuestionnaire, error)
- func (r *TravelRuleService) UpdateSettings(ctx context.Context, params TravelRuleSettingsUpdate, ...) (*TravelRuleSettingsDetail, error)
- func (r *TravelRuleService) UpdateVASPDecision(ctx context.Context, vaspID string, ...) (*TravelRuleCounterpartyDecisionResponse, error)
- type TravelRuleSettingsDetail
- type TravelRuleSettingsDetailDiditNetwork
- type TravelRuleSettingsDetailDiditNetworkMissing
- type TravelRuleSettingsDetailDisabledNetworks
- type TravelRuleSettingsDetailNameMatchingStrictness
- type TravelRuleSettingsDetailNetworks
- type TravelRuleSettingsDetailNetworksGtr
- type TravelRuleSettingsDetailNetworksGtrMode
- type TravelRuleSettingsDetailNetworksGtrRail
- type TravelRuleSettingsDetailNetworksSygna
- type TravelRuleSettingsDetailNetworksSygnaMode
- type TravelRuleSettingsDetailNetworksSygnaRail
- type TravelRuleSettingsDetailNetworksTrust
- type TravelRuleSettingsDetailNetworksTrustMode
- type TravelRuleSettingsDetailNetworksTrustRail
- type TravelRuleSettingsDetailNetworksVerifyvasp
- type TravelRuleSettingsDetailNetworksVerifyvaspMode
- type TravelRuleSettingsDetailNetworksVerifyvaspRail
- type TravelRuleSettingsDetailNonResponsivePolicy
- type TravelRuleSettingsDetailOwnershipValidationMode
- type TravelRuleSettingsDetailSunrisePolicy
- type TravelRuleSettingsDetailTimeoutOutcome
- type TravelRuleSettingsUpdate
- type TravelRuleSettingsUpdateDisabledNetworks
- type TravelRuleSettingsUpdateNameMatchingStrictness
- type TravelRuleSettingsUpdateNonResponsivePolicy
- type TravelRuleSettingsUpdateOwnershipValidationMode
- type TravelRuleSettingsUpdateSunrisePolicy
- type TravelRuleSettingsUpdateTimeoutOutcome
- type TravelRuleTestVASPInboundRequest
- type TravelRuleTestVASPInboundRequestScenario
- type TravelRuleTestVASPInboundResponse
- type TravelRuleTransferDetail
- type TravelRuleTransferDetailCounterpartyVASP
- type TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown
- type TravelRuleTransferDetailDirection
- type TravelRuleTransferDetailRail
- type TravelRuleTransferDetailStatus
- type TravelRuleTransferDetailTimeline
- type TravelRuleTransferPatchRequest
- type TravelRuleTransferPatchRequestAction
- type TravelRuleTransferRow
- type TravelRuleTransferRowBeneficiaryWalletType
- type TravelRuleTransferRowDirection
- type TravelRuleTransferRowKind
- type TravelRuleTransferRowOriginatorWalletType
- type TravelRuleTransferRowRail
- type TravelRuleTransferRowStatus
- type TravelRuleTransfersListParams
- type TravelRuleTransfersService
- type TravelRuleUtxo
- type TravelRuleUtxoEntry
- type TravelRuleUtxoEntryParam
- type TravelRuleWalletAddressesBulkImportParams
- type TravelRuleWalletAddressesListParams
- type TravelRuleWalletAddressesService
- func (r *TravelRuleWalletAddressesService) BulkImport(ctx context.Context, params TravelRuleWalletAddressesBulkImportParams, ...) (*WalletAddressImportReport, error)
- func (r *TravelRuleWalletAddressesService) Create(ctx context.Context, params WalletAddressEntryCreate, ...) (*WalletAddressEntry, error)
- func (r *TravelRuleWalletAddressesService) Delete(ctx context.Context, entryUUID string, opts ...option.RequestOption) error
- func (r *TravelRuleWalletAddressesService) List(ctx context.Context, params TravelRuleWalletAddressesListParams, ...) (*Page[WalletAddressEntry], error)
- func (r *TravelRuleWalletAddressesService) ListAutoPaging(ctx context.Context, params TravelRuleWalletAddressesListParams, ...) *PageIterator[WalletAddressEntry]
- func (r *TravelRuleWalletAddressesService) Update(ctx context.Context, entryUUID string, params WalletAddressEntryUpdateParam, ...) (*WalletAddressEntryUpdate, error)
- type TravelRuleWidgetSessionCreate
- type TravelRuleWidgetSessionResponse
- type TravelRuleWorkspace
- type TravelRuleWorkspaceBillingRequest
- type TravelRuleWorkspaceClaim
- type TravelRuleWorkspaceClaimRequest
- type TravelRuleWorkspaceClaimStatus
- type TravelRuleWorkspaceDomain
- type TravelRuleWorkspaceDomainCodeResponse
- type TravelRuleWorkspaceDomainCodeResponseStatus
- type TravelRuleWorkspaceDomainConfirmRequest
- type TravelRuleWorkspaceDomainStatus
- type TravelRuleWorkspaceService
- func (r *TravelRuleWorkspaceService) Claim(ctx context.Context, params TravelRuleWorkspaceClaimRequest, ...) (*TravelRuleWorkspace, error)
- func (r *TravelRuleWorkspaceService) ConfirmDomain(ctx context.Context, params TravelRuleWorkspaceDomainConfirmRequest, ...) (*TravelRuleWorkspace, error)
- func (r *TravelRuleWorkspaceService) EnableBilling(ctx context.Context, params TravelRuleWorkspaceBillingRequest, ...) (*TravelRuleWorkspace, error)
- func (r *TravelRuleWorkspaceService) Get(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
- func (r *TravelRuleWorkspaceService) SendDomainCode(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspaceDomainCodeResponse, error)
- func (r *TravelRuleWorkspaceService) VerifyDomainDNS(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
- type TravelRuleWorkspaceTxtRecord
- type UnexpectedResponseError
- type UnprocessableEntityError
- type UserDetailItem
- type UserDetailItemComments
- type UserDetailItemCommentsCommentType
- type UserDetailItemCommentsNewStatus
- type UserDetailItemCommentsPreviousStatus
- type UserDetailItemFeaturesList
- type UserDetailItemStatus
- type UserDetailItemTags
- type UserDetailItemTagsTag
- type UserDetailItemTagsTagSource
- type UserListItem
- type UserListItemFeaturesList
- type UserListItemStatus
- type UserListItemTags
- type UsersBatchDeleteParams
- type UsersBatchDeleteResponse
- type UsersCreateParams
- type UsersCreateParamsStatus
- type UsersCreateResponse
- type UsersCreateResponseComments
- type UsersCreateResponseCommentsCommentType
- type UsersCreateResponseCommentsNewStatus
- type UsersCreateResponseCommentsPreviousStatus
- type UsersCreateResponseFeaturesList
- type UsersCreateResponseStatus
- type UsersCreateResponseTags
- type UsersCreateResponseTagsTag
- type UsersCreateResponseTagsTagSource
- type UsersCreateResponseVerificationLink
- type UsersListParams
- type UsersService
- func (r *UsersService) BatchDelete(ctx context.Context, params UsersBatchDeleteParams, ...) (*UsersBatchDeleteResponse, error)
- func (r *UsersService) Create(ctx context.Context, params UsersCreateParams, opts ...option.RequestOption) (*UsersCreateResponse, error)
- func (r *UsersService) GeneratePDF(ctx context.Context, vendorData string, opts ...option.RequestOption) (*http.Response, error)
- func (r *UsersService) List(ctx context.Context, params UsersListParams, opts ...option.RequestOption) (*Page[UserListItem], error)
- func (r *UsersService) ListAutoPaging(ctx context.Context, params UsersListParams, opts ...option.RequestOption) *PageIterator[UserListItem]
- func (r *UsersService) ListNetworks(ctx context.Context, vendorUserUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
- func (r *UsersService) Retrieve(ctx context.Context, vendorData string, opts ...option.RequestOption) (*UserDetailItem, error)
- func (r *UsersService) RetrieveOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
- func (r *UsersService) SetAMLMonitoring(ctx context.Context, params UsersSetAMLMonitoringParams, ...) (*UsersSetAMLMonitoringResponse, error)
- func (r *UsersService) SetOngoingMonitoring(ctx context.Context, params OngoingMonitoringToggleRequest, ...) (*UsersSetOngoingMonitoringResponse, error)
- func (r *UsersService) Update(ctx context.Context, vendorData string, params UsersUpdateParams, ...) (*UserDetailItem, error)
- func (r *UsersService) UpdateStatus(ctx context.Context, vendorData string, params UsersUpdateStatusParams, ...) (*UserDetailItem, error)
- func (r *UsersService) UploadFace(ctx context.Context, diditInternalID string, params UsersUploadFaceParams, ...) (*UsersUploadFaceResponse, error)
- type UsersSetAMLMonitoringParams
- type UsersSetAMLMonitoringResponse
- type UsersSetAMLMonitoringResponseEstimate
- type UsersSetAMLMonitoringResponseOutcomes
- type UsersSetAMLMonitoringResponseResults
- type UsersSetAMLMonitoringResponseResultsOutcome
- type UsersSetAMLMonitoringResponseStatus
- type UsersSetAMLMonitoringResponseTargetType
- type UsersSetOngoingMonitoringResponse
- type UsersSetOngoingMonitoringResponseEstimate
- type UsersSetOngoingMonitoringResponseOutcomes
- type UsersSetOngoingMonitoringResponseStatus
- type UsersUpdateParams
- type UsersUpdateParamsStatus
- type UsersUpdateStatusParams
- type UsersUpdateStatusParamsStatus
- type UsersUploadFaceParams
- type UsersUploadFaceResponse
- type VASPDirectoryEntry
- type VASPDirectoryEntryAliases
- type VASPDirectoryEntryAliasesKind
- type VASPDirectoryEntryContacts
- type VASPDirectoryEntryContactsScope
- type VASPDirectoryEntryContactsSource
- type VASPDirectoryEntryDdScoreBreakdown
- type VASPDirectoryEntryDdScoreSemantic
- type VASPDirectoryEntryDdStatus
- type VASPDirectoryEntryEntities
- type VASPDirectoryEntryEssentialChecks
- type VASPDirectoryEntryEssentialChecksChecks
- type VASPDirectoryEntryEssentialChecksChecksID
- type VASPDirectoryEntryEssentialChecksChecksStatus
- type VASPDirectoryEntryEssentialChecksLevel
- type VASPDirectoryEntryKind
- type VASPDirectoryEntryNetworks
- type VASPDirectoryEntryNetworksNetwork
- type VASPDirectoryEntryNetworksSource
- type VASPDirectoryEntryReachableRails
- type VASPDirectoryEntryResponsiveness
- type VASPDirectoryEntryResponsivenessStatus
- type VASPDirectoryEntryRiskLevel
- type VASPDirectoryEntryRoutes
- type VASPDirectoryEntryRoutesRail
- type VASPDirectoryEntryRoutesReason
- type VASPDirectoryEntryRoutesStatus
- type VASPDirectoryEntryRoutesVia
- type VASPDirectoryEntryUmbrella
- type VerifyEmailRequest
- type VerifyEmailResponse
- type WalletAddressEntry
- type WalletAddressEntryCreate
- type WalletAddressEntryUpdate
- type WalletAddressEntryUpdateParam
- type WalletAddressImportReport
- type WalletAddressImportReportRows
- type WalletAddressImportReportRowsStatus
- type WalletScreeningResult
- type WalletScreeningResultCounterpartyConnections
- type WalletScreeningResultDestinationOfFunds
- type WalletScreeningResultDestinationOfFundsExposureDirection
- type WalletScreeningResultDestinationOfFundsExposureType
- type WalletScreeningResultParam
- type WalletScreeningResultParamCounterpartyConnections
- type WalletScreeningResultParamDestinationOfFunds
- type WalletScreeningResultParamRiskFactors
- type WalletScreeningResultParamSourceOfFunds
- type WalletScreeningResultRiskFactors
- type WalletScreeningResultRiskFactorsDirection
- type WalletScreeningResultRiskFactorsExposureType
- type WalletScreeningResultRiskFactorsSource
- type WalletScreeningResultScreeningType
- type WalletScreeningResultSeverity
- type WalletScreeningResultSourceOfFunds
- type WalletScreeningResultSourceOfFundsExposureDirection
- type WalletScreeningResultSourceOfFundsExposureType
- type WalletScreeningResultStatus
- type WalletScreeningScreenParams
- type WalletScreeningScreenParamsBlockchain
- type WalletScreeningScreenParamsDirection
- type WalletScreeningService
- type WebhookConfig
- type WebhookConfigAvailableEvents
- type WebhookConfigCaptureMethod
- type WebhookConfigDestination
- type WebhookConfigDestinationWebhookVersion
- type WebhookConfigFaceRetentionPolicy
- type WebhookConfigWebhookVersion
- type WebhookDestinationDelivery
- type WebhookDestinationDeliveryDetail
- type WebhookEvent
- type WebhookVerificationError
- type WebhookVerificationReason
- type WebhooksDestinationsCreateParams
- type WebhooksDestinationsCreateParamsWebhookVersion
- type WebhooksDestinationsCreateResponse
- type WebhooksDestinationsCreateResponseEnvironment
- type WebhooksDestinationsCreateResponseHealthStatus
- type WebhooksDestinationsCreateResponseSummary
- type WebhooksDestinationsCreateResponseWebhookVersion
- type WebhooksDestinationsListDeliveriesParams
- type WebhooksDestinationsListResponse
- type WebhooksDestinationsListResponseDailyPoints
- type WebhooksDestinationsListResponseEnvironment
- type WebhooksDestinationsListResponseHealthStatus
- type WebhooksDestinationsListResponseWebhookVersion
- type WebhooksDestinationsRetrieveAnalyticsParams
- type WebhooksDestinationsRetrieveAnalyticsResponse
- type WebhooksDestinationsRetrieveAnalyticsResponsePoints
- type WebhooksDestinationsRetrieveAnalyticsResponseSummary
- type WebhooksDestinationsRetrieveResponse
- type WebhooksDestinationsRetrieveResponseEnvironment
- type WebhooksDestinationsRetrieveResponseHealthStatus
- type WebhooksDestinationsRetrieveResponseSummary
- type WebhooksDestinationsRetrieveResponseWebhookVersion
- type WebhooksDestinationsService
- func (r *WebhooksDestinationsService) Create(ctx context.Context, params WebhooksDestinationsCreateParams, ...) (*WebhooksDestinationsCreateResponse, error)
- func (r *WebhooksDestinationsService) Delete(ctx context.Context, destinationUUID string, opts ...option.RequestOption) error
- func (r *WebhooksDestinationsService) List(ctx context.Context, opts ...option.RequestOption) ([]WebhooksDestinationsListResponse, error)
- func (r *WebhooksDestinationsService) ListDeliveries(ctx context.Context, destinationUUID string, ...) (*Page[WebhookDestinationDelivery], error)
- func (r *WebhooksDestinationsService) ListDeliveriesAutoPaging(ctx context.Context, destinationUUID string, ...) *PageIterator[WebhookDestinationDelivery]
- func (r *WebhooksDestinationsService) ResendDelivery(ctx context.Context, destinationUUID string, deliveryUUID string, ...) (*WebhookDestinationDeliveryDetail, error)
- func (r *WebhooksDestinationsService) Retrieve(ctx context.Context, destinationUUID string, opts ...option.RequestOption) (*WebhooksDestinationsRetrieveResponse, error)
- func (r *WebhooksDestinationsService) RetrieveAnalytics(ctx context.Context, destinationUUID string, ...) (*WebhooksDestinationsRetrieveAnalyticsResponse, error)
- func (r *WebhooksDestinationsService) RetrieveDelivery(ctx context.Context, destinationUUID string, deliveryUUID string, ...) (*WebhookDestinationDeliveryDetail, error)
- func (r *WebhooksDestinationsService) Update(ctx context.Context, destinationUUID string, ...) (*WebhooksDestinationsUpdateResponse, error)
- type WebhooksDestinationsUpdateParams
- type WebhooksDestinationsUpdateParamsWebhookVersion
- type WebhooksDestinationsUpdateResponse
- type WebhooksDestinationsUpdateResponseEnvironment
- type WebhooksDestinationsUpdateResponseHealthStatus
- type WebhooksDestinationsUpdateResponseSummary
- type WebhooksDestinationsUpdateResponseWebhookVersion
- type WebhooksService
- type WebhooksUpdateConfigParams
- type WebhooksUpdateConfigParamsCaptureMethod
- type WebhooksUpdateConfigParamsFaceRetentionPolicy
- type WebhooksUpdateConfigParamsWebhookVersion
- type WorkflowDetail
- type WorkflowDetailStatus
- type WorkflowDetailWorkflowType
- type WorkflowListItem
- type WorkflowListItemCreatedBy
- type WorkflowListItemCreatedByType
- type WorkflowListItemStatus
- type WorkflowsListParams
- type WorkflowsService
- func (r *WorkflowsService) Create(ctx context.Context, params SimpleWorkflowRequest, ...) (*WorkflowDetail, error)
- func (r *WorkflowsService) Delete(ctx context.Context, settingsUUID string, opts ...option.RequestOption) error
- func (r *WorkflowsService) List(ctx context.Context, params WorkflowsListParams, opts ...option.RequestOption) (*Page[WorkflowListItem], error)
- func (r *WorkflowsService) ListAutoPaging(ctx context.Context, params WorkflowsListParams, opts ...option.RequestOption) *PageIterator[WorkflowListItem]
- func (r *WorkflowsService) Retrieve(ctx context.Context, settingsUUID string, opts ...option.RequestOption) (*WorkflowDetail, error)
- func (r *WorkflowsService) Update(ctx context.Context, settingsUUID string, params SimpleWorkflowUpdateRequest, ...) (*WorkflowDetail, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewAPIStatusError ¶
func NewAPIStatusError(e *APIStatusError) error
NewAPIStatusError returns the most specific error type for e.StatusCode: *BadRequestError for 400, *NotFoundError for 404, and so on, or e itself when no specific type exists. The other packages of this module use it so that every HTTP error has the same shape.
Types ¶
type AMLDatasetFreshness ¶
type AMLDatasetFreshness struct {
// When Didit read the dataset catalog this freshness comes from.
CapturedAt time.Time `json:"captured_at"`
// Opaque identifier of the AML data source. Treat it as an opaque string; do
// not branch on it.
Provider string `json:"provider"`
// Version identifier of the dataset catalog, when the source reports one.
CatalogVersion string `json:"catalog_version"`
// Freshness per dataset family. A family whose datasets reported no update date
// is absent rather than filled with `null`.
Sources AMLDatasetFreshnessSources `json:"sources"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLDatasetFreshness: How current the AML datasets were when a screening ran. Dates are never estimated.
func (*AMLDatasetFreshness) UnmarshalJSON ¶
func (r *AMLDatasetFreshness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLDatasetFreshness leniently.
type AMLDatasetFreshnessSources ¶
type AMLDatasetFreshnessSources struct {
Sanctions AMLDatasetSourceFreshness `json:"sanctions"`
PEP AMLDatasetSourceFreshness `json:"pep"`
Warnings AMLDatasetSourceFreshness `json:"warnings"`
AdverseMedia AMLDatasetSourceFreshness `json:"adverse_media"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLDatasetFreshnessSources: Freshness per dataset family. A family whose datasets reported no update date is absent rather than filled with `null`.
func (*AMLDatasetFreshnessSources) UnmarshalJSON ¶
func (r *AMLDatasetFreshnessSources) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLDatasetFreshnessSources leniently.
type AMLDatasetSourceFreshness ¶
type AMLDatasetSourceFreshness struct {
// Most recent update of any dataset in the family.
LastUpdatedAt time.Time `json:"last_updated_at"`
// Staleness bound: every dataset in the family is at least this current. `null`
// when at least one dataset in the family reported no update date, because the
// bound is then unknown.
OldestUpdatedAt time.Time `json:"oldest_updated_at"`
// Number of datasets in the family.
DatasetCount int64 `json:"dataset_count"`
// Number of those datasets that reported an update date.
DatedDatasetCount int64 `json:"dated_dataset_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLDatasetSourceFreshness: Freshness of one family of AML datasets.
func (*AMLDatasetSourceFreshness) UnmarshalJSON ¶
func (r *AMLDatasetSourceFreshness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLDatasetSourceFreshness leniently.
type AMLMonitoringRetrieveJobResponse ¶
type AMLMonitoringRetrieveJobResponse struct {
JobID string `json:"job_id"`
Status AMLMonitoringRetrieveJobResponseStatus `json:"status"`
// true when the job enables monitoring, false when it disables it.
IsEnabled bool `json:"is_enabled"`
// Which profile family the job toggles.
TargetType AMLMonitoringRetrieveJobResponseTargetType `json:"target_type"`
// Profiles the job processes.
Total int64 `json:"total"`
// Profiles processed so far.
Processed int64 `json:"processed"`
// Per-record outcome counters. Every selected profile resolves to exactly one
// counter; nothing is silently skipped.
Outcomes AMLMonitoringRetrieveJobResponseOutcomes `json:"outcomes"`
// One entry per processed profile, in processing order. Grows while the job
// runs; complete once status is COMPLETED. Recorded for jobs started through
// the API; a job started from the Business Console reports counters only.
Results []AMLMonitoringRetrieveJobResponseResults `json:"results"`
// Generic failure message when status is FAILED; the detailed cause is kept on
// the platform side.
Error string `json:"error"`
CreatedAt time.Time `json:"created_at"`
CompletedAt time.Time `json:"completed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLMonitoringRetrieveJobResponse is a response object.
func (*AMLMonitoringRetrieveJobResponse) UnmarshalJSON ¶
func (r *AMLMonitoringRetrieveJobResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLMonitoringRetrieveJobResponse leniently.
type AMLMonitoringRetrieveJobResponseOutcomes ¶
type AMLMonitoringRetrieveJobResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled on it.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active; nothing changed and nothing was billed.
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring turned off across every AML screening of the profile.
Disabled int64 `json:"disabled"`
// Skipped: the profile lacks the full name, date of birth and country (users)
// or a name (businesses) needed to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application, no screening is created.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening could not be completed; retry later.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out while the job was running.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLMonitoringRetrieveJobResponseOutcomes: Per-record outcome counters. Every selected profile resolves to exactly one counter; nothing is silently skipped.
func (*AMLMonitoringRetrieveJobResponseOutcomes) UnmarshalJSON ¶
func (r *AMLMonitoringRetrieveJobResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLMonitoringRetrieveJobResponseOutcomes leniently.
type AMLMonitoringRetrieveJobResponseResults ¶
type AMLMonitoringRetrieveJobResponseResults struct {
// Didit internal id of the profile.
DiditInternalID string `json:"didit_internal_id"`
// Your own identifier for the profile.
VendorData string `json:"vendor_data"`
Outcome AMLMonitoringRetrieveJobResponseResultsOutcome `json:"outcome"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLMonitoringRetrieveJobResponseResults is a response object.
func (*AMLMonitoringRetrieveJobResponseResults) UnmarshalJSON ¶
func (r *AMLMonitoringRetrieveJobResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLMonitoringRetrieveJobResponseResults leniently.
type AMLMonitoringRetrieveJobResponseResultsOutcome ¶
type AMLMonitoringRetrieveJobResponseResultsOutcome string
AMLMonitoringRetrieveJobResponseResultsOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLMonitoringRetrieveJobResponseResultsOutcomeEnabled AMLMonitoringRetrieveJobResponseResultsOutcome = "enabled" AMLMonitoringRetrieveJobResponseResultsOutcomeScreenedAndEnabled AMLMonitoringRetrieveJobResponseResultsOutcome = "screened_and_enabled" AMLMonitoringRetrieveJobResponseResultsOutcomeAlreadyEnabled AMLMonitoringRetrieveJobResponseResultsOutcome = "already_enabled" AMLMonitoringRetrieveJobResponseResultsOutcomeDisabled AMLMonitoringRetrieveJobResponseResultsOutcome = "disabled" AMLMonitoringRetrieveJobResponseResultsOutcomeSkippedNoIdentityData AMLMonitoringRetrieveJobResponseResultsOutcome = "skipped_no_identity_data" AMLMonitoringRetrieveJobResponseResultsOutcomeSkippedBlocked AMLMonitoringRetrieveJobResponseResultsOutcome = "skipped_blocked" AMLMonitoringRetrieveJobResponseResultsOutcomeSkippedSandbox AMLMonitoringRetrieveJobResponseResultsOutcome = "skipped_sandbox" AMLMonitoringRetrieveJobResponseResultsOutcomeFailedProvider AMLMonitoringRetrieveJobResponseResultsOutcome = "failed_provider" AMLMonitoringRetrieveJobResponseResultsOutcomeFailedInsufficientBalance AMLMonitoringRetrieveJobResponseResultsOutcome = "failed_insufficient_balance" )
Known values of AMLMonitoringRetrieveJobResponseResultsOutcome.
type AMLMonitoringRetrieveJobResponseStatus ¶
type AMLMonitoringRetrieveJobResponseStatus string
AMLMonitoringRetrieveJobResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLMonitoringRetrieveJobResponseStatusPending AMLMonitoringRetrieveJobResponseStatus = "PENDING" AMLMonitoringRetrieveJobResponseStatusProcessing AMLMonitoringRetrieveJobResponseStatus = "PROCESSING" AMLMonitoringRetrieveJobResponseStatusCompleted AMLMonitoringRetrieveJobResponseStatus = "COMPLETED" AMLMonitoringRetrieveJobResponseStatusFailed AMLMonitoringRetrieveJobResponseStatus = "FAILED" )
Known values of AMLMonitoringRetrieveJobResponseStatus.
type AMLMonitoringRetrieveJobResponseTargetType ¶
type AMLMonitoringRetrieveJobResponseTargetType string
AMLMonitoringRetrieveJobResponseTargetType: Which profile family the job toggles.
AMLMonitoringRetrieveJobResponseTargetType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLMonitoringRetrieveJobResponseTargetTypeUser AMLMonitoringRetrieveJobResponseTargetType = "user" AMLMonitoringRetrieveJobResponseTargetTypeBusiness AMLMonitoringRetrieveJobResponseTargetType = "business" )
Known values of AMLMonitoringRetrieveJobResponseTargetType.
type AMLMonitoringService ¶
type AMLMonitoringService struct {
// contains filtered or unexported fields
}
AMLMonitoringService holds the aml_monitoring operations. Use it through Client.AMLMonitoring.
func (*AMLMonitoringService) RetrieveJob ¶
func (r *AMLMonitoringService) RetrieveJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*AMLMonitoringRetrieveJobResponse, error)
RetrieveJob: Get AML ongoing monitoring job.
Status, outcome counters and per-record results of a monitoring toggle job started from `POST /v3/users/aml-monitoring/` or `POST /v3/businesses/aml-monitoring/`. Poll every couple of seconds while `status` is `PENDING` or `PROCESSING`; `results` is complete once it is `COMPLETED`.
GET /v3/aml-monitoring/jobs/{job_id}/
type AMLRetrieveDatasetFreshnessResponse ¶
type AMLRetrieveDatasetFreshnessResponse struct {
// The latest reading, or `null` when `availability` is not `available`.
DatasetFreshness AMLDatasetFreshness `json:"dataset_freshness"`
// `available` when a reading exists; `not_configured` when dataset dates are
// not collected in this environment; `not_yet_collected` when collection is set
// up but no reading exists yet.
Availability AMLRetrieveDatasetFreshnessResponseAvailability `json:"availability"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLRetrieveDatasetFreshnessResponse is a response object.
func (*AMLRetrieveDatasetFreshnessResponse) UnmarshalJSON ¶
func (r *AMLRetrieveDatasetFreshnessResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLRetrieveDatasetFreshnessResponse leniently.
type AMLRetrieveDatasetFreshnessResponseAvailability ¶
type AMLRetrieveDatasetFreshnessResponseAvailability string
AMLRetrieveDatasetFreshnessResponseAvailability: `available` when a reading exists; `not_configured` when dataset dates are not collected in this environment; `not_yet_collected` when collection is set up but no reading exists yet.
AMLRetrieveDatasetFreshnessResponseAvailability is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLRetrieveDatasetFreshnessResponseAvailabilityAvailable AMLRetrieveDatasetFreshnessResponseAvailability = "available" AMLRetrieveDatasetFreshnessResponseAvailabilityNotConfigured AMLRetrieveDatasetFreshnessResponseAvailability = "not_configured" AMLRetrieveDatasetFreshnessResponseAvailabilityNotYetCollected AMLRetrieveDatasetFreshnessResponseAvailability = "not_yet_collected" )
Known values of AMLRetrieveDatasetFreshnessResponseAvailability.
type AMLScreenParams ¶
type AMLScreenParams struct {
// Full name of the person or company to screen. Minimum **2 characters** - the
// screening provider's own floor. A shorter or blank name returns `400` on this
// field before any screening runs, so nothing is billed. Required.
FullName string `json:"full_name"`
// Type of entity to screen. Defaults to `person`.
EntityType Opt[AMLScreenParamsEntityType] `json:"entity_type"`
// Date of birth (persons) or incorporation date (companies), `YYYY-MM-DD`.
// Improves match precision via the DOB weight.
DateOfBirth Opt[string] `json:"date_of_birth"`
// ISO 3166-1 **alpha-2** country code (e.g. `ES`). Invalid codes return `400`.
// Improves match precision via the country weight.
Nationality Opt[string] `json:"nationality"`
// Identity document number. Not weighted - acts as a golden key: an exact match
// overrides the hit's `match_score` to 100, a hard mismatch penalizes it. Sent
// to the screening provider as a search filter only when it is **2-50
// characters**; a value outside that range is accepted and stored, and the
// screening still runs and is billed, just not narrowed by document number.
DocumentNumber Opt[string] `json:"document_number"`
// Risk-score threshold at or below which the result is `Approved`. Must be ≤
// `aml_score_review_threshold` (else `400`).
AMLScoreApproveThreshold Opt[float64] `json:"aml_score_approve_threshold"`
// Risk-score threshold above which the result is `Declined`. Scores between the
// two thresholds produce `In Review`.
AMLScoreReviewThreshold Opt[float64] `json:"aml_score_review_threshold"`
// Weight of name similarity in the per-hit match score. The three weights must
// sum to exactly 100 (else `400`).
AMLNameWeight Opt[int64] `json:"aml_name_weight"`
// Weight of date of birth in the per-hit match score.
AMLDOBWeight Opt[int64] `json:"aml_dob_weight"`
// Weight of country/nationality in the per-hit match score.
AMLCountryWeight Opt[int64] `json:"aml_country_weight"`
// Per-hit cutoff: hits with `match_score` below this are `False Positive`
// (excluded from risk assessment); at or above are `Unreviewed` possible
// matches.
AMLMatchScoreThreshold Opt[int64] `json:"aml_match_score_threshold"`
// Also search news media for negative coverage. Adds up to ~30 s of latency
// while results are gathered - use a ≥60 s client timeout.
IncludeAdverseMedia Opt[bool] `json:"include_adverse_media"`
// Keep re-screening this profile and push changes via webhook. Requires
// `save_api_request=true` (else `400`).
IncludeOngoingMonitoring Opt[bool] `json:"include_ongoing_monitoring"`
// Persist the screening as a session (console visibility, decision endpoint,
// webhooks, hit review). Set to `false` for a stateless check.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Your identifier for the screened user; echoed back and stored with the
// session.
VendorData Opt[string] `json:"vendor_data"`
// Free-form JSON stored with the request and echoed back.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox-only scenario slug. Only accepted when the API key belongs to a
// sandbox-mode application; rejected on live applications. A standalone
// screening has no session to arm, so the slug goes on the screening request
// itself: `decline_aml_hit` returns one production-shaped hit and settles the
// screening as `Declined`, `review_aml_possible_match` settles it `In Review`,
// and a scenario that arms no AML outcome leaves the screening clean. See the
// scenario catalog at GET /v1/sandbox/scenarios/ or [Sandbox & Test
// Data](/integration/sandbox-testing).
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// Optional retry-safety key, up to 255 characters. Reusing the same key with
// the same request body returns the original response without running or
// billing a second screening. Reusing the key with a different body returns
// `409`.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
AMLScreenParams holds the parameters of Client.AML.Screen.
func (AMLScreenParams) MarshalJSON ¶
func (r AMLScreenParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AMLScreenParamsEntityType ¶
type AMLScreenParamsEntityType string
AMLScreenParamsEntityType: Type of entity to screen. Defaults to `person`.
AMLScreenParamsEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreenParamsEntityTypePerson AMLScreenParamsEntityType = "person" AMLScreenParamsEntityTypeCompany AMLScreenParamsEntityType = "company" )
Known values of AMLScreenParamsEntityType.
type AMLScreenResponse ¶
type AMLScreenResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
AML AMLScreenResponseAML `json:"aml"`
// Echo of the `vendor_data` you sent.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponse is a response object.
func (*AMLScreenResponse) UnmarshalJSON ¶
func (r *AMLScreenResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponse leniently.
type AMLScreenResponseAML ¶
type AMLScreenResponseAML struct {
// `Declined` when `score` > `aml_score_review_threshold`; `In Review` when
// `score` > `aml_score_approve_threshold`; `Approved` otherwise (including when
// no score is available).
Status AMLScreenResponseAMLStatus `json:"status"`
// Number of entries in `hits`.
TotalHits int64 `json:"total_hits"`
// Echo of the screened entity type.
EntityType AMLScreenResponseAMLEntityType `json:"entity_type"`
Hits []AMLScreenResponseAMLHits `json:"hits"`
// Overall AML risk score (0-100): the highest `risk_score` among hits that are
// not False Positives. Drives `status` via the two thresholds.
Score float64 `json:"score"`
// Echo of what was screened: `full_name`, `date_of_birth`, `nationality`,
// `document_number` (absent fields are `null`).
ScreenedData AMLScreenResponseAMLScreenedData `json:"screened_data"`
// Contains a `POSSIBLE_MATCH_FOUND` warning whenever `score` is non-zero and ≥
// `aml_score_approve_threshold` (a score of exactly 0 never warns); empty
// otherwise.
Warnings []AMLScreenResponseAMLWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAML is a response object.
func (*AMLScreenResponseAML) UnmarshalJSON ¶
func (r *AMLScreenResponseAML) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAML leniently.
type AMLScreenResponseAMLEntityType ¶
type AMLScreenResponseAMLEntityType string
AMLScreenResponseAMLEntityType: Echo of the screened entity type.
AMLScreenResponseAMLEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreenResponseAMLEntityTypePerson AMLScreenResponseAMLEntityType = "person" AMLScreenResponseAMLEntityTypeCompany AMLScreenResponseAMLEntityType = "company" )
Known values of AMLScreenResponseAMLEntityType.
type AMLScreenResponseAMLHits ¶
type AMLScreenResponseAMLHits struct {
// Stable identifier of the matched entity in the screening datasets.
ID string `json:"id"`
// Source URL for the matched entity, when available.
URL string `json:"url"`
// Legacy exact-match flag. Prefer `match_score` + `review_status`.
Match bool `json:"match"`
// DEPRECATED weighted match score in the 0-1 range. Use `match_score` instead.
Score float64 `json:"score"`
// Identity confidence (0-100). Compared against `aml_match_score_threshold` to
// split False Positives from Possible Matches.
MatchScore float64 `json:"match_score"`
// Entity risk score (0-100). The highest `risk_score` among non-false-positive
// hits becomes the top-level `aml.score`.
RiskScore float64 `json:"risk_score"`
Target bool `json:"target"`
// Display name of the matched entity.
Caption string `json:"caption"`
// Datasets the entity appears in (e.g. `PEP`, `PEP Level 1`, sanctions list
// names).
Datasets []string `json:"datasets"`
Features map[string]any `json:"features"`
// Entity profile: `name`, `alias`, `notes`, `gender`, `birthDate`,
// `birthPlace`, `nationality`, `position`, and other biographical arrays (each
// nullable).
Properties map[string]any `json:"properties"`
// Name of the related close associate through which the entity was matched,
// when the hit is an RCA.
RcaName string `json:"rca_name"`
// PEP list entries backing this hit.
PEPMatches []AMLScreenResponseAMLHitsPEPMatches `json:"pep_matches"`
// Sanctions list entries backing this hit (same backing-list shape as
// `pep_matches`, plus sanction-specific fields).
SanctionMatches []map[string]any `json:"sanction_matches"`
// Warning/watchlist entries backing this hit.
WarningMatches []map[string]any `json:"warning_matches"`
// Adverse-media articles. Populated only when `include_adverse_media=true`.
AdverseMediaMatches []AMLScreenResponseAMLHitsAdverseMediaMatches `json:"adverse_media_matches"`
// Aggregated adverse-media sentiment for the entity (`sentiment`,
// `sentiment_score`, `adverse_keywords` frequency map). Populated only when
// `include_adverse_media=true`.
AdverseMediaDetails map[string]any `json:"adverse_media_details"`
// When the entity first appeared in the datasets.
FirstSeen time.Time `json:"first_seen"`
// Most recent dataset refresh that included the entity.
LastSeen time.Time `json:"last_seen"`
// Known relationships of the matched entity (family, associates, companies).
LinkedEntities []AMLScreenResponseAMLHitsLinkedEntities `json:"linked_entities"`
// Per-dimension risk breakdown (`crimes`, `countries`, `categories`,
// `custom_list`), each with `score`, `weightage`, `risk_level`, and a
// `risk_scores` map.
RiskView map[string]any `json:"risk_view"`
// Free-form extra context, e.g. a `flag_summary` array explaining why the
// entity is flagged.
AdditionalInformation map[string]any `json:"additional_information"`
// `False Positive` - `match_score` below `aml_match_score_threshold`, excluded
// from risk assessment. `Unreviewed` - possible match awaiting review.
// `Confirmed Match` / `Inconclusive` - set manually by a reviewer (via the
// Business Console) on saved sessions; that review capability is not part of
// this spec.
ReviewStatus AMLScreenResponseAMLHitsReviewStatus `json:"review_status"`
// How `match_score` was computed. Name, date of birth, and country each
// contribute `<component>_score` × `<component>_weight_normalized` points;
// weights are re-normalized when a component is missing from the screened data.
// The document number is not weighted - it acts as a 'golden key': `MATCH`
// overrides the score to 100, `NEUTRAL` leaves it unchanged, `HARD_MISMATCH`
// applies a penalty.
ScoreBreakdown AMLScreenResponseAMLHitsScoreBreakdown `json:"score_breakdown"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLHits: One screening hit. `match_score` (0-100) measures identity confidence - hits below `aml_match_score_threshold` are tagged `review_status: "False Positive"` and excluded from the risk assessment; hits at or above it are `"Unreviewed"` possible matches. `risk_score` (0-100) measures how risky the matched entity is and drives the top-level `aml.score`.
func (*AMLScreenResponseAMLHits) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLHits) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLHits leniently.
type AMLScreenResponseAMLHitsAdverseMediaMatches ¶
type AMLScreenResponseAMLHitsAdverseMediaMatches struct {
Headline string `json:"headline"`
Summary string `json:"summary"`
Sentiment string `json:"sentiment"`
SentimentScore float64 `json:"sentiment_score"`
SourceURL string `json:"source_url"`
Thumbnail string `json:"thumbnail"`
Country string `json:"country"`
AuthorName string `json:"author_name"`
PublicationDate string `json:"publication_date"`
AdverseKeywords []string `json:"adverse_keywords"`
OtherSources []string `json:"other_sources"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLHitsAdverseMediaMatches is a response object.
func (*AMLScreenResponseAMLHitsAdverseMediaMatches) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLHitsAdverseMediaMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLHitsAdverseMediaMatches leniently.
type AMLScreenResponseAMLHitsLinkedEntities ¶
type AMLScreenResponseAMLHitsLinkedEntities struct {
Name []string `json:"name"`
Relation []string `json:"relation"`
Status []string `json:"status"`
Details []string `json:"details"`
Active []string `json:"active"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLHitsLinkedEntities is a response object.
func (*AMLScreenResponseAMLHitsLinkedEntities) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLHitsLinkedEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLHitsLinkedEntities leniently.
type AMLScreenResponseAMLHitsPEPMatches ¶
type AMLScreenResponseAMLHitsPEPMatches struct {
ListName string `json:"list_name"`
Publisher string `json:"publisher"`
SourceURL string `json:"source_url"`
Description string `json:"description"`
MatchedName string `json:"matched_name"`
PEPPosition string `json:"pep_position"`
DateOfBirth string `json:"date_of_birth"`
PlaceOfBirth string `json:"place_of_birth"`
Aliases []string `json:"aliases"`
Education []string `json:"education"`
OtherSources []string `json:"other_sources"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLHitsPEPMatches is a response object.
func (*AMLScreenResponseAMLHitsPEPMatches) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLHitsPEPMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLHitsPEPMatches leniently.
type AMLScreenResponseAMLHitsReviewStatus ¶
type AMLScreenResponseAMLHitsReviewStatus string
AMLScreenResponseAMLHitsReviewStatus: `False Positive` - `match_score` below `aml_match_score_threshold`, excluded from risk assessment. `Unreviewed` - possible match awaiting review. `Confirmed Match` / `Inconclusive` - set manually by a reviewer (via the Business Console) on saved sessions; that review capability is not part of this spec.
AMLScreenResponseAMLHitsReviewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreenResponseAMLHitsReviewStatusFalsePositive AMLScreenResponseAMLHitsReviewStatus = "False Positive" AMLScreenResponseAMLHitsReviewStatusUnreviewed AMLScreenResponseAMLHitsReviewStatus = "Unreviewed" AMLScreenResponseAMLHitsReviewStatusConfirmedMatch AMLScreenResponseAMLHitsReviewStatus = "Confirmed Match" AMLScreenResponseAMLHitsReviewStatusInconclusive AMLScreenResponseAMLHitsReviewStatus = "Inconclusive" )
Known values of AMLScreenResponseAMLHitsReviewStatus.
type AMLScreenResponseAMLHitsScoreBreakdown ¶
type AMLScreenResponseAMLHitsScoreBreakdown struct {
// Raw name similarity (0-100).
NameScore int64 `json:"name_score"`
// Configured name weight (`aml_name_weight`).
NameWeight int64 `json:"name_weight"`
// Name weight after re-normalization (0-100).
NameWeightNormalized float64 `json:"name_weight_normalized"`
// Points the name contributed to `total_score`.
NameContribution float64 `json:"name_contribution"`
// Date-of-birth score as a percentage of its weight (−100 to 100).
DOBScore int64 `json:"dob_score"`
// Configured DOB weight (`aml_dob_weight`).
DOBWeight int64 `json:"dob_weight"`
// DOB weight after re-normalization (0-100).
DOBWeightNormalized float64 `json:"dob_weight_normalized"`
// Points the DOB contributed to `total_score`.
DOBContribution float64 `json:"dob_contribution"`
// Country score as a percentage of its weight (−100 to 100).
CountryScore int64 `json:"country_score"`
// Configured country weight (`aml_country_weight`).
CountryWeight int64 `json:"country_weight"`
// Country weight after re-normalization (0-100).
CountryWeightNormalized float64 `json:"country_weight_normalized"`
// Points the country contributed to `total_score`.
CountryContribution float64 `json:"country_contribution"`
// Golden-key result for the document number comparison.
DocumentNumberMatchType AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType `json:"document_number_match_type"`
// Human-readable description of the document-number effect.
DocumentNumberEffect string `json:"document_number_effect"`
// Final weighted match score (0-100) - mirrors `match_score`.
TotalScore int64 `json:"total_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLHitsScoreBreakdown: How `match_score` was computed. Name, date of birth, and country each contribute `<component>_score` × `<component>_weight_normalized` points; weights are re-normalized when a component is missing from the screened data. The document number is not weighted - it acts as a 'golden key': `MATCH` overrides the score to 100, `NEUTRAL` leaves it unchanged, `HARD_MISMATCH` applies a penalty.
func (*AMLScreenResponseAMLHitsScoreBreakdown) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLHitsScoreBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLHitsScoreBreakdown leniently.
type AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType ¶
type AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType string
AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType: Golden-key result for the document number comparison.
AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchTypeMatch AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType = "MATCH" AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchTypeNeutral AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType = "NEUTRAL" AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchTypeHardMismatch AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType = "HARD_MISMATCH" )
Known values of AMLScreenResponseAMLHitsScoreBreakdownDocumentNumberMatchType.
type AMLScreenResponseAMLScreenedData ¶
type AMLScreenResponseAMLScreenedData struct {
FullName string `json:"full_name"`
DateOfBirth string `json:"date_of_birth"`
Nationality string `json:"nationality"`
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLScreenedData: Echo of what was screened: `full_name`, `date_of_birth`, `nationality`, `document_number` (absent fields are `null`).
func (*AMLScreenResponseAMLScreenedData) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLScreenedData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLScreenedData leniently.
type AMLScreenResponseAMLStatus ¶
type AMLScreenResponseAMLStatus string
AMLScreenResponseAMLStatus: `Declined` when `score` > `aml_score_review_threshold`; `In Review` when `score` > `aml_score_approve_threshold`; `Approved` otherwise (including when no score is available).
AMLScreenResponseAMLStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreenResponseAMLStatusApproved AMLScreenResponseAMLStatus = "Approved" AMLScreenResponseAMLStatusInReview AMLScreenResponseAMLStatus = "In Review" AMLScreenResponseAMLStatusDeclined AMLScreenResponseAMLStatus = "Declined" )
Known values of AMLScreenResponseAMLStatus.
type AMLScreenResponseAMLWarnings ¶
type AMLScreenResponseAMLWarnings struct {
// Feature that raised the warning.
Feature string `json:"feature"`
// Machine-readable risk identifier.
Risk string `json:"risk"`
// Extra context for the warning, when available.
AdditionalData map[string]any `json:"additional_data"`
// `warning`, `information`, or `error` - how the risk affected the outcome.
LogType string `json:"log_type"`
// One-line human-readable summary.
ShortDescription string `json:"short_description"`
// Full human-readable explanation.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreenResponseAMLWarnings is a response object.
func (*AMLScreenResponseAMLWarnings) UnmarshalJSON ¶
func (r *AMLScreenResponseAMLWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreenResponseAMLWarnings leniently.
type AMLScreening ¶
type AMLScreening struct {
// Unique identifier for this AML step in the workflow graph.
NodeID string `json:"node_id"`
// Feature-level status of this AML screening. Independent of the top-level
// session `status` - a session can reach its overall decision while an
// individual feature stays `In Review`.
Status AMLScreeningStatus `json:"status"`
// Total number of matches found
TotalHits int64 `json:"total_hits"`
// Type of entity screened: person or company
EntityType string `json:"entity_type"`
Hits []AMLScreeningHits `json:"hits"`
// Overall AML screening score - the highest risk score across all hits (float,
// 0-100). `null` until computed.
Score float64 `json:"score"`
ScreenedData AMLScreeningScreenedData `json:"screened_data"`
// Whether AML ongoing monitoring is enabled for this screening. When `true`,
// the entity is re-screened periodically and any new hits update the report.
IsOngoingMonitoringEnabled bool `json:"is_ongoing_monitoring_enabled"`
// Date (YYYY-MM-DD) when this ongoing-monitoring subscription will next be
// billed. Computed as the date of the last ongoing-monitoring billing plus 365
// days when `is_ongoing_monitoring_enabled = true`; otherwise `null`. This is a
// billing date, not a screening date - use `last_ongoing_screening_at` for
// that.
NextOngoingMonitoringBillDate string `json:"next_ongoing_monitoring_bill_date"`
// When ongoing monitoring last completed a re-screening of this record, whether
// or not the result changed. `null` when the record has never been re-screened;
// it is never back-filled from the enablement or billing date.
LastOngoingScreeningAt time.Time `json:"last_ongoing_screening_at"`
// The most recent AML dataset update date the provider reported at the time of
// that screening. `null` when the provider reported no dataset dates; never
// estimated.
LastOngoingScreeningDatasetsUpdatedAt time.Time `json:"last_ongoing_screening_datasets_updated_at"`
Warnings []AMLScreeningWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreening is a response object.
func (*AMLScreening) UnmarshalJSON ¶
func (r *AMLScreening) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreening leniently.
type AMLScreeningHits ¶
type AMLScreeningHits struct {
// Unique identifier of the match
ID string `json:"id"`
// Source URL for the match
URL string `json:"url"`
// Whether this is a confirmed match
Match bool `json:"match"`
// Deprecated weighted match score in the 0-1 range (e.g. `0.73`). Use
// `match_score` (0-100) instead.
Score float64 `json:"score"`
// Whether the matched entity is the direct target of the listing (as opposed to
// a related party). `null` when the source does not specify it.
Target bool `json:"target"`
// Caption or title of the match
Caption string `json:"caption"`
// List of dataset categories where the match was found. Indicates whether the
// entity appeared in PEP lists (with level), sanctions databases, adverse
// media, warnings/regulatory enforcement, or other compliance datasets.
Datasets []AMLScreeningHitsDatasets `json:"datasets"`
// Additional features of the match
Features map[string]any `json:"features"`
// RCA name if applicable
RcaName string `json:"rca_name"`
// Date when match was last seen
LastSeen time.Time `json:"last_seen"`
RiskView AMLScreeningHitsRiskView `json:"risk_view"`
// Date when match was first seen
FirstSeen time.Time `json:"first_seen"`
Properties AMLScreeningHitsProperties `json:"properties"`
// Weighted identity confidence score (0-100) calculated from name similarity,
// date of birth, and country matching. Used to determine if hit is a False
// Positive or Possible Match.
MatchScore float64 `json:"match_score"`
// Entity risk score (0-100). Used to determine final AML status (Approved/In
// Review/Declined) based on the highest risk_score among non-False-Positive
// hits.
RiskScore float64 `json:"risk_score"`
// Review status for this hit. Can be 'Unreviewed', 'Confirmed Match', 'False
// Positive', or 'Inconclusive'.
ReviewStatus AMLScreeningHitsReviewStatus `json:"review_status"`
// Detailed breakdown of how the match_score was calculated.
ScoreBreakdown AMLScreeningHitsScoreBreakdown `json:"score_breakdown"`
PEPMatches []AMLScreeningHitsPEPMatches `json:"pep_matches"`
LinkedEntities []AMLScreeningHitsLinkedEntities `json:"linked_entities"`
// List of warning and regulatory enforcement matches. Includes entries from
// categories: Warning, SIP, Warnings and Regulatory Enforcement, Fitness and
// Probity, SIE, and Insolvency.
WarningMatches []AMLScreeningHitsWarningMatches `json:"warning_matches"`
// List of sanction list matches found for this entity.
SanctionMatches []AMLScreeningHitsSanctionMatches `json:"sanction_matches"`
AdverseMediaDetails AMLScreeningHitsAdverseMediaDetails `json:"adverse_media_details"`
AdverseMediaMatches []AMLScreeningHitsAdverseMediaMatches `json:"adverse_media_matches"`
AdditionalInformation map[string]any `json:"additional_information"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHits is a response object.
func (*AMLScreeningHits) UnmarshalJSON ¶
func (r *AMLScreeningHits) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHits leniently.
type AMLScreeningHitsAdverseMediaDetails ¶
type AMLScreeningHitsAdverseMediaDetails struct {
Sentiment string `json:"sentiment"`
EntityType string `json:"entity_type"`
SentimentScore int64 `json:"sentiment_score"`
AdverseKeywords map[string]int64 `json:"adverse_keywords"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsAdverseMediaDetails is a response object.
func (*AMLScreeningHitsAdverseMediaDetails) UnmarshalJSON ¶
func (r *AMLScreeningHitsAdverseMediaDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsAdverseMediaDetails leniently.
type AMLScreeningHitsAdverseMediaMatches ¶
type AMLScreeningHitsAdverseMediaMatches struct {
Country string `json:"country"`
Summary string `json:"summary"`
Headline string `json:"headline"`
Sentiment string `json:"sentiment"`
Thumbnail string `json:"thumbnail"`
SourceURL string `json:"source_url"`
AuthorName string `json:"author_name"`
OtherSources []string `json:"other_sources"`
AdverseKeywords []string `json:"adverse_keywords"`
SentimentScore int64 `json:"sentiment_score"`
PublicationDate time.Time `json:"publication_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsAdverseMediaMatches is a response object.
func (*AMLScreeningHitsAdverseMediaMatches) UnmarshalJSON ¶
func (r *AMLScreeningHitsAdverseMediaMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsAdverseMediaMatches leniently.
type AMLScreeningHitsDatasets ¶
type AMLScreeningHitsDatasets string
AMLScreeningHitsDatasets is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningHitsDatasetsPEP AMLScreeningHitsDatasets = "PEP" AMLScreeningHitsDatasetsPEPLevel1 AMLScreeningHitsDatasets = "PEP Level 1" AMLScreeningHitsDatasetsPEPLevel2 AMLScreeningHitsDatasets = "PEP Level 2" AMLScreeningHitsDatasetsPEPLevel3 AMLScreeningHitsDatasets = "PEP Level 3" AMLScreeningHitsDatasetsPEPLevel4 AMLScreeningHitsDatasets = "PEP Level 4" AMLScreeningHitsDatasetsSanctions AMLScreeningHitsDatasets = "Sanctions" AMLScreeningHitsDatasetsAdverseMedia AMLScreeningHitsDatasets = "Adverse Media" AMLScreeningHitsDatasetsWarningsAndRegulatoryEnforcement AMLScreeningHitsDatasets = "Warnings and Regulatory Enforcement" AMLScreeningHitsDatasetsFitnessAndProbity AMLScreeningHitsDatasets = "Fitness and Probity" AMLScreeningHitsDatasetsSip AMLScreeningHitsDatasets = "SIP" AMLScreeningHitsDatasetsSie AMLScreeningHitsDatasets = "SIE" AMLScreeningHitsDatasetsInsolvency AMLScreeningHitsDatasets = "Insolvency" )
Known values of AMLScreeningHitsDatasets.
type AMLScreeningHitsLinkedEntities ¶
type AMLScreeningHitsLinkedEntities struct {
Name []string `json:"name"`
Active []string `json:"active"`
Status []string `json:"status"`
Details []string `json:"details"`
Relation []string `json:"relation"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsLinkedEntities is a response object.
func (*AMLScreeningHitsLinkedEntities) UnmarshalJSON ¶
func (r *AMLScreeningHitsLinkedEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsLinkedEntities leniently.
type AMLScreeningHitsPEPMatches ¶
type AMLScreeningHitsPEPMatches struct {
Aliases []string `json:"aliases"`
Education []string `json:"education"`
ListName string `json:"list_name"`
Publisher string `json:"publisher"`
SourceURL string `json:"source_url"`
Description string `json:"description"`
MatchedName string `json:"matched_name"`
PEPPosition string `json:"pep_position"`
DateOfBirth string `json:"date_of_birth"`
OtherSources []string `json:"other_sources"`
PlaceOfBirth string `json:"place_of_birth"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsPEPMatches is a response object.
func (*AMLScreeningHitsPEPMatches) UnmarshalJSON ¶
func (r *AMLScreeningHitsPEPMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsPEPMatches leniently.
type AMLScreeningHitsProperties ¶
type AMLScreeningHitsProperties struct {
Name []string `json:"name"`
Alias []string `json:"alias"`
Notes []string `json:"notes"`
Title string `json:"title"`
Gender []string `json:"gender"`
Height string `json:"height"`
Topics string `json:"topics"`
Weight string `json:"weight"`
Address string `json:"address"`
Country string `json:"country"`
Website string `json:"website"`
EyeColor string `json:"eyeColor"`
Keywords string `json:"keywords"`
LastName []string `json:"lastName"`
Position string `json:"position"`
Religion string `json:"religion"`
BirthDate []string `json:"birthDate"`
Education []string `json:"education"`
Ethnicity string `json:"ethnicity"`
FirstName []string `json:"firstName"`
HairColor string `json:"hairColor"`
WeakAlias string `json:"weakAlias"`
BirthPlace []string `json:"birthPlace"`
ModifiedAt string `json:"modifiedAt"`
WikidataID string `json:"wikidataId"`
Citizenship string `json:"citizenship"`
Nationality string `json:"nationality"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsProperties is a response object.
func (*AMLScreeningHitsProperties) UnmarshalJSON ¶
func (r *AMLScreeningHitsProperties) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsProperties leniently.
type AMLScreeningHitsReviewStatus ¶
type AMLScreeningHitsReviewStatus string
AMLScreeningHitsReviewStatus: Review status for this hit. Can be 'Unreviewed', 'Confirmed Match', 'False Positive', or 'Inconclusive'.
AMLScreeningHitsReviewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningHitsReviewStatusUnreviewed AMLScreeningHitsReviewStatus = "Unreviewed" AMLScreeningHitsReviewStatusConfirmedMatch AMLScreeningHitsReviewStatus = "Confirmed Match" AMLScreeningHitsReviewStatusFalsePositive AMLScreeningHitsReviewStatus = "False Positive" AMLScreeningHitsReviewStatusInconclusive AMLScreeningHitsReviewStatus = "Inconclusive" )
Known values of AMLScreeningHitsReviewStatus.
type AMLScreeningHitsRiskView ¶
type AMLScreeningHitsRiskView struct {
Crimes AMLScreeningHitsRiskViewCrimes `json:"crimes"`
Countries AMLScreeningHitsRiskViewCountries `json:"countries"`
Categories AMLScreeningHitsRiskViewCategories `json:"categories"`
CustomList map[string]any `json:"custom_list"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsRiskView is a response object.
func (*AMLScreeningHitsRiskView) UnmarshalJSON ¶
func (r *AMLScreeningHitsRiskView) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsRiskView leniently.
type AMLScreeningHitsRiskViewCategories ¶
type AMLScreeningHitsRiskViewCategories struct {
Score int64 `json:"score"`
Weightage int64 `json:"weightage"`
RiskLevel string `json:"risk_level"`
RiskScores map[string]any `json:"risk_scores"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsRiskViewCategories is a response object.
func (*AMLScreeningHitsRiskViewCategories) UnmarshalJSON ¶
func (r *AMLScreeningHitsRiskViewCategories) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsRiskViewCategories leniently.
type AMLScreeningHitsRiskViewCountries ¶
type AMLScreeningHitsRiskViewCountries struct {
Score int64 `json:"score"`
Weightage int64 `json:"weightage"`
RiskLevel string `json:"risk_level"`
RiskScores map[string]any `json:"risk_scores"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsRiskViewCountries is a response object.
func (*AMLScreeningHitsRiskViewCountries) UnmarshalJSON ¶
func (r *AMLScreeningHitsRiskViewCountries) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsRiskViewCountries leniently.
type AMLScreeningHitsRiskViewCrimes ¶
type AMLScreeningHitsRiskViewCrimes struct {
Score int64 `json:"score"`
Weightage int64 `json:"weightage"`
RiskLevel string `json:"risk_level"`
RiskScores map[string]any `json:"risk_scores"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsRiskViewCrimes is a response object.
func (*AMLScreeningHitsRiskViewCrimes) UnmarshalJSON ¶
func (r *AMLScreeningHitsRiskViewCrimes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsRiskViewCrimes leniently.
type AMLScreeningHitsSanctionMatches ¶
type AMLScreeningHitsSanctionMatches struct {
// Name(s) of the sanction list(s)
ListName []string `json:"list_name"`
// Name matched in the sanction list
MatchedName string `json:"matched_name"`
// Description of the sanction entry
Description string `json:"description"`
// Free-text reason why the entity was sanctioned. Joined from the sanction
// list's reason entries. Examples: 'Executive Order 13224 (Terrorism)',
// 'Support for actions undermining Ukraine's sovereignty', 'Listed due to
// national security concerns.'
Reason string `json:"reason"`
// URL to the source of the sanction
SourceURL string `json:"source_url"`
// Additional source URLs
OtherSources []string `json:"other_sources"`
// Additional details about the sanction
Details []string `json:"details"`
// Legal basis for the sanction
LegalBasis []string `json:"legal_basis"`
// Date(s) when the entity was listed
ListedOn []string `json:"listed_on"`
// Sanction list identifier(s)
SanctionList []string `json:"sanction_list"`
// Sanction program(s) the entity is listed under
SanctionProgram []string `json:"sanction_program"`
// Authority/authorities that imposed the sanction
SanctioningAuthority []string `json:"sanctioning_authority"`
// Date(s) when the sanction entry was last updated
UpdatedOn []string `json:"updated_on"`
// Additional data from the sanction source not captured in the main fields
AdditionalData map[string]any `json:"additional_data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsSanctionMatches is a response object.
func (*AMLScreeningHitsSanctionMatches) UnmarshalJSON ¶
func (r *AMLScreeningHitsSanctionMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsSanctionMatches leniently.
type AMLScreeningHitsScoreBreakdown ¶
type AMLScreeningHitsScoreBreakdown struct {
// Raw name similarity percentage (0-100).
NameScore int64 `json:"name_score"`
// Original weight for name from config (0-100).
NameWeight int64 `json:"name_weight"`
// Normalized weight for name after re-weighting for missing data (0-100).
NameWeightNormalized float64 `json:"name_weight_normalized"`
// Points contributed by name to the total score.
NameContribution float64 `json:"name_contribution"`
// DOB match score (-100 to 100).
DOBScore int64 `json:"dob_score"`
// Original weight for DOB from config (0-100).
DOBWeight int64 `json:"dob_weight"`
// Normalized weight for DOB after re-weighting for missing data (0-100).
DOBWeightNormalized float64 `json:"dob_weight_normalized"`
// Points contributed by DOB to the total score.
DOBContribution float64 `json:"dob_contribution"`
// Country match score (-100 to 100).
CountryScore int64 `json:"country_score"`
// Original weight for country from config (0-100).
CountryWeight int64 `json:"country_weight"`
// Normalized weight for country after re-weighting for missing data (0-100).
CountryWeightNormalized float64 `json:"country_weight_normalized"`
// Points contributed by country to the total score.
CountryContribution float64 `json:"country_contribution"`
// Result of document number 'Golden Key' evaluation.
DocumentNumberMatchType AMLScreeningHitsScoreBreakdownDocumentNumberMatchType `json:"document_number_match_type"`
// Human-readable description of the document number effect on the score.
DocumentNumberEffect string `json:"document_number_effect"`
// Final weighted match score (0-100).
TotalScore int64 `json:"total_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsScoreBreakdown: Detailed breakdown of how the match_score was calculated.
func (*AMLScreeningHitsScoreBreakdown) UnmarshalJSON ¶
func (r *AMLScreeningHitsScoreBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsScoreBreakdown leniently.
type AMLScreeningHitsScoreBreakdownDocumentNumberMatchType ¶
type AMLScreeningHitsScoreBreakdownDocumentNumberMatchType string
AMLScreeningHitsScoreBreakdownDocumentNumberMatchType: Result of document number 'Golden Key' evaluation.
AMLScreeningHitsScoreBreakdownDocumentNumberMatchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningHitsScoreBreakdownDocumentNumberMatchTypeMatch AMLScreeningHitsScoreBreakdownDocumentNumberMatchType = "MATCH" AMLScreeningHitsScoreBreakdownDocumentNumberMatchTypeNeutral AMLScreeningHitsScoreBreakdownDocumentNumberMatchType = "NEUTRAL" AMLScreeningHitsScoreBreakdownDocumentNumberMatchTypeHardMismatch AMLScreeningHitsScoreBreakdownDocumentNumberMatchType = "HARD_MISMATCH" )
Known values of AMLScreeningHitsScoreBreakdownDocumentNumberMatchType.
type AMLScreeningHitsWarningMatches ¶
type AMLScreeningHitsWarningMatches struct {
// Name of the warning list publisher
ListName string `json:"list_name"`
// Name matched in the warning list
MatchedName string `json:"matched_name"`
// Description of the warning entry
Description string `json:"description"`
// Publisher or source of the warning
Publisher string `json:"publisher"`
// URL to the source of the warning
SourceURL string `json:"source_url"`
// Additional source URLs
OtherSources []string `json:"other_sources"`
// Countries associated with the warning
Countries []string `json:"countries"`
// Date the warning entry was created
CreatedAt string `json:"created_at"`
// Date the warning entry was last updated
UpdatedAt string `json:"updated_at"`
// Additional data from the warning source. May contain a `data` object with
// `case_details` array.
AdditionalData AMLScreeningHitsWarningMatchesAdditionalData `json:"additional_data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsWarningMatches is a response object.
func (*AMLScreeningHitsWarningMatches) UnmarshalJSON ¶
func (r *AMLScreeningHitsWarningMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsWarningMatches leniently.
type AMLScreeningHitsWarningMatchesAdditionalData ¶
type AMLScreeningHitsWarningMatchesAdditionalData struct {
Data AMLScreeningHitsWarningMatchesAdditionalDataData `json:"data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsWarningMatchesAdditionalData: Additional data from the warning source. May contain a `data` object with `case_details` array.
func (*AMLScreeningHitsWarningMatchesAdditionalData) UnmarshalJSON ¶
func (r *AMLScreeningHitsWarningMatchesAdditionalData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsWarningMatchesAdditionalData leniently.
type AMLScreeningHitsWarningMatchesAdditionalDataData ¶
type AMLScreeningHitsWarningMatchesAdditionalDataData struct {
// Details of warning cases associated with this match
CaseDetails []AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails `json:"case_details"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsWarningMatchesAdditionalDataData is a response object.
func (*AMLScreeningHitsWarningMatchesAdditionalDataData) UnmarshalJSON ¶
func (r *AMLScreeningHitsWarningMatchesAdditionalDataData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsWarningMatchesAdditionalDataData leniently.
type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails ¶
type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails struct {
// Type of the warning case
CaseType AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType `json:"case_type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails is a response object.
func (*AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails) UnmarshalJSON ¶
func (r *AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetails leniently.
type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType ¶
type AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType string
AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType: Type of the warning case
AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeAccusation AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Accusation" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeArrest AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Arrest" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeBribery AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Bribery" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeCriminal AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Criminal" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeFraud AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Fraud" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeIllegalFundraising AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Illegal Fundraising" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeNonConvictionTerror AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Non-conviction Terror" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeProclaimedOffender AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Proclaimed Offender" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeRegulatoryEnforcement AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Regulatory Enforcement" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeTerrorism AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Terrorism" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeTerrorismRelated AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Terrorism-related" AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseTypeTerrorismRelatedListing AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType = "Terrorism-related listing" )
Known values of AMLScreeningHitsWarningMatchesAdditionalDataDataCaseDetailsCaseType.
type AMLScreeningRun ¶
type AMLScreeningRun struct {
// Identifier of this screening run.
UUID string `json:"uuid"`
// When this subject's re-screen finished. Results are ordered by it, newest
// first.
CompletedAt time.Time `json:"completed_at"`
// When the monitoring batch this re-screen belongs to started.
StartedAt time.Time `json:"started_at"`
// `NO_CHANGE`: completed and the result did not move. `CHANGED`: completed and
// the score, status, hit count or hits changed. `FAILED`: no usable answer for
// this subject, so the check was left as it was.
Outcome AMLScreeningRunOutcome `json:"outcome"`
// What started the screening. Always `ONGOING_MONITORING` today.
Trigger AMLScreeningRunTrigger `json:"trigger"`
// Opaque identifier of the AML data source that answered. Treat it as an opaque
// string; do not branch on it.
Provider string `json:"provider"`
// AML check status this run left the check in.
Status AMLScreeningRunStatus `json:"status"`
// AML score this run left the check in.
Score float64 `json:"score"`
// Number of hits this run left the check in.
TotalHits int64 `json:"total_hits"`
// Dataset freshness behind this run, or `null` when no dates were available.
DatasetFreshness AMLDatasetFreshness `json:"dataset_freshness"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningRun: One completed ongoing-monitoring re-screen of an AML check.
func (*AMLScreeningRun) UnmarshalJSON ¶
func (r *AMLScreeningRun) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningRun leniently.
type AMLScreeningRunOutcome ¶
type AMLScreeningRunOutcome string
AMLScreeningRunOutcome: `NO_CHANGE`: completed and the result did not move. `CHANGED`: completed and the score, status, hit count or hits changed. `FAILED`: no usable answer for this subject, so the check was left as it was.
AMLScreeningRunOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningRunOutcomeNoChange AMLScreeningRunOutcome = "NO_CHANGE" AMLScreeningRunOutcomeChanged AMLScreeningRunOutcome = "CHANGED" AMLScreeningRunOutcomeFailed AMLScreeningRunOutcome = "FAILED" )
Known values of AMLScreeningRunOutcome.
type AMLScreeningRunStatus ¶
type AMLScreeningRunStatus string
AMLScreeningRunStatus: AML check status this run left the check in.
AMLScreeningRunStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningRunStatusNotFinished AMLScreeningRunStatus = "Not Finished" AMLScreeningRunStatusApproved AMLScreeningRunStatus = "Approved" AMLScreeningRunStatusDeclined AMLScreeningRunStatus = "Declined" AMLScreeningRunStatusInReview AMLScreeningRunStatus = "In Review" AMLScreeningRunStatusResubRequested AMLScreeningRunStatus = "Resub Requested" )
Known values of AMLScreeningRunStatus.
type AMLScreeningRunTrigger ¶
type AMLScreeningRunTrigger string
AMLScreeningRunTrigger: What started the screening. Always `ONGOING_MONITORING` today.
AMLScreeningRunTrigger is a string with known values below. The set is open: other values may appear and never cause an error.
const (
AMLScreeningRunTriggerOngoingMonitoring AMLScreeningRunTrigger = "ONGOING_MONITORING"
)
Known values of AMLScreeningRunTrigger.
type AMLScreeningScreenedData ¶
type AMLScreeningScreenedData struct {
FullName string `json:"full_name"`
Nationality string `json:"nationality"`
DateOfBirth string `json:"date_of_birth"`
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningScreenedData is a response object.
func (*AMLScreeningScreenedData) UnmarshalJSON ¶
func (r *AMLScreeningScreenedData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningScreenedData leniently.
type AMLScreeningStatus ¶
type AMLScreeningStatus string
AMLScreeningStatus: Feature-level status of this AML screening. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
AMLScreeningStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningStatusNotFinished AMLScreeningStatus = "Not Finished" AMLScreeningStatusApproved AMLScreeningStatus = "Approved" AMLScreeningStatusDeclined AMLScreeningStatus = "Declined" AMLScreeningStatusInReview AMLScreeningStatus = "In Review" AMLScreeningStatusResubRequested AMLScreeningStatus = "Resub Requested" )
Known values of AMLScreeningStatus.
type AMLScreeningWarnings ¶
type AMLScreeningWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Within an AML screening this is typically
// `AML`, but the enum above is authoritative across all feature warnings on the
// decision payload.
Feature AMLScreeningWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AMLScreeningWarnings is a response object.
func (*AMLScreeningWarnings) UnmarshalJSON ¶
func (r *AMLScreeningWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AMLScreeningWarnings leniently.
type AMLScreeningWarningsFeature ¶
type AMLScreeningWarningsFeature string
AMLScreeningWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Within an AML screening this is typically `AML`, but the enum above is authoritative across all feature warnings on the decision payload.
AMLScreeningWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AMLScreeningWarningsFeatureIDVerification AMLScreeningWarningsFeature = "ID_VERIFICATION" AMLScreeningWarningsFeatureNFC AMLScreeningWarningsFeature = "NFC" AMLScreeningWarningsFeatureLiveness AMLScreeningWarningsFeature = "LIVENESS" AMLScreeningWarningsFeatureFacematch AMLScreeningWarningsFeature = "FACEMATCH" AMLScreeningWarningsFeatureProofOfAddress AMLScreeningWarningsFeature = "PROOF_OF_ADDRESS" AMLScreeningWarningsFeaturePhone AMLScreeningWarningsFeature = "PHONE" AMLScreeningWarningsFeatureEmail AMLScreeningWarningsFeature = "EMAIL" AMLScreeningWarningsFeatureAML AMLScreeningWarningsFeature = "AML" AMLScreeningWarningsFeatureLocation AMLScreeningWarningsFeature = "LOCATION" AMLScreeningWarningsFeatureDatabaseValidation AMLScreeningWarningsFeature = "DATABASE_VALIDATION" AMLScreeningWarningsFeatureQuestionnaire AMLScreeningWarningsFeature = "QUESTIONNAIRE" AMLScreeningWarningsFeatureDocumentAi AMLScreeningWarningsFeature = "DOCUMENT_AI" AMLScreeningWarningsFeatureKYBRegistry AMLScreeningWarningsFeature = "KYB_REGISTRY" AMLScreeningWarningsFeatureKYBDocuments AMLScreeningWarningsFeature = "KYB_DOCUMENTS" AMLScreeningWarningsFeatureKYBKeyPeople AMLScreeningWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of AMLScreeningWarningsFeature.
type AMLService ¶
type AMLService struct {
// contains filtered or unexported fields
}
AMLService holds the aml operations. Use it through Client.AML.
func (*AMLService) RetrieveDatasetFreshness ¶
func (r *AMLService) RetrieveDatasetFreshness(ctx context.Context, opts ...option.RequestOption) (*AMLRetrieveDatasetFreshnessResponse, error)
RetrieveDatasetFreshness: Get AML dataset freshness.
Report how current the datasets behind AML screening are, per source family (`sanctions`, `pep`, `warnings`, `adverse_media`), as audit evidence for [ongoing AML monitoring](https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening#proving-that-monitoring-ran). The answer is platform-wide: no session in the path, no customer data in the body, the same answer for every application.
Always `200` for an accepted key. Check `availability` first: when it is not `available`, `dataset_freshness` is `null`. Dates are never estimated: a family whose datasets reported no date is absent from `sources`, and a family where only some datasets reported one has `oldest_updated_at: null`. Readings are taken while ongoing monitoring runs, not on each call; `captured_at` says when.
A scoped API key needs `sessions: read`; a key limited to some workflows or to approved sessions cannot call this endpoint. Nothing is billed.
GET /v3/aml/dataset-freshness/
func (*AMLService) Screen ¶
func (r *AMLService) Screen(ctx context.Context, params AMLScreenParams, opts ...option.RequestOption) (*AMLScreenResponse, error)
Screen: AML screening (standalone).
Screen a person or company against PEP, sanctions, warning/watchlist, and adverse-media datasets in one call.
**Two-score model.** Each hit carries a `match_score` (0-100, identity confidence) and a `risk_score` (0-100, entity risk). Hits whose `match_score` is below `aml_match_score_threshold` (default **93**) are tagged `review_status: "False Positive"` and ignored for risk purposes; the highest `risk_score` among the remaining hits becomes `aml.score`. The final `aml.status` follows your thresholds: `score` > `aml_score_review_threshold` (default **100**) → `Declined`; `score` > `aml_score_approve_threshold` (default **80**) → `In Review`; otherwise `Approved`. Whenever `score` is non-zero and ≥ the approve threshold a `POSSIBLE_MATCH_FOUND` warning is added (a score of exactly 0 never warns).
**Match-score weights.** `aml_name_weight` + `aml_dob_weight` + `aml_country_weight` must sum to exactly 100 (defaults 60/25/15). Components missing from the request are re-normalized away; a matching `document_number` acts as a golden key that overrides `match_score` to 100.
**Latency.** Plain screenings typically complete in a few seconds. With `include_adverse_media=true` the API waits for adverse-media enrichment (an initial ~5 s pause plus up to ~25 s of polling) - configure a client timeout of **at least 60 seconds**.
**Persistence.** `save_api_request` defaults to **true**: the screening is stored as a session (`request_id` works with `GET /v3/session/{sessionId}/decision/`), it appears in the console, a `status.updated` webhook fires, and hit review statuses can be updated later. With `save_api_request=false` nothing is stored and `request_id` is a transient correlation id. `include_ongoing_monitoring=true` keeps re-screening the profile and requires `save_api_request=true` (enforced with a `400`).
**Idempotency.** Send an `Idempotency-Key` header when retrying after a timeout or transient error. The key is scoped to your application and the exact request body. The first completed request stores its response; later identical retries return that same response and do not run or bill another AML screening. If the original request is still running, retry later with the same key. If the same key is reused with a different body, the API returns `409`.
**Billing.** One AML API credit is charged after the first successful screening. Replayed idempotent responses are not charged again; an insufficient balance returns `403` before any new screening happens.
**Sandbox.** Keys from sandbox applications skip screening and billing entirely and return a mocked result - `Approved` with zero hits unless you pass `sandbox_scenario`. `save_api_request` works the same as on live keys, so a saved sandbox screening is retrievable through `GET /v3/session/{sessionId}/decision/` and `GET /v3/session/{sessionId}/generate-pdf/`.
POST /v3/aml/
type APIConnectionError ¶
type APIConnectionError struct {
Method string
// URL is the request URL without query string or credentials.
URL string
Cause error
}
APIConnectionError reports a request that got no HTTP response: DNS and connection failures, TLS errors, a connection dropped while the response was read, or a cancelled context. Cause holds the underlying error.
func (*APIConnectionError) Error ¶
func (e *APIConnectionError) Error() string
func (*APIConnectionError) Unwrap ¶
func (e *APIConnectionError) Unwrap() error
type APIStatusError ¶
type APIStatusError struct {
StatusCode int
// Body is the response body parsed as JSON when possible (map[string]any,
// []any, ...), otherwise the body as a string, or nil when empty.
Body any
// RawBody is the response body as received, with the API key replaced
// by "[redacted]" if the server echoed it.
RawBody []byte
Header http.Header
// RequestID is the request id of the response (X-Request-Id, Request-Id,
// X-Amzn-Requestid or X-Correlation-Id), if any.
RequestID string
Method string
// URL is the request URL without query string or credentials.
URL string
// Response is the HTTP response. Its body reads RawBody, and its
// request's X-Api-Key header is redacted.
Response *http.Response
}
APIStatusError reports a response with a status code outside 2xx.
Use errors.As with *APIStatusError for every status, or with one of the status-specific types (*NotFoundError, *RateLimitError, ...) which all unwrap to *APIStatusError.
func (*APIStatusError) Error ¶
func (e *APIStatusError) Error() string
type APITimeoutError ¶
type APITimeoutError struct {
*APIConnectionError
}
APITimeoutError reports a request that timed out before a complete response arrived. It unwraps to the *APIConnectionError that carries the details.
func (*APITimeoutError) Error ¶
func (e *APITimeoutError) Error() string
func (*APITimeoutError) Unwrap ¶
func (e *APITimeoutError) Unwrap() error
type AccountApplicationsListParams ¶
type AccountApplicationsListParams struct {
// Page size. Defaults to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first result.
Offset Opt[int64] `json:"-" query:"offset"`
}
AccountApplicationsListParams holds the parameters of Client.Account.Applications.List.
func (AccountApplicationsListParams) MarshalJSON ¶
func (r AccountApplicationsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AccountApplicationsService ¶
type AccountApplicationsService struct {
// contains filtered or unexported fields
}
AccountApplicationsService holds the account applications operations. Use it through Client.Account.Applications.
func (*AccountApplicationsService) Create ¶
func (r *AccountApplicationsService) Create(ctx context.Context, orgID string, params ApplicationCreateRequest, opts ...option.RequestOption) (*Application, error)
Create: Create Application.
Create an application inside an organization. The response includes `api_key`; persist it now (recoverable via GET). Requires owner/admin JWT.
POST /organizations/me/{org_id}/applications/
func (*AccountApplicationsService) List ¶
func (r *AccountApplicationsService) List(ctx context.Context, orgID string, params AccountApplicationsListParams, opts ...option.RequestOption) (*Page[Application], error)
List: List the organization's applications.
List the organization's applications, 50 per page by default. Use this to discover `app_id` values when recovering credentials from a new machine, then call `GET /organizations/me/{org_id}/applications/{app_id}/` for the API key. Requires an owner or admin Bearer token.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /organizations/me/{org_id}/applications/
func (*AccountApplicationsService) ListAutoPaging ¶
func (r *AccountApplicationsService) ListAutoPaging(ctx context.Context, orgID string, params AccountApplicationsListParams, opts ...option.RequestOption) *PageIterator[Application]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*AccountApplicationsService) Retrieve ¶
func (r *AccountApplicationsService) Retrieve(ctx context.Context, orgID string, appID string, opts ...option.RequestOption) (*Application, error)
Retrieve: Get Application Credentials.
Read one application's full record including `client_id` and `api_key`. Use this to recover a lost `api_key`.
GET /organizations/me/{org_id}/applications/{app_id}/
func (*AccountApplicationsService) Update ¶
func (r *AccountApplicationsService) Update(ctx context.Context, orgID string, appID string, params ApplicationUpdateRequest, opts ...option.RequestOption) (*Application, error)
Update: Update Application.
Update application metadata (name, URLs, redirect URIs). `api_key` and `client_id` are never rotated. `products` is read-only: a `products` key in the body is ignored. Requires owner/admin JWT.
PATCH /organizations/me/{org_id}/applications/{app_id}/
type AccountOrganizationsListParams ¶
type AccountOrganizationsListParams struct {
// Page size. Defaults to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first result.
Offset Opt[int64] `json:"-" query:"offset"`
}
AccountOrganizationsListParams holds the parameters of Client.Account.Organizations.List.
func (AccountOrganizationsListParams) MarshalJSON ¶
func (r AccountOrganizationsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AccountOrganizationsService ¶
type AccountOrganizationsService struct {
// contains filtered or unexported fields
}
AccountOrganizationsService holds the account organizations operations. Use it through Client.Account.Organizations.
func (*AccountOrganizationsService) List ¶
func (r *AccountOrganizationsService) List(ctx context.Context, params AccountOrganizationsListParams, opts ...option.RequestOption) (*Page[Organization], error)
List: List My Organizations.
List organizations the authenticated user belongs to. Each entry's `uuid` is the `org_id` used on the application endpoints.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /organizations/me/
func (*AccountOrganizationsService) ListAutoPaging ¶
func (r *AccountOrganizationsService) ListAutoPaging(ctx context.Context, params AccountOrganizationsListParams, opts ...option.RequestOption) *PageIterator[Organization]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type AccountResendOTPParams ¶
type AccountResendOTPParams struct {
// Email of the pending (unverified) account. Required.
Email string `json:"email"`
// Password chosen at registration. Required.
Password string `json:"password"`
}
AccountResendOTPParams holds the parameters of Client.Account.ResendOTP.
func (AccountResendOTPParams) MarshalJSON ¶
func (r AccountResendOTPParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AccountResendOTPResponse ¶
type AccountResendOTPResponse struct {
// Always `A new verification code has been sent to your email.`
Message string `json:"message"`
// The address the code was sent to, normalized: lowercased, with any `+tag`
// removed from the local part (`Dev+test@Example.com` becomes
// `dev@example.com`).
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AccountResendOTPResponse is a response object.
func (*AccountResendOTPResponse) UnmarshalJSON ¶
func (r *AccountResendOTPResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AccountResendOTPResponse leniently.
type AccountService ¶
type AccountService struct {
Applications *AccountApplicationsService
Organizations *AccountOrganizationsService
// contains filtered or unexported fields
}
AccountService holds the account operations. Use it through Client.Account.
func (*AccountService) Login ¶
func (r *AccountService) Login(ctx context.Context, params LoginRequest, opts ...option.RequestOption) (*LoginResponse, error)
Login: Programmatic Login.
Authenticate any verified email/password Didit account and receive an RS256 JWT pair (default lifetime 86400s). Console-created email/password accounts can use this endpoint; OAuth-only console accounts must set a password first.
POST /programmatic/login/
func (*AccountService) Register ¶
func (r *AccountService) Register(ctx context.Context, params RegisterRequest, opts ...option.RequestOption) (*RegisterResponse, error)
Register: Register Account.
Step 1 of programmatic onboarding. Creates a pending account and emails a 6-char code (10 min TTL). Rate limit: 5/IP/hour.
POST /programmatic/register/
func (*AccountService) ResendOTP ¶
func (r *AccountService) ResendOTP(ctx context.Context, params AccountResendOTPParams, opts ...option.RequestOption) (*AccountResendOTPResponse, error)
ResendOTP: Resend the email verification code.
Resend the 6-character verification code for an unverified programmatic account. Requires the account's email and password so only the owner can trigger a new code (no console Basic Auth). A fresh code replaces the previous one and is valid for 10 minutes.
Rate limits: a per-email cooldown of 60 seconds between resends (HTTP 429 with `Retry-After`), and the same 5-per-IP-per-hour budget as registration.
POST /programmatic/resend-otp/
func (*AccountService) VerifyEmail ¶
func (r *AccountService) VerifyEmail(ctx context.Context, params VerifyEmailRequest, opts ...option.RequestOption) (*VerifyEmailResponse, error)
VerifyEmail: Verify Email and Issue Credentials.
Step 2 of onboarding. Exchanges the 6-char code for a verified account, a default org+app, and a JWT pair. Persist the returned `api_key`.
POST /programmatic/verify-email/
type AgeEstimationEstimateParams ¶
type AgeEstimationEstimateParams struct {
// Face photo to analyze (e.g. a selfie). Submit a single front-facing photo
// with the subject's face clearly visible and well lit. Allowed extensions:
// `tiff`, `jpg`, `jpeg`, `png`, `webp` (no PDF). Maximum upload size: **5 MB**
// (larger files are rejected with `400`). Images are automatically compressed
// to ~0.3 MB before processing, so very high resolutions do not improve
// accuracy. Required.
UserImage File `json:"-" form:"user_image"`
// Liveness threshold (0-100). A liveness `score` **at or below** this value
// adds a `LOW_LIVENESS_SCORE` warning and declines. Raise it for stricter
// anti-spoofing; values outside 0-100 return `400`.
FaceLivenessScoreDeclineThreshold Opt[float64] `json:"face_liveness_score_decline_threshold"`
// Minimum acceptable estimated age in years. An estimated age **below** this
// value adds an `AGE_BELOW_MINIMUM` warning and declines. Set `0` to disable
// the age check (the call then only runs liveness + age estimation without an
// age-based decision).
AgeEstimationDeclineThreshold Opt[int64] `json:"age_estimation_decline_threshold"`
// When `true`, the service tries the input image in 90-degree increments (0,
// 90, 180, 270) and uses the orientation that yields the best face detection -
// useful for mobile captures with missing EXIF orientation. Adds latency, so
// only enable it if you cannot guarantee upright images.
RotateImage Opt[bool] `json:"rotate_image"`
// When `true` (default), persists the call as an API-type session - visible in
// the Business Console, retrievable via `GET /v3/session/{sessionId}/decision/`
// using the returned `request_id`, announced through a `status.updated`
// webhook, and with the detected face added to your application's face index.
// When `false`, nothing is stored and `request_id` is a transient UUID for
// response correlation only.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque string (your internal user id, email, UUID…) stored on the
// persisted session and echoed back in the response. Use it to correlate API
// calls with your own records and to filter sessions later.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back in the response. In multipart requests, send it as a
// JSON-encoded string field (e.g. `metadata={"flow":"age-gate"}`) - it is
// parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
AgeEstimationEstimateParams holds the parameters of Client.AgeEstimation.Estimate.
func (AgeEstimationEstimateParams) MarshalJSON ¶
func (r AgeEstimationEstimateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AgeEstimationEstimateResponse ¶
type AgeEstimationEstimateResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
AgeEstimation AgeEstimationEstimateResponseAgeEstimation `json:"age_estimation"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AgeEstimationEstimateResponse is a response object.
func (*AgeEstimationEstimateResponse) UnmarshalJSON ¶
func (r *AgeEstimationEstimateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AgeEstimationEstimateResponse leniently.
type AgeEstimationEstimateResponseAgeEstimation ¶
type AgeEstimationEstimateResponseAgeEstimation struct {
// `Approved` when no warnings were raised; `Declined` otherwise (every warning
// this endpoint produces declines).
Status AgeEstimationEstimateResponseAgeEstimationStatus `json:"status"`
// Liveness method. Always `PASSIVE` on this endpoint (single-image, no user
// challenge).
Method AgeEstimationEstimateResponseAgeEstimationMethod `json:"method"`
// Passive-liveness score from 0 to 100 - the model's confidence that the photo
// shows a live person. Compared against
// `face_liveness_score_decline_threshold`; at or below it the call declines
// with `LOW_LIVENESS_SCORE`. `null` when the liveness model returns no
// confidence - the call still declines with `LOW_LIVENESS_SCORE` because null
// is treated as 0 for the threshold comparison.
Score float64 `json:"score"`
// Face-detection results for the analyzed image.
UserImage AgeEstimationEstimateResponseAgeEstimationUserImage `json:"user_image"`
// Model-predicted age in years of the **largest** detected face. `null` when no
// face age could be estimated (an `AGE_NOT_DETECTED` warning is added and the
// call declines).
AgeEstimation float64 `json:"age_estimation"`
// Empty on a clean approval. Any entry sets `status` to `Declined`.
Warnings []AgeEstimationEstimateResponseAgeEstimationWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AgeEstimationEstimateResponseAgeEstimation is a response object.
func (*AgeEstimationEstimateResponseAgeEstimation) UnmarshalJSON ¶
func (r *AgeEstimationEstimateResponseAgeEstimation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AgeEstimationEstimateResponseAgeEstimation leniently.
type AgeEstimationEstimateResponseAgeEstimationMethod ¶
type AgeEstimationEstimateResponseAgeEstimationMethod string
AgeEstimationEstimateResponseAgeEstimationMethod: Liveness method. Always `PASSIVE` on this endpoint (single-image, no user challenge).
AgeEstimationEstimateResponseAgeEstimationMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const (
AgeEstimationEstimateResponseAgeEstimationMethodPassive AgeEstimationEstimateResponseAgeEstimationMethod = "PASSIVE"
)
Known values of AgeEstimationEstimateResponseAgeEstimationMethod.
type AgeEstimationEstimateResponseAgeEstimationStatus ¶
type AgeEstimationEstimateResponseAgeEstimationStatus string
AgeEstimationEstimateResponseAgeEstimationStatus: `Approved` when no warnings were raised; `Declined` otherwise (every warning this endpoint produces declines).
AgeEstimationEstimateResponseAgeEstimationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AgeEstimationEstimateResponseAgeEstimationStatusApproved AgeEstimationEstimateResponseAgeEstimationStatus = "Approved" AgeEstimationEstimateResponseAgeEstimationStatusDeclined AgeEstimationEstimateResponseAgeEstimationStatus = "Declined" )
Known values of AgeEstimationEstimateResponseAgeEstimationStatus.
type AgeEstimationEstimateResponseAgeEstimationUserImage ¶
type AgeEstimationEstimateResponseAgeEstimationUserImage struct {
// One entry per detected face. Empty when no face was found (then
// `age_estimation` is `null` and an `AGE_NOT_DETECTED` warning is added).
Entities []AgeEstimationEstimateResponseAgeEstimationUserImageEntities `json:"entities"`
// Rotation (degrees: 0, 90, 180, or 270) that produced the best face detection.
// Only non-zero when `rotate_image=true` corrected the orientation.
BestAngle int64 `json:"best_angle"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AgeEstimationEstimateResponseAgeEstimationUserImage: Face-detection results for the analyzed image.
func (*AgeEstimationEstimateResponseAgeEstimationUserImage) UnmarshalJSON ¶
func (r *AgeEstimationEstimateResponseAgeEstimationUserImage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AgeEstimationEstimateResponseAgeEstimationUserImage leniently.
type AgeEstimationEstimateResponseAgeEstimationUserImageEntities ¶
type AgeEstimationEstimateResponseAgeEstimationUserImageEntities struct {
// Model-estimated age of this face, in years.
Age float64 `json:"age"`
// Bounding box of the detected face as `[x_min, y_min, x_max, y_max]` pixel
// coordinates in the processed image.
Bbox []int64 `json:"bbox"`
// Face-detection confidence (0-1).
Confidence float64 `json:"confidence"`
// Model-predicted gender of the detected face (`male` or `female`).
// Informational only.
Gender string `json:"gender"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AgeEstimationEstimateResponseAgeEstimationUserImageEntities is a response object.
func (*AgeEstimationEstimateResponseAgeEstimationUserImageEntities) UnmarshalJSON ¶
func (r *AgeEstimationEstimateResponseAgeEstimationUserImageEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AgeEstimationEstimateResponseAgeEstimationUserImageEntities leniently.
type AgeEstimationEstimateResponseAgeEstimationWarnings ¶
type AgeEstimationEstimateResponseAgeEstimationWarnings struct {
// Machine-readable risk code. `NO_FACE_DETECTED` - the liveness model found no
// face; `LOW_LIVENESS_SCORE` - liveness `score` at or below
// `face_liveness_score_decline_threshold`; `LIVENESS_FACE_ATTACK` - a
// presentation attack (photo/screen/mask) was detected; `AGE_NOT_DETECTED` - no
// face age could be estimated; `AGE_BELOW_MINIMUM` - estimated age below
// `age_estimation_decline_threshold`. `NO_FACE_DETECTED` and
// `LOW_LIVENESS_SCORE` are mutually exclusive - when no face is found only
// `NO_FACE_DETECTED` is emitted.
Risk AgeEstimationEstimateResponseAgeEstimationWarningsRisk `json:"risk"`
// Feature that raised the warning. Always `LIVENESS` on this endpoint.
Feature AgeEstimationEstimateResponseAgeEstimationWarningsFeature `json:"feature"`
// Always `null` for age-estimation warnings.
AdditionalData map[string]any `json:"additional_data"`
// Severity. Every warning this endpoint produces is an `error` and sets
// `status` to `Declined`.
LogType AgeEstimationEstimateResponseAgeEstimationWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AgeEstimationEstimateResponseAgeEstimationWarnings is a response object.
func (*AgeEstimationEstimateResponseAgeEstimationWarnings) UnmarshalJSON ¶
func (r *AgeEstimationEstimateResponseAgeEstimationWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AgeEstimationEstimateResponseAgeEstimationWarnings leniently.
type AgeEstimationEstimateResponseAgeEstimationWarningsFeature ¶
type AgeEstimationEstimateResponseAgeEstimationWarningsFeature string
AgeEstimationEstimateResponseAgeEstimationWarningsFeature: Feature that raised the warning. Always `LIVENESS` on this endpoint.
AgeEstimationEstimateResponseAgeEstimationWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
AgeEstimationEstimateResponseAgeEstimationWarningsFeatureLiveness AgeEstimationEstimateResponseAgeEstimationWarningsFeature = "LIVENESS"
)
Known values of AgeEstimationEstimateResponseAgeEstimationWarningsFeature.
type AgeEstimationEstimateResponseAgeEstimationWarningsLogType ¶
type AgeEstimationEstimateResponseAgeEstimationWarningsLogType string
AgeEstimationEstimateResponseAgeEstimationWarningsLogType: Severity. Every warning this endpoint produces is an `error` and sets `status` to `Declined`.
AgeEstimationEstimateResponseAgeEstimationWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const (
AgeEstimationEstimateResponseAgeEstimationWarningsLogTypeError AgeEstimationEstimateResponseAgeEstimationWarningsLogType = "error"
)
Known values of AgeEstimationEstimateResponseAgeEstimationWarningsLogType.
type AgeEstimationEstimateResponseAgeEstimationWarningsRisk ¶
type AgeEstimationEstimateResponseAgeEstimationWarningsRisk string
AgeEstimationEstimateResponseAgeEstimationWarningsRisk: Machine-readable risk code. `NO_FACE_DETECTED` - the liveness model found no face; `LOW_LIVENESS_SCORE` - liveness `score` at or below `face_liveness_score_decline_threshold`; `LIVENESS_FACE_ATTACK` - a presentation attack (photo/screen/mask) was detected; `AGE_NOT_DETECTED` - no face age could be estimated; `AGE_BELOW_MINIMUM` - estimated age below `age_estimation_decline_threshold`. `NO_FACE_DETECTED` and `LOW_LIVENESS_SCORE` are mutually exclusive - when no face is found only `NO_FACE_DETECTED` is emitted.
AgeEstimationEstimateResponseAgeEstimationWarningsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AgeEstimationEstimateResponseAgeEstimationWarningsRiskNoFaceDetected AgeEstimationEstimateResponseAgeEstimationWarningsRisk = "NO_FACE_DETECTED" AgeEstimationEstimateResponseAgeEstimationWarningsRiskLowLivenessScore AgeEstimationEstimateResponseAgeEstimationWarningsRisk = "LOW_LIVENESS_SCORE" AgeEstimationEstimateResponseAgeEstimationWarningsRiskLivenessFaceAttack AgeEstimationEstimateResponseAgeEstimationWarningsRisk = "LIVENESS_FACE_ATTACK" AgeEstimationEstimateResponseAgeEstimationWarningsRiskAgeNotDetected AgeEstimationEstimateResponseAgeEstimationWarningsRisk = "AGE_NOT_DETECTED" AgeEstimationEstimateResponseAgeEstimationWarningsRiskAgeBelowMinimum AgeEstimationEstimateResponseAgeEstimationWarningsRisk = "AGE_BELOW_MINIMUM" )
Known values of AgeEstimationEstimateResponseAgeEstimationWarningsRisk.
type AgeEstimationService ¶
type AgeEstimationService struct {
// contains filtered or unexported fields
}
AgeEstimationService holds the age_estimation operations. Use it through Client.AgeEstimation.
func (*AgeEstimationService) Estimate ¶
func (r *AgeEstimationService) Estimate(ctx context.Context, params AgeEstimationEstimateParams, opts ...option.RequestOption) (*AgeEstimationEstimateResponse, error)
Estimate: Age Estimation (face age + passive liveness).
Estimate a person's age from a single face photo and run a passive liveness check in the same call - returns the model-predicted `age_estimation` (in years), a liveness `score` (0-100), and an `Approved`/`Declined` `status`. The age is **model-predicted from the face, not verified against a document** - use it for age gates and low-friction checks, not as legal proof of age.
**How it works.** The image is analyzed for faces (set `rotate_image=true` if captures may be sideways or upside down); each detected face gets an estimated age, and the largest face in the frame drives `age_estimation`. In parallel, a passive liveness model scores whether the photo shows a live person (no user challenge required) and detects presentation attacks (photos of photos, screens, masks). Submit one clear, front-facing, well-lit face per image for best results.
**Decision logic.** Any warning declines: `status` is `Approved` only when the `warnings` array is empty. A liveness `score` at or below `face_liveness_score_decline_threshold` (default `30`) adds `LOW_LIVENESS_SCORE`; a detected attack adds `LIVENESS_FACE_ATTACK`; no face found by the liveness model adds `NO_FACE_DETECTED`; no estimable face age adds `AGE_NOT_DETECTED` (`age_estimation` is `null`); an estimated age below `age_estimation_decline_threshold` (default `18`) adds `AGE_BELOW_MINIMUM`. Borderline ages near your threshold deserve a fallback to document-based verification - the model's error grows for faces close to the limit.
**Billing.** Each `200` response consumes one Age Estimation API credit (standalone APIs have no free tier). When the organization's balance cannot cover the call, the endpoint returns `403` with the not-enough-credits error before any image processing.
**Session persistence (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session: it appears in the Business Console, the returned `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/` (the result is exposed there in `liveness_checks[]`, with `features: ["AGE_ESTIMATION"]`), the face crop and reference image are stored, the face embedding is added to your application's face index (used by face search and duplicate detection), and a `status.updated` webhook is emitted. When `false`, nothing is stored and `request_id` is a one-off correlation UUID that cannot be looked up later.
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload (`age_estimation: 30`, no warnings), no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/age-estimation/
type AnalyticsRetrieveParams ¶
type AnalyticsRetrieveParams struct {
// First day of the range, `YYYY-MM-DD`, inclusive (UTC). Send it together with
// `end_date`: when either is missing, both are ignored and the range runs from
// 30 days before today through today.
StartDate Opt[string] `json:"-" query:"start_date"`
// Last day of the range, `YYYY-MM-DD`, inclusive (UTC). A future date counts as
// today. The range may not exceed 730 days.
EndDate Opt[string] `json:"-" query:"end_date"`
// Dashboard tab to return widgets for (case-insensitive). Omit it, together
// with `widget_keys`, for the KYC summary. Sending only `widget_keys` implies
// `kyc`. `home` accepts any KYC, KYB or transaction widget and defaults to the
// application's saved home layout.
Scope Opt[AnalyticsRetrieveParamsScope] `json:"-" query:"scope"`
// Comma-separated widget keys, answered in this order. Keys the scope does not
// accept are dropped; when none is left you get the scope's defaults. KYC:
// `kyc_sessions_volume`, `kyc_warning_insights`, `kyc_id_locations`,
// `kyc_ip_locations`, `kyc_workflow_funnel`, `kyc_average_verification_time`,
// `kyc_conversion_rate`, `kyc_conversion_by_country`,
// `kyc_resubmission_insights`, `kyc_original_status_distribution`,
// `kyc_database_validation_coverage`, `kyc_database_validation_latency`,
// `kyc_demographics`, `kyc_device_details`. KYB: `kyb_sessions_volume`,
// `kyb_workflow_funnel`, `kyb_average_verification_time`, `kyb_ip_locations`,
// `kyb_business_country_distribution`, `kyb_warning_insights`,
// `kyb_conversion_rate`, `kyb_conversion_by_country`, `kyb_industry_breakdown`,
// `kyb_resubmission_insights`, `kyb_original_status_distribution`,
// `kyb_registry_coverage`, `kyb_registry_data_completeness`,
// `kyb_device_details`. Transactions: `tx_count_total`, `tx_count_daily`,
// `tx_volume_total_preferred_currency`, `tx_volume_daily_preferred_currency`,
// `tx_average_amount`, `tx_average_amount_daily`,
// `tx_transaction_category_breakdown`, `tx_action_type_breakdown`,
// `tx_status_volume_trend`, `tx_user_ip_or_country_distribution`,
// `tx_tag_breakdown`, `tx_top_rules_triggered`, `tx_team_member_performance`,
// `tx_score_histogram`.
WidgetKeys Opt[string] `json:"-" query:"widget_keys"`
// Comma-separated workflow IDs. Limits the KYC summary and the KYC and KYB
// widgets to those workflows. Values that are not UUIDs are ignored; when none
// is valid the filter is dropped. The summary also accepts `workflow_id`.
WorkflowIDs Opt[string] `json:"-" query:"workflow_ids"`
// Comma-separated workflow version numbers. Applies only together with
// `workflow_ids`; values that are not whole numbers are ignored. `version` is
// accepted as an alias.
Versions Opt[string] `json:"-" query:"versions"`
// Comma-separated branch path IDs. Applies only together with `workflow_ids`,
// and only to KYC figures. Figures are currently recorded only for `default`
// (all paths combined), so any other value returns empty figures.
// `branch_path_id` is accepted as an alias.
BranchPathIDs Opt[string] `json:"-" query:"branch_path_ids"`
// Transaction widgets only: comma-separated tag UUIDs or tag names.
Tag Opt[string] `json:"-" query:"tag"`
// Transaction widgets only: comma-separated transaction categories.
TransactionType Opt[string] `json:"-" query:"transaction_type"`
// Transaction widgets only: comma-separated action types (case-insensitive).
ActionType Opt[string] `json:"-" query:"action_type"`
}
AnalyticsRetrieveParams holds the parameters of Client.Analytics.Retrieve.
func (AnalyticsRetrieveParams) MarshalJSON ¶
func (r AnalyticsRetrieveParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AnalyticsRetrieveParamsScope ¶
type AnalyticsRetrieveParamsScope string
AnalyticsRetrieveParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AnalyticsRetrieveParamsScopeHome AnalyticsRetrieveParamsScope = "home" AnalyticsRetrieveParamsScopeKYC AnalyticsRetrieveParamsScope = "kyc" AnalyticsRetrieveParamsScopeKYB AnalyticsRetrieveParamsScope = "kyb" AnalyticsRetrieveParamsScopeTransactions AnalyticsRetrieveParamsScope = "transactions" )
Known values of AnalyticsRetrieveParamsScope.
type AnalyticsRetrieveResponse ¶
type AnalyticsRetrieveResponse struct {
// One point per day, from the first day with sessions in the range to
// `end_date`. Always daily, whatever `grouping_mode` says.
DataPoints []ApplicationAnalyticsDataPoint `json:"data_points"`
RequestBreakdown ApplicationAnalyticsRequestBreakdown `json:"request_breakdown"`
// Daily points for the period of the same length right before `start_date`.
PreviousDataPoints []ApplicationAnalyticsDataPoint `json:"previous_data_points"`
PreviousRequestBreakdown ApplicationAnalyticsRequestBreakdown `json:"previous_request_breakdown"`
// `total_approved / (total_approved + total_declined + total_in_review) x 100`,
// one decimal. `null` when nothing finished.
ConversionRate float64 `json:"conversion_rate"`
LocationStats ApplicationAnalyticsLocationStats `json:"location_stats"`
DemographicStats ApplicationAnalyticsDemographicStats `json:"demographic_stats"`
DeviceDetails ApplicationAnalyticsDeviceDetails `json:"device_details"`
WorkflowFunnelStats map[string]ApplicationAnalyticsWorkflowFunnel `json:"workflow_funnel_stats"`
VerificationTimeStats ApplicationAnalyticsVerificationTimeStats `json:"verification_time_stats"`
ResubmissionStats ApplicationAnalyticsResubmissionStats `json:"resubmission_stats"`
WarningStats map[string]ApplicationAnalyticsWarningStats `json:"warning_stats"`
OriginalStatusStats ApplicationAnalyticsOriginalStatusStats `json:"original_status_stats"`
// How the `*_time_series` lists are grouped: `day` for up to 14 days, `week` up
// to 90, `month` beyond. Measured from the first day with sessions in the
// range.
GroupingMode AnalyticsRetrieveResponseGroupingMode `json:"grouping_mode"`
DemographicTimeSeries []ApplicationAnalyticsDemographicPoint `json:"demographic_time_series"`
DeviceTimeSeries []ApplicationAnalyticsDevicePoint `json:"device_time_series"`
VerificationTimeTimeSeries []ApplicationAnalyticsVerificationTimePoint `json:"verification_time_time_series"`
ResubmissionTimeSeries []ApplicationAnalyticsResubmissionPoint `json:"resubmission_time_series"`
OriginalStatusTimeSeries []ApplicationAnalyticsOriginalStatusPoint `json:"original_status_time_series"`
// Dashboard tab.
Scope AnalyticsRetrieveResponseScope `json:"scope"`
// Every widget key this scope accepts.
AvailableWidgetKeys []string `json:"available_widget_keys"`
// The widget keys answered, in order: your valid `widget_keys`, or the scope's
// defaults.
RequestedWidgetKeys []string `json:"requested_widget_keys"`
// Keyed by widget key, in the order of `requested_widget_keys`.
Widgets map[string]ApplicationAnalyticsWidget `json:"widgets"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
AnalyticsRetrieveResponse is a response object.
func (*AnalyticsRetrieveResponse) UnmarshalJSON ¶
func (r *AnalyticsRetrieveResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes AnalyticsRetrieveResponse leniently.
type AnalyticsRetrieveResponseGroupingMode ¶
type AnalyticsRetrieveResponseGroupingMode string
AnalyticsRetrieveResponseGroupingMode: How the `*_time_series` lists are grouped: `day` for up to 14 days, `week` up to 90, `month` beyond. Measured from the first day with sessions in the range.
AnalyticsRetrieveResponseGroupingMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AnalyticsRetrieveResponseGroupingModeDay AnalyticsRetrieveResponseGroupingMode = "day" AnalyticsRetrieveResponseGroupingModeWeek AnalyticsRetrieveResponseGroupingMode = "week" AnalyticsRetrieveResponseGroupingModeMonth AnalyticsRetrieveResponseGroupingMode = "month" )
Known values of AnalyticsRetrieveResponseGroupingMode.
type AnalyticsRetrieveResponseScope ¶
type AnalyticsRetrieveResponseScope string
AnalyticsRetrieveResponseScope: Dashboard tab.
AnalyticsRetrieveResponseScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( AnalyticsRetrieveResponseScopeHome AnalyticsRetrieveResponseScope = "home" AnalyticsRetrieveResponseScopeKYC AnalyticsRetrieveResponseScope = "kyc" AnalyticsRetrieveResponseScopeKYB AnalyticsRetrieveResponseScope = "kyb" AnalyticsRetrieveResponseScopeTransactions AnalyticsRetrieveResponseScope = "transactions" )
Known values of AnalyticsRetrieveResponseScope.
type AnalyticsService ¶
type AnalyticsService struct {
// contains filtered or unexported fields
}
AnalyticsService holds the analytics operations. Use it through Client.Analytics.
func (*AnalyticsService) Retrieve ¶
func (r *AnalyticsService) Retrieve(ctx context.Context, params AnalyticsRetrieveParams, opts ...option.RequestOption) (*AnalyticsRetrieveResponse, error)
Retrieve: Get application analytics.
Read the numbers behind the Business Console [analytics dashboard](https://docs.didit.me/console/analytics) for a date range. Without `scope` and `widget_keys` the response is the user verification (KYC) summary (`ApplicationAnalyticsSummary`): daily session counts, status totals, conversion rate, the same figures for the preceding period of equal length, locations, demographics, devices, workflow funnels, active verification time, resubmissions, warnings and time series. With `scope` or `widget_keys` it is the widgets of one dashboard tab (`ApplicationAnalyticsWidgetResponse`): `kyc`, `kyb`, `transactions` or `home`.
Session counts are by session creation date (UTC) and reflect each session's current status. They come from daily rollups refreshed in the background, so the newest activity can take a short while to appear. Invalid workflow IDs and versions are ignored rather than rejected. Nothing is billed.
Only a full-access API key can call this endpoint: every scoped key gets `403`, whatever access it holds, and so does a key of another application. See [API keys](https://docs.didit.me/console/api-keys).
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/analytics/
type Application ¶
type Application struct {
// Application UUID. Use as `{app_id}` in subsequent calls.
UUID string `json:"uuid"`
// Application display name shown in the Didit console.
Name string `json:"name"`
// Public client identifier, safe to embed in OAuth-style flows.
ClientID string `json:"client_id"`
// Long-lived secret (also called `client_secret`). Use as the `x-api-key`
// header for every call to `https://verification.didit.me/v3/...` (sessions,
// workflows, AML, etc.). Treat as a credential; never expose client-side. New
// keys start with `sk_live_` (live application) or `sk_test_` (sandbox
// application), followed by 43 URL-safe characters (letters, digits, `-` and
// `_`). Keys created before this format have no prefix and keep working
// unchanged.
APIKey string `json:"api_key"`
// Website or app URL associated with this application.
WebsiteURL string `json:"website_url"`
// Allowed redirect URIs for OAuth-style and verification redirect flows.
RedirectURIs []string `json:"redirect_uris"`
// Terms of service URL shown in the verification flow.
TermsURL string `json:"terms_url"`
// Privacy policy URL shown in the verification flow.
PrivacyURL string `json:"privacy_url"`
// Internal description for the application (not shown to end users).
Description string `json:"description"`
CreatedAt time.Time `json:"created_at"`
// The application's products. Always all three, in this order: `identity`,
// `transactions`, `authentication`. A new application has `identity` enabled
// with every module on, and `transactions` and `authentication` disabled.
// Read-only: a `products` key in a create or update body is ignored.
Products []ApplicationProduct `json:"products"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
Application: Full application record. `uuid`, `client_id`, and `api_key` never change after creation.
func (*Application) UnmarshalJSON ¶
func (r *Application) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes Application leniently.
type ApplicationAnalyticsCountryCount ¶
type ApplicationAnalyticsCountryCount struct {
// Country name.
Country string `json:"country"`
// Two-letter country code.
CountryCode string `json:"country_code"`
// Sessions from that country.
SessionCount int64 `json:"session_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsCountryCount is a response object.
func (*ApplicationAnalyticsCountryCount) UnmarshalJSON ¶
func (r *ApplicationAnalyticsCountryCount) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsCountryCount leniently.
type ApplicationAnalyticsDataPoint ¶
type ApplicationAnalyticsDataPoint struct {
// The day, `YYYY-MM-DD`.
RoundedDate string `json:"rounded_date"`
// Sessions created that day.
Total int64 `json:"total"`
// Of those, sessions `Approved` or `Kyc Expired`.
Approved int64 `json:"approved"`
// Sessions `Declined`.
Declined int64 `json:"declined"`
// Sessions `Expired` or `Abandoned`.
Canceled int64 `json:"canceled"`
// Sessions `Not Started`, `In Progress` or `In Review`.
Pending int64 `json:"pending"`
// Sessions `In Review`.
InReview int64 `json:"in_review"`
// Sessions `Expired`.
Expired int64 `json:"expired"`
// Sessions `Abandoned`.
Abandoned int64 `json:"abandoned"`
// Sessions `In Progress`.
InProgress int64 `json:"in_progress"`
// Sessions `Not Started`.
NotStarted int64 `json:"not_started"`
// Sessions a reviewer approved after the workflow gave another verdict.
ManuallyApproved int64 `json:"manually_approved"`
// Sessions a reviewer declined after the workflow gave another verdict.
ManuallyDeclined int64 `json:"manually_declined"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDataPoint: Session counts for one day, by creation date (UTC). Each count reflects the session's current status. Points of the previous period carry at least the required fields.
func (*ApplicationAnalyticsDataPoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDataPoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDataPoint leniently.
type ApplicationAnalyticsDemographicPoint ¶
type ApplicationAnalyticsDemographicPoint struct {
// Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a
// month, following `grouping_mode`.
Date string `json:"date"`
AgeDistribution map[string]int64 `json:"age_distribution"`
GenderDistribution map[string]int64 `json:"gender_distribution"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDemographicPoint is a response object.
func (*ApplicationAnalyticsDemographicPoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDemographicPoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDemographicPoint leniently.
type ApplicationAnalyticsDemographicStats ¶
type ApplicationAnalyticsDemographicStats struct {
// Sessions per age band from the ID document. Empty when there is no data.
AgeDistribution ApplicationAnalyticsDemographicStatsAgeDistribution `json:"age_distribution"`
// Sessions per document gender code: `M`, `F` or `U` (unknown).
GenderDistribution map[string]int64 `json:"gender_distribution"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDemographicStats is a response object.
func (*ApplicationAnalyticsDemographicStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDemographicStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDemographicStats leniently.
type ApplicationAnalyticsDemographicStatsAgeDistribution ¶
type ApplicationAnalyticsDemographicStatsAgeDistribution struct {
Under18 int64 `json:"under_18"`
Field1824 int64 `json:"18_24"`
Field2534 int64 `json:"25_34"`
Field3544 int64 `json:"35_44"`
Field4564 int64 `json:"45_64"`
Field65Plus int64 `json:"65_plus"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDemographicStatsAgeDistribution: Sessions per age band from the ID document. Empty when there is no data.
func (*ApplicationAnalyticsDemographicStatsAgeDistribution) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDemographicStatsAgeDistribution) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDemographicStatsAgeDistribution leniently.
type ApplicationAnalyticsDeviceDetails ¶
type ApplicationAnalyticsDeviceDetails struct {
// Device brands: `Apple`, `Android`, `LG`, everything else grouped as `Other`.
DeviceModels []ApplicationAnalyticsDeviceDetailsDeviceModels `json:"device_models"`
// Browsers: `Chrome`, `Safari`, `Didit App`, `Firefox`, everything else grouped
// as `Other`.
Browsers []ApplicationAnalyticsDeviceDetailsBrowsers `json:"browsers"`
// Operating systems.
OperatingSystems []ApplicationAnalyticsDeviceDetailsOperatingSystems `json:"operating_systems"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDeviceDetails: Top five of each, most sessions first.
func (*ApplicationAnalyticsDeviceDetails) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDeviceDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDeviceDetails leniently.
type ApplicationAnalyticsDeviceDetailsBrowsers ¶
type ApplicationAnalyticsDeviceDetailsBrowsers struct {
Browser string `json:"browser"`
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDeviceDetailsBrowsers is a response object.
func (*ApplicationAnalyticsDeviceDetailsBrowsers) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDeviceDetailsBrowsers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDeviceDetailsBrowsers leniently.
type ApplicationAnalyticsDeviceDetailsDeviceModels ¶
type ApplicationAnalyticsDeviceDetailsDeviceModels struct {
Device string `json:"device"`
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDeviceDetailsDeviceModels is a response object.
func (*ApplicationAnalyticsDeviceDetailsDeviceModels) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDeviceDetailsDeviceModels) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDeviceDetailsDeviceModels leniently.
type ApplicationAnalyticsDeviceDetailsOperatingSystems ¶
type ApplicationAnalyticsDeviceDetailsOperatingSystems struct {
Os string `json:"os"`
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDeviceDetailsOperatingSystems is a response object.
func (*ApplicationAnalyticsDeviceDetailsOperatingSystems) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDeviceDetailsOperatingSystems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDeviceDetailsOperatingSystems leniently.
type ApplicationAnalyticsDevicePoint ¶
type ApplicationAnalyticsDevicePoint struct {
// Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a
// month, following `grouping_mode`.
Date string `json:"date"`
Devices map[string]int64 `json:"devices"`
Browsers map[string]int64 `json:"browsers"`
OperatingSystems map[string]int64 `json:"operating_systems"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsDevicePoint is a response object.
func (*ApplicationAnalyticsDevicePoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsDevicePoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsDevicePoint leniently.
type ApplicationAnalyticsLocationStats ¶
type ApplicationAnalyticsLocationStats struct {
// Countries of the users' IP addresses, most sessions first.
IPCountries []ApplicationAnalyticsCountryCount `json:"ip_countries"`
// Same list as `ip_countries`.
Countries []ApplicationAnalyticsCountryCount `json:"countries"`
// Issuing countries of the verified ID documents, most sessions first.
IDCountries []ApplicationAnalyticsCountryCount `json:"id_countries"`
// Per document issuing country: finished sessions (approved, declined or in
// review) and how many were approved. Most finished first.
ConversionByCountry []ApplicationAnalyticsLocationStatsConversionByCountry `json:"conversion_by_country"`
// Up to 100 IP cities, most sessions first.
Cities []ApplicationAnalyticsLocationStatsCities `json:"cities"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsLocationStats is a response object.
func (*ApplicationAnalyticsLocationStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsLocationStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsLocationStats leniently.
type ApplicationAnalyticsLocationStatsCities ¶
type ApplicationAnalyticsLocationStatsCities struct {
// `City, Country`.
Location string `json:"location"`
SessionCount int64 `json:"session_count"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsLocationStatsCities is a response object.
func (*ApplicationAnalyticsLocationStatsCities) UnmarshalJSON ¶
func (r *ApplicationAnalyticsLocationStatsCities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsLocationStatsCities leniently.
type ApplicationAnalyticsLocationStatsConversionByCountry ¶
type ApplicationAnalyticsLocationStatsConversionByCountry struct {
Country string `json:"country"`
CountryCode string `json:"country_code"`
Finished int64 `json:"finished"`
Approved int64 `json:"approved"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsLocationStatsConversionByCountry is a response object.
func (*ApplicationAnalyticsLocationStatsConversionByCountry) UnmarshalJSON ¶
func (r *ApplicationAnalyticsLocationStatsConversionByCountry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsLocationStatsConversionByCountry leniently.
type ApplicationAnalyticsOriginalStatusPoint ¶
type ApplicationAnalyticsOriginalStatusPoint struct {
// Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a
// month, following `grouping_mode`.
Date string `json:"date"`
Approved int64 `json:"approved"`
InReview int64 `json:"in_review"`
Declined int64 `json:"declined"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsOriginalStatusPoint is a response object.
func (*ApplicationAnalyticsOriginalStatusPoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsOriginalStatusPoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsOriginalStatusPoint leniently.
type ApplicationAnalyticsOriginalStatusStats ¶
type ApplicationAnalyticsOriginalStatusStats struct {
Approved int64 `json:"approved"`
InReview int64 `json:"in_review"`
Declined int64 `json:"declined"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsOriginalStatusStats: The workflow's automatic verdict, before any reviewer changed it.
func (*ApplicationAnalyticsOriginalStatusStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsOriginalStatusStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsOriginalStatusStats leniently.
type ApplicationAnalyticsRequestBreakdown ¶
type ApplicationAnalyticsRequestBreakdown struct {
// Sessions `Approved` or `Kyc Expired`.
TotalApproved int64 `json:"total_approved"`
// Sessions `In Review`.
TotalInReview int64 `json:"total_in_review"`
// Sessions `Declined`.
TotalDeclined int64 `json:"total_declined"`
// Sessions `Expired` or `Abandoned`.
TotalCanceled int64 `json:"total_canceled"`
// Sessions `Not Started`, `In Progress` or `In Review` (includes
// `total_in_review`).
TotalPending int64 `json:"total_pending"`
// Sessions `Expired`.
TotalExpired int64 `json:"total_expired"`
// Sessions `Abandoned`.
TotalAbandoned int64 `json:"total_abandoned"`
// Sessions `In Progress`.
TotalInProgress int64 `json:"total_in_progress"`
// Sessions `Not Started`.
TotalNotStarted int64 `json:"total_not_started"`
// Approved by a reviewer.
TotalManuallyApproved int64 `json:"total_manually_approved"`
// Declined by a reviewer.
TotalManuallyDeclined int64 `json:"total_manually_declined"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsRequestBreakdown: Status totals for the range. The previous-period breakdown carries at least the required fields.
func (*ApplicationAnalyticsRequestBreakdown) UnmarshalJSON ¶
func (r *ApplicationAnalyticsRequestBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsRequestBreakdown leniently.
type ApplicationAnalyticsResubmissionPoint ¶
type ApplicationAnalyticsResubmissionPoint struct {
// Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a
// month, following `grouping_mode`.
Date string `json:"date"`
FirstPass int64 `json:"first_pass"`
Second int64 `json:"second"`
ThirdPlus int64 `json:"third_plus"`
Abandoned int64 `json:"abandoned"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsResubmissionPoint is a response object.
func (*ApplicationAnalyticsResubmissionPoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsResubmissionPoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsResubmissionPoint leniently.
type ApplicationAnalyticsResubmissionStats ¶
type ApplicationAnalyticsResubmissionStats struct {
// Finished sessions with no resubmission.
FirstPass int64 `json:"first_pass"`
// Finished sessions resubmitted once.
Second int64 `json:"second"`
// Finished sessions resubmitted two or more times.
ThirdPlus int64 `json:"third_plus"`
// Abandoned sessions.
Abandoned int64 `json:"abandoned"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsResubmissionStats is a response object.
func (*ApplicationAnalyticsResubmissionStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsResubmissionStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsResubmissionStats leniently.
type ApplicationAnalyticsVerificationTimePoint ¶
type ApplicationAnalyticsVerificationTimePoint struct {
// Period key: `YYYY-MM-DD` for a day, the Monday of a week, or `YYYY-MM` for a
// month, following `grouping_mode`.
Date string `json:"date"`
// Average active seconds per session.
OverallAvg float64 `json:"overall_avg"`
// Average active seconds per feature.
PerFeature map[string]float64 `json:"per_feature"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsVerificationTimePoint is a response object.
func (*ApplicationAnalyticsVerificationTimePoint) UnmarshalJSON ¶
func (r *ApplicationAnalyticsVerificationTimePoint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsVerificationTimePoint leniently.
type ApplicationAnalyticsVerificationTimeStats ¶
type ApplicationAnalyticsVerificationTimeStats struct {
// Average per session, one decimal.
OverallAvgSeconds float64 `json:"overall_avg_seconds"`
// Sessions measured.
OverallCount int64 `json:"overall_count"`
// Keyed by feature, for example `OCR` or `LIVENESS`.
PerFeature map[string]ApplicationAnalyticsVerificationTimeStatsPerFeature `json:"per_feature"`
// Keyed by feature, then by sub-step, for example `front_id_photo`.
PerSubStep map[string]map[string]ApplicationAnalyticsVerificationTimeStatsPerSubStep `json:"per_sub_step"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsVerificationTimeStats: Active time users spent verifying, ignoring idle gaps. An empty object when there is no data.
func (*ApplicationAnalyticsVerificationTimeStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsVerificationTimeStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsVerificationTimeStats leniently.
type ApplicationAnalyticsVerificationTimeStatsPerFeature ¶
type ApplicationAnalyticsVerificationTimeStatsPerFeature struct {
AvgSeconds float64 `json:"avg_seconds"`
TotalSeconds float64 `json:"total_seconds"`
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsVerificationTimeStatsPerFeature is a response object.
func (*ApplicationAnalyticsVerificationTimeStatsPerFeature) UnmarshalJSON ¶
func (r *ApplicationAnalyticsVerificationTimeStatsPerFeature) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsVerificationTimeStatsPerFeature leniently.
type ApplicationAnalyticsVerificationTimeStatsPerSubStep ¶
type ApplicationAnalyticsVerificationTimeStatsPerSubStep struct {
AvgSeconds float64 `json:"avg_seconds"`
TotalSeconds float64 `json:"total_seconds"`
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsVerificationTimeStatsPerSubStep is a response object.
func (*ApplicationAnalyticsVerificationTimeStatsPerSubStep) UnmarshalJSON ¶
func (r *ApplicationAnalyticsVerificationTimeStatsPerSubStep) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsVerificationTimeStatsPerSubStep leniently.
type ApplicationAnalyticsWarningStats ¶
type ApplicationAnalyticsWarningStats struct {
Total int64 `json:"total"`
Risks map[string]ApplicationAnalyticsWarningStatsRisks `json:"risks"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWarningStats is a response object.
func (*ApplicationAnalyticsWarningStats) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWarningStats) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWarningStats leniently.
type ApplicationAnalyticsWarningStatsRisks ¶
type ApplicationAnalyticsWarningStatsRisks struct {
Error int64 `json:"error"`
Warning int64 `json:"warning"`
Information int64 `json:"information"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWarningStatsRisks is a response object.
func (*ApplicationAnalyticsWarningStatsRisks) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWarningStatsRisks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWarningStatsRisks leniently.
type ApplicationAnalyticsWidget ¶
type ApplicationAnalyticsWidget struct {
// Widget type.
Kind ApplicationAnalyticsWidgetKind `json:"kind"`
// Display title, for example `Verification volume`.
Title string `json:"title"`
// How the `*_time_series` lists are grouped: `day` for up to 14 days, `week` up
// to 90, `month` beyond. Measured from the first day with sessions in the
// range.
GroupingMode ApplicationAnalyticsWidgetGroupingMode `json:"grouping_mode"`
DataPoints []ApplicationAnalyticsDataPoint `json:"data_points"`
RequestBreakdown ApplicationAnalyticsRequestBreakdown `json:"request_breakdown"`
PreviousDataPoints []ApplicationAnalyticsDataPoint `json:"previous_data_points"`
PreviousRequestBreakdown ApplicationAnalyticsRequestBreakdown `json:"previous_request_breakdown"`
ConversionRate float64 `json:"conversion_rate"`
WorkflowFunnelStats map[string]ApplicationAnalyticsWorkflowFunnel `json:"workflow_funnel_stats"`
VerificationTimeStats ApplicationAnalyticsVerificationTimeStats `json:"verification_time_stats"`
VerificationTimeTimeSeries []ApplicationAnalyticsVerificationTimePoint `json:"verification_time_time_series"`
WarningStats map[string]ApplicationAnalyticsWarningStats `json:"warning_stats"`
ResubmissionStats ApplicationAnalyticsResubmissionStats `json:"resubmission_stats"`
ResubmissionTimeSeries []ApplicationAnalyticsResubmissionPoint `json:"resubmission_time_series"`
OriginalStatusStats ApplicationAnalyticsOriginalStatusStats `json:"original_status_stats"`
OriginalStatusTimeSeries []ApplicationAnalyticsOriginalStatusPoint `json:"original_status_time_series"`
DemographicStats ApplicationAnalyticsDemographicStats `json:"demographic_stats"`
DemographicTimeSeries []ApplicationAnalyticsDemographicPoint `json:"demographic_time_series"`
DeviceDetails ApplicationAnalyticsDeviceDetails `json:"device_details"`
DeviceTimeSeries []ApplicationAnalyticsDevicePoint `json:"device_time_series"`
// Entries of a list widget. `country_distribution` (KYC): `country`,
// `country_code`, `session_count`. `conversion_by_country`: `country`,
// `country_code`, `finished`, `approved`. `time_series`: `date`, `value`.
// `status_time_series`: `date`, `approved`, `declined`, `flagged`. `breakdown`:
// `transaction_type` or `action_type` with `count` and `volume`, or `tag_id`,
// `tag_name`, `count`. `leaderboard`: `rule_title`, `trigger_count` or
// `assignee`, `handled_count`, `average_processing_seconds`, each with
// `approved_percentage`, `declined_percentage`, `flagged_percentage`.
// `histogram`: `score`, `count`.
Items []map[string]any `json:"items"`
// Transaction time series for the period of the same length right before
// `start_date`.
PreviousItems []map[string]any `json:"previous_items"`
// `metric` widgets: the figure for the range.
Value float64 `json:"value"`
// Transaction volume and amount widgets: the application's default transaction
// currency.
Currency string `json:"currency"`
// `histogram` widget: the application's review and decline score thresholds.
Thresholds ApplicationAnalyticsWidgetThresholds `json:"thresholds"`
// `kyb_registry_coverage` widget: registry search totals.
Search ApplicationAnalyticsWidgetSearch `json:"search"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWidget: One dashboard widget. Every widget has `kind` and `title`; the other fields depend on `kind`. The session widgets reuse the summary objects (`data_points`, `request_breakdown`, `workflow_funnel_stats` and so on); list widgets put their entries in `items`; transaction metrics use `value`.
func (*ApplicationAnalyticsWidget) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWidget) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWidget leniently.
type ApplicationAnalyticsWidgetGroupingMode ¶
type ApplicationAnalyticsWidgetGroupingMode string
ApplicationAnalyticsWidgetGroupingMode: How the `*_time_series` lists are grouped: `day` for up to 14 days, `week` up to 90, `month` beyond. Measured from the first day with sessions in the range.
ApplicationAnalyticsWidgetGroupingMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ApplicationAnalyticsWidgetGroupingModeDay ApplicationAnalyticsWidgetGroupingMode = "day" ApplicationAnalyticsWidgetGroupingModeWeek ApplicationAnalyticsWidgetGroupingMode = "week" ApplicationAnalyticsWidgetGroupingModeMonth ApplicationAnalyticsWidgetGroupingMode = "month" )
Known values of ApplicationAnalyticsWidgetGroupingMode.
type ApplicationAnalyticsWidgetKind ¶
type ApplicationAnalyticsWidgetKind string
ApplicationAnalyticsWidgetKind: Widget type.
ApplicationAnalyticsWidgetKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ApplicationAnalyticsWidgetKindSessionsVolume ApplicationAnalyticsWidgetKind = "sessions_volume" ApplicationAnalyticsWidgetKindWorkflowFunnel ApplicationAnalyticsWidgetKind = "workflow_funnel" ApplicationAnalyticsWidgetKindAverageVerificationTime ApplicationAnalyticsWidgetKind = "average_verification_time" ApplicationAnalyticsWidgetKindCountryDistribution ApplicationAnalyticsWidgetKind = "country_distribution" ApplicationAnalyticsWidgetKindWarningInsights ApplicationAnalyticsWidgetKind = "warning_insights" ApplicationAnalyticsWidgetKindConversionRate ApplicationAnalyticsWidgetKind = "conversion_rate" ApplicationAnalyticsWidgetKindConversionByCountry ApplicationAnalyticsWidgetKind = "conversion_by_country" ApplicationAnalyticsWidgetKindResubmissionInsights ApplicationAnalyticsWidgetKind = "resubmission_insights" ApplicationAnalyticsWidgetKindOriginalStatusDistribution ApplicationAnalyticsWidgetKind = "original_status_distribution" ApplicationAnalyticsWidgetKindDatabaseValidationCoverage ApplicationAnalyticsWidgetKind = "database_validation_coverage" ApplicationAnalyticsWidgetKindDatabaseValidationLatency ApplicationAnalyticsWidgetKind = "database_validation_latency" ApplicationAnalyticsWidgetKindDemographics ApplicationAnalyticsWidgetKind = "demographics" ApplicationAnalyticsWidgetKindDeviceDetails ApplicationAnalyticsWidgetKind = "device_details" ApplicationAnalyticsWidgetKindHorizontalBar ApplicationAnalyticsWidgetKind = "horizontal_bar" ApplicationAnalyticsWidgetKindKYBRegistryCoverage ApplicationAnalyticsWidgetKind = "kyb_registry_coverage" ApplicationAnalyticsWidgetKindKYBRegistryDataCompleteness ApplicationAnalyticsWidgetKind = "kyb_registry_data_completeness" ApplicationAnalyticsWidgetKindMetric ApplicationAnalyticsWidgetKind = "metric" ApplicationAnalyticsWidgetKindTimeSeries ApplicationAnalyticsWidgetKind = "time_series" ApplicationAnalyticsWidgetKindBreakdown ApplicationAnalyticsWidgetKind = "breakdown" ApplicationAnalyticsWidgetKindStatusTimeSeries ApplicationAnalyticsWidgetKind = "status_time_series" ApplicationAnalyticsWidgetKindLeaderboard ApplicationAnalyticsWidgetKind = "leaderboard" ApplicationAnalyticsWidgetKindHistogram ApplicationAnalyticsWidgetKind = "histogram" )
Known values of ApplicationAnalyticsWidgetKind.
type ApplicationAnalyticsWidgetSearch ¶
type ApplicationAnalyticsWidgetSearch struct {
SearchesTotal int64 `json:"searches_total"`
SearchesWithNoCandidates int64 `json:"searches_with_no_candidates"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWidgetSearch: `kyb_registry_coverage` widget: registry search totals.
func (*ApplicationAnalyticsWidgetSearch) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWidgetSearch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWidgetSearch leniently.
type ApplicationAnalyticsWidgetThresholds ¶
type ApplicationAnalyticsWidgetThresholds struct {
Review int64 `json:"review"`
Decline int64 `json:"decline"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWidgetThresholds: `histogram` widget: the application's review and decline score thresholds.
func (*ApplicationAnalyticsWidgetThresholds) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWidgetThresholds) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWidgetThresholds leniently.
type ApplicationAnalyticsWorkflowFunnel ¶
type ApplicationAnalyticsWorkflowFunnel struct {
Total int64 `json:"total"`
Steps map[string]ApplicationAnalyticsWorkflowFunnelSteps `json:"steps"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWorkflowFunnel is a response object.
func (*ApplicationAnalyticsWorkflowFunnel) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWorkflowFunnel) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWorkflowFunnel leniently.
type ApplicationAnalyticsWorkflowFunnelSteps ¶
type ApplicationAnalyticsWorkflowFunnelSteps struct {
Reached int64 `json:"reached"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationAnalyticsWorkflowFunnelSteps is a response object.
func (*ApplicationAnalyticsWorkflowFunnelSteps) UnmarshalJSON ¶
func (r *ApplicationAnalyticsWorkflowFunnelSteps) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationAnalyticsWorkflowFunnelSteps leniently.
type ApplicationCreateRequest ¶
type ApplicationCreateRequest struct {
// Application display name. Defaults to `"<organization name> App"`.
Name Opt[string] `json:"name"`
// Website or app URL associated with this application.
WebsiteURL Opt[string] `json:"website_url"`
// Allowed redirect URIs for OAuth-style and verification redirect flows.
RedirectURIs Opt[[]string] `json:"redirect_uris"`
// Terms of service URL shown in the verification flow.
TermsURL Opt[string] `json:"terms_url"`
// Privacy policy URL shown in the verification flow.
PrivacyURL Opt[string] `json:"privacy_url"`
// Internal description for the application (not shown to end users).
Description Opt[string] `json:"description"`
}
ApplicationCreateRequest: All fields are optional. Sending an empty body creates an application with a default name.
func (ApplicationCreateRequest) MarshalJSON ¶
func (r ApplicationCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ApplicationCredentialsSummary ¶
type ApplicationCredentialsSummary struct {
UUID string `json:"uuid"`
Name string `json:"name"`
ClientID string `json:"client_id"`
// Use this as `x-api-key` on every verification API call. New keys start with
// `sk_live_` (live application) or `sk_test_` (sandbox application), followed
// by 43 URL-safe characters (letters, digits, `-` and `_`). Keys created before
// this format have no prefix and keep working unchanged.
APIKey string `json:"api_key"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationCredentialsSummary: Minimal application shape returned inline by `POST /programmatic/verify-email/`. Persist the `api_key` immediately.
func (*ApplicationCredentialsSummary) UnmarshalJSON ¶
func (r *ApplicationCredentialsSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationCredentialsSummary leniently.
type ApplicationProduct ¶
type ApplicationProduct struct {
// `identity` (Identity verification), `transactions` (Transaction monitoring)
// or `authentication` (Authentication).
Product ApplicationProductProduct `json:"product"`
// Whether the product is on for this application. `early_access` applies only
// to `authentication`, which Didit turns on for you.
Status ApplicationProductStatus `json:"status"`
// Module switches of the product, each `true` or `false`. `identity` has
// `user_verification`, `business_verification` and `case_management`.
// `transactions` has `travel_rule` and `case_management`. `authentication` has
// none (`{}`). `case_management` is one setting shown under both `identity` and
// `transactions`, so it has the same value on both.
Modules map[string]bool `json:"modules"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ApplicationProduct: One product of an application and its state. Read-only: the application endpoints return it and ignore it in a request body.
func (*ApplicationProduct) UnmarshalJSON ¶
func (r *ApplicationProduct) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ApplicationProduct leniently.
type ApplicationProductProduct ¶
type ApplicationProductProduct string
ApplicationProductProduct: `identity` (Identity verification), `transactions` (Transaction monitoring) or `authentication` (Authentication).
ApplicationProductProduct is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ApplicationProductProductIdentity ApplicationProductProduct = "identity" ApplicationProductProductTransactions ApplicationProductProduct = "transactions" ApplicationProductProductAuthentication ApplicationProductProduct = "authentication" )
Known values of ApplicationProductProduct.
type ApplicationProductStatus ¶
type ApplicationProductStatus string
ApplicationProductStatus: Whether the product is on for this application. `early_access` applies only to `authentication`, which Didit turns on for you.
ApplicationProductStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ApplicationProductStatusEnabled ApplicationProductStatus = "enabled" ApplicationProductStatusEarlyAccess ApplicationProductStatus = "early_access" ApplicationProductStatusDisabled ApplicationProductStatus = "disabled" )
Known values of ApplicationProductStatus.
type ApplicationUpdateRequest ¶
type ApplicationUpdateRequest struct {
// Application display name.
Name Opt[string] `json:"name"`
// Website or app URL associated with this application.
WebsiteURL Opt[string] `json:"website_url"`
// Allowed redirect URIs for OAuth-style and verification redirect flows.
RedirectURIs Opt[[]string] `json:"redirect_uris"`
// Terms of service URL shown in the verification flow.
TermsURL Opt[string] `json:"terms_url"`
// Privacy policy URL shown in the verification flow.
PrivacyURL Opt[string] `json:"privacy_url"`
// Internal description for the application.
Description Opt[string] `json:"description"`
}
ApplicationUpdateRequest: PATCH body for application metadata. Send only the fields you want to change; omitted fields are preserved. `uuid`, `client_id`, and `api_key` cannot be updated. `products` is read-only: a `products` key in the body is ignored.
func (ApplicationUpdateRequest) MarshalJSON ¶
func (r ApplicationUpdateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type AuthenticationError ¶
type AuthenticationError struct{ *APIStatusError }
AuthenticationError is an *APIStatusError with status 401: the API key is missing, wrong, revoked or expired.
func (*AuthenticationError) Unwrap ¶
func (e *AuthenticationError) Unwrap() error
type BadRequestError ¶
type BadRequestError struct{ *APIStatusError }
BadRequestError is an *APIStatusError with status 400.
func (*BadRequestError) Unwrap ¶
func (e *BadRequestError) Unwrap() error
type BankAccountCheckHolder ¶
type BankAccountCheckHolder struct {
// The full name of the person who should hold the account.
FullName Opt[string] `json:"full_name"`
// The name of the company that should hold the account. Checks a business
// account.
BusinessName Opt[string] `json:"business_name"`
}
BankAccountCheckHolder: The name the account is checked against. Send exactly one of `full_name` and `business_name`.
func (BankAccountCheckHolder) MarshalJSON ¶
func (r BankAccountCheckHolder) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BankAccountCheckPricing ¶
type BankAccountCheckPricing struct {
// `true` only where Didit serves the account check in this country in
// production.
Available bool `json:"available"`
// List price of one account check the bank answers. `null` when not available.
// Decimal string with 4 decimals, in USD.
PriceUsd string `json:"price_usd"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankAccountCheckPricing: Account check: the person types their account number and Didit checks it with the bank. Priced per country.
func (*BankAccountCheckPricing) UnmarshalJSON ¶
func (r *BankAccountCheckPricing) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankAccountCheckPricing leniently.
type BankAccountCheckRequest ¶
type BankAccountCheckRequest struct {
// The account's country, as an ISO 3166-1 alpha-3 code, for example `GBR`.
// Lowercase is accepted. Required.
Country string `json:"country"`
// The account the way its country writes it: an `iban`, or an `account_number`
// with the bank or branch code the country needs (`sort_code`,
// `routing_number`, `transit_institution`, `bsb`, `ifsc`, `bank_code` or
// `bic`). Mexico takes a `clabe` and Argentina a `cbu_cvu`, which already name
// the bank. A business account adds a `registration_id` where the country asks
// for one. Spaces, dashes and dots are ignored. Keys the country's check does
// not use are ignored; a key it needs and does not get is a `400` that names
// it. Required.
Account BankAccountCheckRequestAccount `json:"account"`
// Required.
Holder BankAccountCheckHolder `json:"holder"`
// Your own reference for this check, returned unchanged.
VendorData Opt[string] `json:"vendor_data"`
}
BankAccountCheckRequest is a request object.
func (BankAccountCheckRequest) MarshalJSON ¶
func (r BankAccountCheckRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BankAccountCheckRequestAccount ¶
type BankAccountCheckRequestAccount struct {
// The IBAN, in a country that uses IBANs. It must belong to `country`.
IBAN Opt[string] `json:"iban"`
// The account number, in a country that writes the account with a separate bank
// or branch code.
AccountNumber Opt[string] `json:"account_number"`
// United Kingdom: the 6-digit sort code.
SortCode Opt[string] `json:"sort_code"`
// United States: the 9-digit ABA routing number.
RoutingNumber Opt[string] `json:"routing_number"`
// Canada: the 8-digit transit and institution number.
TransitInstitution Opt[string] `json:"transit_institution"`
// Australia: the 6-digit BSB.
Bsb Opt[string] `json:"bsb"`
// India: the 11-character IFSC.
Ifsc Opt[string] `json:"ifsc"`
// The bank's code, where the country needs one, for example in Nigeria.
BankCode Opt[string] `json:"bank_code"`
// The bank's BIC, where the country's check asks for one.
BIC Opt[string] `json:"bic"`
// Mexico: the 18-digit CLABE. It already names the bank.
Clabe Opt[string] `json:"clabe"`
// Argentina: the 22-digit CBU or CVU. It already names the bank.
CbuCvu Opt[string] `json:"cbu_cvu"`
// A business account's registration number, where the country asks for one.
RegistrationID Opt[string] `json:"registration_id"`
}
BankAccountCheckRequestAccount: The account the way its country writes it: an `iban`, or an `account_number` with the bank or branch code the country needs (`sort_code`, `routing_number`, `transit_institution`, `bsb`, `ifsc`, `bank_code` or `bic`). Mexico takes a `clabe` and Argentina a `cbu_cvu`, which already name the bank. A business account adds a `registration_id` where the country asks for one. Spaces, dashes and dots are ignored. Keys the country's check does not use are ignored; a key it needs and does not get is a `400` that names it.
func (BankAccountCheckRequestAccount) MarshalJSON ¶
func (r BankAccountCheckRequestAccount) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BankAccountCheckResponse ¶
type BankAccountCheckResponse struct {
// The ID of this check.
RequestID string `json:"request_id"`
// `match`: the bank holds the account under the name you sent. `close_match`:
// under a close name, for example a missing middle name or a typo. `no_match`:
// under another name, or there is no such account. `cannot_verify`: the bank
// answered without comparing the name, for example for a blocked or closed
// account.
Result BankAccountCheckResponseResult `json:"result"`
// Only on a `close_match`, and only when the bank returned it: the name on the
// account, as the bank holds it. `null` otherwise.
HolderName string `json:"holder_name"`
// The account, masked to its last 4 characters.
Account string `json:"account"`
// Your own reference, as you sent it.
VendorData string `json:"vendor_data"`
// When the check ran, in UTC.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankAccountCheckResponse is a response object.
func (*BankAccountCheckResponse) UnmarshalJSON ¶
func (r *BankAccountCheckResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankAccountCheckResponse leniently.
type BankAccountCheckResponseResult ¶
type BankAccountCheckResponseResult string
BankAccountCheckResponseResult: `match`: the bank holds the account under the name you sent. `close_match`: under a close name, for example a missing middle name or a typo. `no_match`: under another name, or there is no such account. `cannot_verify`: the bank answered without comparing the name, for example for a blocked or closed account.
BankAccountCheckResponseResult is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankAccountCheckResponseResultMatch BankAccountCheckResponseResult = "match" BankAccountCheckResponseResultCloseMatch BankAccountCheckResponseResult = "close_match" BankAccountCheckResponseResultNoMatch BankAccountCheckResponseResult = "no_match" BankAccountCheckResponseResultCannotVerify BankAccountCheckResponseResult = "cannot_verify" )
Known values of BankAccountCheckResponseResult.
type BankService ¶
type BankService struct {
// contains filtered or unexported fields
}
BankService holds the bank operations. Use it through Client.Bank.
func (*BankService) AccountCheck ¶
func (r *BankService) AccountCheck(ctx context.Context, params BankAccountCheckRequest, opts ...option.RequestOption) (*BankAccountCheckResponse, error)
AccountCheck: Check a bank account.
Check that a bank account belongs to the person or company you name, before you send money to it. No session and no sign-in: send the name and the account, read the result. It is the [account check](/core-technology/bank-verification/account-check) of the Bank Verification step, run from your backend.
**What you send.** The account's `country` (ISO 3166-1 alpha-3), the `account` the way that country writes it, and the `holder` name: `full_name` for a person or `business_name` for a company. A business name checks a business account.
**What you get back.** `result` is `match`, `close_match`, `no_match` or `cannot_verify`. On a `close_match`, `holder_name` is the name the bank holds the account under, when the bank returned it. `account` comes back masked to its last 4 characters.
**Billing.** Each check the bank answers is billed once at the Account check price of the account's country, whatever the result: a `no_match`, an account that does not exist and a `cannot_verify` are billed too. A request answered with an error is never billed.
**Every request is a new check.** There is no idempotency key and no endpoint to read a check back, so a retried request runs, and is billed, again. Store the response.
**Sandbox.** A sandbox key calls no bank and is charged nothing. The last 4 characters of the IBAN, else of the account number, choose the answer: `0001` a `close_match` with a `holder_name`, `0002` a `close_match` without one, `0003` and `0006` a `no_match`, `0004` `cannot_verify`, `0005` a `503` and `0009` a `400`. Any other ending is a `match`.
**API keys.** A scoped API key needs write access to sessions.
POST /v3/bank/account-check/
type BankSignInPricing ¶
type BankSignInPricing struct {
// `true` only where Didit serves bank sign-in in this country in production.
Available bool `json:"available"`
// The market whose price applies. `null` when not available.
Market string `json:"market"`
// List price of one bank sign-in. `null` when not available. Decimal string
// with 4 decimals, in USD.
PriceUsd string `json:"price_usd"`
// Add-ons priced in this country, each a decimal string with 4 decimals in USD,
// added to the bank sign-in price. Only the add-ons the country offers are
// listed; empty when bank sign-in is not available.
AddOns BankSignInPricingAddOns `json:"add_ons"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankSignInPricing: Bank sign-in: the person signs in to their bank. Priced by market, the same for every bank in it.
func (*BankSignInPricing) UnmarshalJSON ¶
func (r *BankSignInPricing) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankSignInPricing leniently.
type BankSignInPricingAddOns ¶
type BankSignInPricingAddOns struct {
// Account balance add-on.
Balance string `json:"balance"`
// Transactions add-on.
Transactions string `json:"transactions"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankSignInPricingAddOns: Add-ons priced in this country, each a decimal string with 4 decimals in USD, added to the bank sign-in price. Only the add-ons the country offers are listed; empty when bank sign-in is not available.
func (*BankSignInPricingAddOns) UnmarshalJSON ¶
func (r *BankSignInPricingAddOns) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankSignInPricingAddOns leniently.
type BankStatementUploadPricing ¶
type BankStatementUploadPricing struct {
// Price of a statement upload after a charged bank attempt. Decimal string with
// 4 decimals, in USD.
PriceUsd string `json:"price_usd"`
// `true` when the upload is included at no extra charge after a charged bank
// attempt in the same session.
IncludedAfterChargedBankAttempt bool `json:"included_after_charged_bank_attempt"`
// `true` when a statement upload can run on its own, with no bank attempt
// first. `false` in production; sandbox sessions can test it without billing.
StandaloneAvailable bool `json:"standalone_available"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankStatementUploadPricing: How the bank statement upload is priced.
func (*BankStatementUploadPricing) UnmarshalJSON ¶
func (r *BankStatementUploadPricing) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankStatementUploadPricing leniently.
type BankVerificationPricing ¶
type BankVerificationPricing struct {
// Currency of every price in the response.
Currency BankVerificationPricingCurrency `json:"currency"`
StatementUpload BankStatementUploadPricing `json:"statement_upload"`
// Fee for each billable ownership check on a route that uses your own provider
// contract instead of Didit's, charged whatever the result. A cancelled, timed
// out or abandoned connection is not billed. Decimal string with 4 decimals, in
// USD.
OwnProviderFeeUsd string `json:"own_provider_fee_usd"`
// Every country, keyed by ISO 3166-1 alpha-3 code.
Countries map[string]BankVerificationPricingCountry `json:"countries"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationPricing: Public Bank Verification list prices: the statement upload, the own provider key fee and each country's methods.
func (*BankVerificationPricing) UnmarshalJSON ¶
func (r *BankVerificationPricing) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationPricing leniently.
type BankVerificationPricingCountry ¶
type BankVerificationPricingCountry struct {
// Country name in English.
Name string `json:"name"`
Methods BankVerificationPricingMethods `json:"methods"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationPricingCountry: One country's Bank Verification methods and their list prices.
func (*BankVerificationPricingCountry) UnmarshalJSON ¶
func (r *BankVerificationPricingCountry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationPricingCountry leniently.
type BankVerificationPricingCurrency ¶
type BankVerificationPricingCurrency string
BankVerificationPricingCurrency: Currency of every price in the response.
BankVerificationPricingCurrency is a string with known values below. The set is open: other values may appear and never cause an error.
const (
BankVerificationPricingCurrencyUsd BankVerificationPricingCurrency = "USD"
)
Known values of BankVerificationPricingCurrency.
type BankVerificationPricingMethods ¶
type BankVerificationPricingMethods struct {
OpenBanking BankSignInPricing `json:"open_banking"`
AccountLookup BankAccountCheckPricing `json:"account_lookup"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationPricingMethods: The two Bank Verification methods in a country.
func (*BankVerificationPricingMethods) UnmarshalJSON ¶
func (r *BankVerificationPricingMethods) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationPricingMethods leniently.
type BankVerificationResult ¶
type BankVerificationResult struct {
// Version of this result shape. `1` today.
SchemaVersion int64 `json:"schema_version"`
// The ID of this result.
BankVerificationID string `json:"bank_verification_id"`
// The workflow node this result belongs to.
NodeID string `json:"node_id"`
// The step's verdict, after its actions and status rules.
Status BankVerificationResultStatus `json:"status"`
// The first verdict the step reached, before any later change such as a manual
// review.
OriginalStatus string `json:"original_status"`
// How the account was verified: `open_banking` (bank sign-in: the person signed
// in at their bank), `account_lookup` (account check: the person typed the
// account details and the bank confirmed the name), `microdeposits` or
// `statement` (a statement upload). `none` when the person continued without a
// bank before any attempt was evaluated, so no account was verified. After an
// evaluated attempt, it stays the method of that attempt. `null` until an
// account is evaluated, and when the workflow narrows the data it returns.
// Workflow rules read the same value as `bank.method`.
Method BankVerificationResultMethod `json:"method"`
// The key of the route that ran the connection. Read `method`, not this key, to
// tell how the account was verified.
Provider string `json:"provider"`
// `native`: Didit's own route, billed to your Didit balance. `byok`: a
// marketplace provider you connected with your own credentials.
CredentialSource BankVerificationResultCredentialSource `json:"credential_source"`
// The route chosen before consent. It never changes afterwards.
Route BankVerificationResultRoute `json:"route"`
// The latest attempt's connection. `null` before the first attempt.
Connection BankVerificationResultConnection `json:"connection"`
// The evaluated account. `null` until an account is evaluated.
Account BankVerificationResultAccount `json:"account"`
// How the account holder compared with the verified identity. `null` until an
// account is evaluated.
Ownership BankVerificationResultOwnership `json:"ownership"`
// The financial data the step read. Only bank sign-in reads it.
FinancialData BankVerificationResultFinancialData `json:"financial_data"`
Billing BankVerificationResultBilling `json:"billing"`
// The identity the holder was compared against, with its source.
ReferenceIdentity map[string]any `json:"reference_identity"`
// Account signals read from the transaction history, when the step read one.
Signals map[string]any `json:"signals"`
// Whether the step ended without a match after the person left at their bank.
ConnectionAbandoned bool `json:"connection_abandoned"`
// Whether the person's bank or country could not be reached on this step. Also
// `true` when the person continued without a bank because no method could
// verify their country or bank.
NotCovered bool `json:"not_covered"`
// Whether the person left the step with **Continue without your bank**.
// `continuation` then says why. `method` is `none` when no attempt was
// evaluated before they continued. After an evaluated attempt, such as a holder
// that does not match, `method` stays the method of that attempt and its
// verdict and reason codes stand. Returned even when the workflow narrows the
// data it returns.
ContinuedWithoutBank bool `json:"continued_without_bank"`
// How the person continued without a bank. `null` when they did not. When the
// workflow narrows the data it returns, `reason` is still returned and every
// other key is `null`.
Continuation BankVerificationResultContinuation `json:"continuation"`
// When the bank evidence was deleted under `bank_evidence_retention_days`.
// `null` otherwise.
EvidencePurgedAt time.Time `json:"evidence_purged_at"`
// Informational codes, for example `holder_declared`. A warning never changes
// the status on its own.
Warnings []string `json:"warnings"`
// Why the verdict came out the way it did, for example `OWNER_NAME_PARTIAL`.
// Several may apply. `NOT_COVERED`: the person continued without a bank because
// no method could verify their country or bank. `SKIPPED`: the person chose to
// continue without a bank while a way to verify was there. Neither is added
// when an evaluated attempt already decided the step.
ReasonCodes []string `json:"reason_codes"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResult: One Bank Verification step's result, for User and Business Verification. `method` says how the account was verified, and `none` that the person continued without a bank before any attempt was evaluated. `continued_without_bank` says the person continued without a bank, also after an evaluated attempt. See [Bank verification methods](/core-technology/bank-verification/verification-methods) and [When the person cannot verify their bank](/core-technology/bank-verification/fallbacks).
func (*BankVerificationResult) UnmarshalJSON ¶
func (r *BankVerificationResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResult leniently.
type BankVerificationResultAccount ¶
type BankVerificationResultAccount struct {
// The account number, masked.
AccountIDMasked string `json:"account_id_masked"`
// The IBAN, masked.
IBANMasked string `json:"iban_masked"`
// The sort code, in the United Kingdom.
SortCode string `json:"sort_code"`
// The routing number, masked.
RoutingNumberMasked string `json:"routing_number_masked"`
Type BankVerificationResultAccountType `json:"type"`
// The bank's own account subtype.
Subtype string `json:"subtype"`
// ISO 4217 currency of the account.
Currency string `json:"currency"`
HolderType BankVerificationResultAccountHolderType `json:"holder_type"`
HoldersCount int64 `json:"holders_count"`
IsJoint bool `json:"is_joint"`
IsBusiness bool `json:"is_business"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultAccount: The evaluated account. `null` until an account is evaluated.
func (*BankVerificationResultAccount) UnmarshalJSON ¶
func (r *BankVerificationResultAccount) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultAccount leniently.
type BankVerificationResultAccountHolderType ¶
type BankVerificationResultAccountHolderType string
BankVerificationResultAccountHolderType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultAccountHolderTypePerson BankVerificationResultAccountHolderType = "person" BankVerificationResultAccountHolderTypeBusiness BankVerificationResultAccountHolderType = "business" BankVerificationResultAccountHolderTypeUnknown BankVerificationResultAccountHolderType = "unknown" )
Known values of BankVerificationResultAccountHolderType.
type BankVerificationResultAccountType ¶
type BankVerificationResultAccountType string
BankVerificationResultAccountType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultAccountTypeChecking BankVerificationResultAccountType = "checking" BankVerificationResultAccountTypeCurrent BankVerificationResultAccountType = "current" BankVerificationResultAccountTypeSavings BankVerificationResultAccountType = "savings" BankVerificationResultAccountTypeBusiness BankVerificationResultAccountType = "business" BankVerificationResultAccountTypeOther BankVerificationResultAccountType = "other" )
Known values of BankVerificationResultAccountType.
type BankVerificationResultBilling ¶
type BankVerificationResultBilling struct {
Route BankVerificationResultBillingRoute `json:"route"`
Billed bool `json:"billed"`
// The marketplace platform fee charged, for `byok`.
MarketplaceFee string `json:"marketplace_fee"`
// The usage line the charge was booked on: `bank_verification` for a bank
// sign-in or an account check, `bank_statement_upload` for a statement upload
// with no charged bank attempt before it, and `bank_byok_fee` for the
// marketplace fee on your own provider. `null` when nothing was billed.
UsageType string `json:"usage_type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultBilling is a response object.
func (*BankVerificationResultBilling) UnmarshalJSON ¶
func (r *BankVerificationResultBilling) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultBilling leniently.
type BankVerificationResultBillingRoute ¶
type BankVerificationResultBillingRoute string
BankVerificationResultBillingRoute is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultBillingRouteNative BankVerificationResultBillingRoute = "native" BankVerificationResultBillingRouteByok BankVerificationResultBillingRoute = "byok" )
Known values of BankVerificationResultBillingRoute.
type BankVerificationResultConnection ¶
type BankVerificationResultConnection struct {
Status BankVerificationResultConnectionStatus `json:"status"`
// The bank's ID. `null` for an account check, where no bank is picked.
InstitutionID string `json:"institution_id"`
// The bank's name. `null` for an account check.
InstitutionName string `json:"institution_name"`
// The account's country, ISO 3166-1 alpha-3.
InstitutionCountry string `json:"institution_country"`
// Whether the bank sign-in ran over OAuth or app-to-app. `null` for an account
// check.
Oauth bool `json:"oauth"`
// When the connection succeeded.
ConnectedAt time.Time `json:"connected_at"`
// When the bank consent ends, for bank sign-in.
ConsentExpiresAt time.Time `json:"consent_expires_at"`
// When the financial data was last read again.
LastRefreshedAt time.Time `json:"last_refreshed_at"`
// The attempts the person spent on this step, every method together.
Attempts int64 `json:"attempts"`
// Why the connection is not simply `connected`, for example `USER_CANCELLED`,
// `INSTITUTION_DOWN`, `ACCOUNT_NOT_FOUND`, `REFERENCE_IDENTITY_MISSING` or
// `VERIFICATION_COMPLETED`.
ReasonCode string `json:"reason_code"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultConnection: The latest attempt's connection. `null` before the first attempt.
func (*BankVerificationResultConnection) UnmarshalJSON ¶
func (r *BankVerificationResultConnection) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultConnection leniently.
type BankVerificationResultConnectionStatus ¶
type BankVerificationResultConnectionStatus string
BankVerificationResultConnectionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultConnectionStatusPending BankVerificationResultConnectionStatus = "pending" BankVerificationResultConnectionStatusConnected BankVerificationResultConnectionStatus = "connected" BankVerificationResultConnectionStatusCancelled BankVerificationResultConnectionStatus = "cancelled" BankVerificationResultConnectionStatusTimeout BankVerificationResultConnectionStatus = "timeout" BankVerificationResultConnectionStatusFailed BankVerificationResultConnectionStatus = "failed" BankVerificationResultConnectionStatusUnsupported BankVerificationResultConnectionStatus = "unsupported" BankVerificationResultConnectionStatusRevoked BankVerificationResultConnectionStatus = "revoked" BankVerificationResultConnectionStatusExpired BankVerificationResultConnectionStatus = "expired" )
Known values of BankVerificationResultConnectionStatus.
type BankVerificationResultContinuation ¶
type BankVerificationResultContinuation struct {
// Why, as Didit worked it out when the person continued: `no_route` (no bank
// sign-in or account check serves their country), `institution_unsupported`
// (the bank they picked cannot be used on this step), `attempts_exhausted`
// (every attempt was already spent and none was in progress), or
// `person_choice` (a way to verify was there and they chose to continue, also
// when their bank could not be reached right now). `no_route` and
// `institution_unsupported` follow `bank_unsupported_action`,
// `attempts_exhausted` follows `bank_attempts_exhausted_action`, and
// `person_choice` follows `bank_skipped_action`, unless an evaluated attempt
// already decided the step.
Reason BankVerificationResultContinuationReason `json:"reason"`
// The country the person was verifying in, ISO 3166-1 alpha-3. `null` when they
// continued before picking one.
Country string `json:"country"`
// The other ways to verify that country offered the person when they continued,
// in the order it offered them: `statement` (a statement upload), then
// `microdeposits`. Empty when it offered none.
Offered []BankVerificationResultContinuationOffered `json:"offered"`
// For `institution_unsupported`, the ID of the bank the person could not use:
// the bank they picked, or the bank their last attempt ended on. Didit takes it
// from its own list of banks, never from the person's device, so a bank that
// list does not have is `null`. `null` for every other reason.
InstitutionID string `json:"institution_id"`
// For `institution_unsupported`, the name of that bank, from the same list as
// `institution_id`. `null` when that list does not have the bank, and for every
// other reason.
InstitutionName string `json:"institution_name"`
// When the person continued.
ContinuedAt time.Time `json:"continued_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultContinuation: How the person continued without a bank. `null` when they did not. When the workflow narrows the data it returns, `reason` is still returned and every other key is `null`.
func (*BankVerificationResultContinuation) UnmarshalJSON ¶
func (r *BankVerificationResultContinuation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultContinuation leniently.
type BankVerificationResultContinuationOffered ¶
type BankVerificationResultContinuationOffered string
BankVerificationResultContinuationOffered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultContinuationOfferedStatement BankVerificationResultContinuationOffered = "statement" BankVerificationResultContinuationOfferedMicrodeposits BankVerificationResultContinuationOffered = "microdeposits" )
Known values of BankVerificationResultContinuationOffered.
type BankVerificationResultContinuationReason ¶
type BankVerificationResultContinuationReason string
BankVerificationResultContinuationReason: Why, as Didit worked it out when the person continued: `no_route` (no bank sign-in or account check serves their country), `institution_unsupported` (the bank they picked cannot be used on this step), `attempts_exhausted` (every attempt was already spent and none was in progress), or `person_choice` (a way to verify was there and they chose to continue, also when their bank could not be reached right now). `no_route` and `institution_unsupported` follow `bank_unsupported_action`, `attempts_exhausted` follows `bank_attempts_exhausted_action`, and `person_choice` follows `bank_skipped_action`, unless an evaluated attempt already decided the step.
BankVerificationResultContinuationReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultContinuationReasonNoRoute BankVerificationResultContinuationReason = "no_route" BankVerificationResultContinuationReasonInstitutionUnsupported BankVerificationResultContinuationReason = "institution_unsupported" BankVerificationResultContinuationReasonAttemptsExhausted BankVerificationResultContinuationReason = "attempts_exhausted" BankVerificationResultContinuationReasonPersonChoice BankVerificationResultContinuationReason = "person_choice" )
Known values of BankVerificationResultContinuationReason.
type BankVerificationResultCredentialSource ¶
type BankVerificationResultCredentialSource string
BankVerificationResultCredentialSource: `native`: Didit's own route, billed to your Didit balance. `byok`: a marketplace provider you connected with your own credentials.
BankVerificationResultCredentialSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultCredentialSourceNative BankVerificationResultCredentialSource = "native" BankVerificationResultCredentialSourceByok BankVerificationResultCredentialSource = "byok" )
Known values of BankVerificationResultCredentialSource.
type BankVerificationResultFinancialData ¶
type BankVerificationResultFinancialData struct {
// With the `balances` scope.
Balances map[string]any `json:"balances"`
// With the `transactions` scope.
Transactions map[string]any `json:"transactions"`
// With the `income` scope.
Income map[string]any `json:"income"`
// Didit's categorization of the transactions read. `null` without them.
Categorization map[string]any `json:"categorization"`
// The data the step asked for that the method which verified the account does
// not collect. Balances, transactions and income come from bank sign-in only,
// so an account verified by account check lists them here. Never a failure.
// Empty otherwise.
NotCollected []BankVerificationResultFinancialDataNotCollected `json:"not_collected"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultFinancialData: The financial data the step read. Only bank sign-in reads it.
func (*BankVerificationResultFinancialData) UnmarshalJSON ¶
func (r *BankVerificationResultFinancialData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultFinancialData leniently.
type BankVerificationResultFinancialDataNotCollected ¶
type BankVerificationResultFinancialDataNotCollected string
BankVerificationResultFinancialDataNotCollected is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultFinancialDataNotCollectedBalances BankVerificationResultFinancialDataNotCollected = "balances" BankVerificationResultFinancialDataNotCollectedIncome BankVerificationResultFinancialDataNotCollected = "income" BankVerificationResultFinancialDataNotCollectedTransactions BankVerificationResultFinancialDataNotCollected = "transactions" )
Known values of BankVerificationResultFinancialDataNotCollected.
type BankVerificationResultMethod ¶
type BankVerificationResultMethod string
BankVerificationResultMethod: How the account was verified: `open_banking` (bank sign-in: the person signed in at their bank), `account_lookup` (account check: the person typed the account details and the bank confirmed the name), `microdeposits` or `statement` (a statement upload). `none` when the person continued without a bank before any attempt was evaluated, so no account was verified. After an evaluated attempt, it stays the method of that attempt. `null` until an account is evaluated, and when the workflow narrows the data it returns. Workflow rules read the same value as `bank.method`.
BankVerificationResultMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultMethodOpenBanking BankVerificationResultMethod = "open_banking" BankVerificationResultMethodAccountLookup BankVerificationResultMethod = "account_lookup" BankVerificationResultMethodMicrodeposits BankVerificationResultMethod = "microdeposits" BankVerificationResultMethodStatement BankVerificationResultMethod = "statement" BankVerificationResultMethodNone BankVerificationResultMethod = "none" )
Known values of BankVerificationResultMethod.
type BankVerificationResultOwnership ¶
type BankVerificationResultOwnership struct {
// `partial_match` is a close match. `not_verifiable`: the bank answered with no
// holder to compare. `unknown`: the evidence could not be read, or there was no
// identity to compare.
Result BankVerificationResultOwnershipResult `json:"result"`
// The step whose identity the holder was compared against: `kyc`,
// `database_validation`, `expected_details`, `questionnaire`, `document_ai` or
// `kyb`.
ReferenceIdentitySource string `json:"reference_identity_source"`
// Didit's holder name score.
NameScore int64 `json:"name_score"`
// The bank's own holder name score, when it returned one.
ProviderNameScore int64 `json:"provider_name_score"`
// The holder address score, when address matching ran.
AddressScore int64 `json:"address_score"`
// The holder email score, when email matching ran.
EmailScore int64 `json:"email_score"`
// The holder phone score, when phone matching ran.
PhoneScore int64 `json:"phone_score"`
// The holder date of birth score, when the bank shared one.
DOBScore int64 `json:"dob_score"`
// Whether the name landed in the close-match band.
CloseMatch bool `json:"close_match"`
// The person's answer when asked to confirm a close-match name. `null` when
// never asked.
HolderConfirmation BankVerificationResultOwnershipHolderConfirmation `json:"holder_confirmation"`
// Which name comparison produced the score. This is not the verification
// method: read the top-level `method` for that.
Method BankVerificationResultOwnershipMethod `json:"method"`
MatchedHolderIndex int64 `json:"matched_holder_index"`
// Each holder the bank listed, with its scores.
Holders []map[string]any `json:"holders"`
OwnerIdentityAvailable bool `json:"owner_identity_available"`
EvidenceFreshness BankVerificationResultOwnershipEvidenceFreshness `json:"evidence_freshness"`
// When the verdict was computed.
EvaluatedAt time.Time `json:"evaluated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultOwnership: How the account holder compared with the verified identity. `null` until an account is evaluated.
func (*BankVerificationResultOwnership) UnmarshalJSON ¶
func (r *BankVerificationResultOwnership) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultOwnership leniently.
type BankVerificationResultOwnershipEvidenceFreshness ¶
type BankVerificationResultOwnershipEvidenceFreshness string
BankVerificationResultOwnershipEvidenceFreshness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultOwnershipEvidenceFreshnessLive BankVerificationResultOwnershipEvidenceFreshness = "live" BankVerificationResultOwnershipEvidenceFreshnessCached BankVerificationResultOwnershipEvidenceFreshness = "cached" BankVerificationResultOwnershipEvidenceFreshnessRefreshed BankVerificationResultOwnershipEvidenceFreshness = "refreshed" )
Known values of BankVerificationResultOwnershipEvidenceFreshness.
type BankVerificationResultOwnershipHolderConfirmation ¶
type BankVerificationResultOwnershipHolderConfirmation string
BankVerificationResultOwnershipHolderConfirmation: The person's answer when asked to confirm a close-match name. `null` when never asked.
BankVerificationResultOwnershipHolderConfirmation is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultOwnershipHolderConfirmationPending BankVerificationResultOwnershipHolderConfirmation = "pending" BankVerificationResultOwnershipHolderConfirmationConfirmed BankVerificationResultOwnershipHolderConfirmation = "confirmed" BankVerificationResultOwnershipHolderConfirmationRejected BankVerificationResultOwnershipHolderConfirmation = "rejected" )
Known values of BankVerificationResultOwnershipHolderConfirmation.
type BankVerificationResultOwnershipMethod ¶
type BankVerificationResultOwnershipMethod string
BankVerificationResultOwnershipMethod: Which name comparison produced the score. This is not the verification method: read the top-level `method` for that.
BankVerificationResultOwnershipMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultOwnershipMethodExact BankVerificationResultOwnershipMethod = "exact" BankVerificationResultOwnershipMethodTokenSet BankVerificationResultOwnershipMethod = "token_set" BankVerificationResultOwnershipMethodNickname BankVerificationResultOwnershipMethod = "nickname" BankVerificationResultOwnershipMethodTransliteration BankVerificationResultOwnershipMethod = "transliteration" BankVerificationResultOwnershipMethodFuzzy BankVerificationResultOwnershipMethod = "fuzzy" BankVerificationResultOwnershipMethodProviderOnly BankVerificationResultOwnershipMethod = "provider_only" BankVerificationResultOwnershipMethodMicrodeposits BankVerificationResultOwnershipMethod = "microdeposits" )
Known values of BankVerificationResultOwnershipMethod.
type BankVerificationResultOwnershipResult ¶
type BankVerificationResultOwnershipResult string
BankVerificationResultOwnershipResult: `partial_match` is a close match. `not_verifiable`: the bank answered with no holder to compare. `unknown`: the evidence could not be read, or there was no identity to compare.
BankVerificationResultOwnershipResult is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultOwnershipResultMatch BankVerificationResultOwnershipResult = "match" BankVerificationResultOwnershipResultPartialMatch BankVerificationResultOwnershipResult = "partial_match" BankVerificationResultOwnershipResultNoMatch BankVerificationResultOwnershipResult = "no_match" BankVerificationResultOwnershipResultUnknown BankVerificationResultOwnershipResult = "unknown" BankVerificationResultOwnershipResultNotVerifiable BankVerificationResultOwnershipResult = "not_verifiable" )
Known values of BankVerificationResultOwnershipResult.
type BankVerificationResultRoute ¶
type BankVerificationResultRoute struct {
// The route's key.
ProviderKey string `json:"provider_key"`
CredentialSource BankVerificationResultRouteCredentialSource `json:"credential_source"`
// Whether Didit's own route stood in for a marketplace provider that could not
// connect.
IsFallback bool `json:"is_fallback"`
// The marketplace connection used, for `byok`.
ProviderConnectionID string `json:"provider_connection_id"`
// The data the connection asked for, for example `ownership` or `balances`.
RequestedScopes []string `json:"requested_scopes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BankVerificationResultRoute: The route chosen before consent. It never changes afterwards.
func (*BankVerificationResultRoute) UnmarshalJSON ¶
func (r *BankVerificationResultRoute) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BankVerificationResultRoute leniently.
type BankVerificationResultRouteCredentialSource ¶
type BankVerificationResultRouteCredentialSource string
BankVerificationResultRouteCredentialSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultRouteCredentialSourceNative BankVerificationResultRouteCredentialSource = "native" BankVerificationResultRouteCredentialSourceByok BankVerificationResultRouteCredentialSource = "byok" )
Known values of BankVerificationResultRouteCredentialSource.
type BankVerificationResultStatus ¶
type BankVerificationResultStatus string
BankVerificationResultStatus: The step's verdict, after its actions and status rules.
BankVerificationResultStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BankVerificationResultStatusNotFinished BankVerificationResultStatus = "Not Finished" BankVerificationResultStatusApproved BankVerificationResultStatus = "Approved" BankVerificationResultStatusDeclined BankVerificationResultStatus = "Declined" BankVerificationResultStatusInReview BankVerificationResultStatus = "In Review" BankVerificationResultStatusExpired BankVerificationResultStatus = "Expired" )
Known values of BankVerificationResultStatus.
type BillingRetrieveBalanceResponse ¶
type BillingRetrieveBalanceResponse struct {
// Current pre-paid credit balance in USD, as a fixed-point decimal string.
// Decreases as verifications are billed and increases when a top-up settles.
Balance string `json:"balance"`
// When `true`, Didit will automatically charge the saved payment method to add
// credits once the balance crosses `auto_refill_threshold`. Configured from
// Console → Billing.
AutoRefillEnabled bool `json:"auto_refill_enabled"`
// USD amount that will be charged on each auto-refill. `null` when auto-refill
// is disabled or unset.
AutoRefillAmount string `json:"auto_refill_amount"`
// Trigger threshold in USD. Auto-refill fires when `balance` falls below this
// value. `null` when auto-refill is disabled or unset.
AutoRefillThreshold string `json:"auto_refill_threshold"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BillingRetrieveBalanceResponse is a response object.
func (*BillingRetrieveBalanceResponse) UnmarshalJSON ¶
func (r *BillingRetrieveBalanceResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BillingRetrieveBalanceResponse leniently.
type BillingService ¶
type BillingService struct {
// contains filtered or unexported fields
}
BillingService holds the billing operations. Use it through Client.Billing.
func (*BillingService) RetrieveBalance ¶
func (r *BillingService) RetrieveBalance(ctx context.Context, opts ...option.RequestOption) (*BillingRetrieveBalanceResponse, error)
RetrieveBalance: Get credit balance.
Get current pre-paid credit balance in USD (organization-wide) plus auto-refill config. Amounts are decimal strings - parse with a decimal library.
GET /v3/billing/balance/
func (*BillingService) TopUp ¶
func (r *BillingService) TopUp(ctx context.Context, params BillingTopUpParams, opts ...option.RequestOption) (*BillingTopUpResponse, error)
TopUp: Top up credits.
Add credits via a hosted checkout session (**$50 minimum**); not available on annual plans. Redirect the customer to the returned `checkout_session_url`.
POST /v3/billing/top-up/
type BillingTopUpParams ¶
type BillingTopUpParams struct {
// Amount to charge, in USD. **Must be at least 50.** Tax is added automatically
// at checkout based on the customer's billing address. Required.
AmountInDollars float64 `json:"amount_in_dollars"`
// URL the hosted checkout redirects the customer to after a successful payment.
// Currently defaults to `https://console.didit.me`. Pass a working URL
// explicitly; the default host is unavailable. Append the literal placeholder
// `{CHECKOUT_SESSION_ID}` if you want the hosted checkout to substitute the
// session ID.
SuccessURL Opt[string] `json:"success_url"`
// URL the hosted checkout redirects the customer to when they abort or close
// the Checkout window. Currently defaults to `https://console.didit.me`. Pass a
// working URL explicitly; the default host is unavailable.
CancelURL Opt[string] `json:"cancel_url"`
}
BillingTopUpParams holds the parameters of Client.Billing.TopUp.
func (BillingTopUpParams) MarshalJSON ¶
func (r BillingTopUpParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BillingTopUpResponse ¶
type BillingTopUpResponse struct {
// Hosted checkout session identifier (e.g. `cs_test_a1B2c3...`). Useful for
// server-side reconciliation.
CheckoutSessionID string `json:"checkout_session_id"`
// Single-use hosted payment page URL. Redirect the customer here to complete
// payment.
CheckoutSessionURL string `json:"checkout_session_url"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BillingTopUpResponse is a response object.
func (*BillingTopUpResponse) UnmarshalJSON ¶
func (r *BillingTopUpResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BillingTopUpResponse leniently.
type BiometricTemplatesBatchDeleteParams ¶
type BiometricTemplatesBatchDeleteParams struct {
// Templates to purge. Required unless `delete_all` is `true`. Already purged
// ids are reported as `already_purged`.
TemplateUUIDs Opt[[]string] `json:"template_uuids"`
// When `true`, purges every template matching the filters below (all of the
// application's templates when no filter is given). `template_uuids` is
// ignored. Irreversible.
DeleteAll Opt[bool] `json:"delete_all"`
// Only with `delete_all`: case-insensitive substring match on the owning User's
// `vendor_data`.
VendorData Opt[string] `json:"vendor_data"`
// Only with `delete_all`: exact match on the owning User.
VendorUserUUID Opt[string] `json:"vendor_user_uuid"`
// Only with `delete_all`.
Status Opt[BiometricTemplatesBatchDeleteParamsStatus] `json:"status"`
// Only with `delete_all`.
SourceType Opt[BiometricTemplatesBatchDeleteParamsSourceType] `json:"source_type"`
// Only with `delete_all`.
RetainedFrom Opt[time.Time] `json:"retained_from"`
// Only with `delete_all`. Must not be earlier than `retained_from`.
RetainedTo Opt[time.Time] `json:"retained_to"`
}
BiometricTemplatesBatchDeleteParams holds the parameters of Client.BiometricTemplates.BatchDelete.
func (BiometricTemplatesBatchDeleteParams) MarshalJSON ¶
func (r BiometricTemplatesBatchDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BiometricTemplatesBatchDeleteParamsSourceType ¶
type BiometricTemplatesBatchDeleteParamsSourceType string
BiometricTemplatesBatchDeleteParamsSourceType: Only with `delete_all`.
BiometricTemplatesBatchDeleteParamsSourceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesBatchDeleteParamsSourceTypeSessionDelete BiometricTemplatesBatchDeleteParamsSourceType = "session_delete" BiometricTemplatesBatchDeleteParamsSourceTypeAutomaticRetention BiometricTemplatesBatchDeleteParamsSourceType = "automatic_retention" BiometricTemplatesBatchDeleteParamsSourceTypeBackfill BiometricTemplatesBatchDeleteParamsSourceType = "backfill" )
Known values of BiometricTemplatesBatchDeleteParamsSourceType.
type BiometricTemplatesBatchDeleteParamsStatus ¶
type BiometricTemplatesBatchDeleteParamsStatus string
BiometricTemplatesBatchDeleteParamsStatus: Only with `delete_all`.
BiometricTemplatesBatchDeleteParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesBatchDeleteParamsStatusPending BiometricTemplatesBatchDeleteParamsStatus = "pending" BiometricTemplatesBatchDeleteParamsStatusActive BiometricTemplatesBatchDeleteParamsStatus = "active" BiometricTemplatesBatchDeleteParamsStatusExpired BiometricTemplatesBatchDeleteParamsStatus = "expired" BiometricTemplatesBatchDeleteParamsStatusHeldOutOfUse BiometricTemplatesBatchDeleteParamsStatus = "held_out_of_use" BiometricTemplatesBatchDeleteParamsStatusPurgePending BiometricTemplatesBatchDeleteParamsStatus = "purge_pending" BiometricTemplatesBatchDeleteParamsStatusPurgeFailed BiometricTemplatesBatchDeleteParamsStatus = "purge_failed" )
Known values of BiometricTemplatesBatchDeleteParamsStatus.
type BiometricTemplatesBatchDeleteResponse ¶
type BiometricTemplatesBatchDeleteResponse struct {
Results []BiometricTemplatesBatchDeleteResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesBatchDeleteResponse is a response object.
func (*BiometricTemplatesBatchDeleteResponse) UnmarshalJSON ¶
func (r *BiometricTemplatesBatchDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesBatchDeleteResponse leniently.
type BiometricTemplatesBatchDeleteResponseResults ¶
type BiometricTemplatesBatchDeleteResponseResults struct {
UUID string `json:"uuid"`
Outcome BiometricTemplatesBatchDeleteResponseResultsOutcome `json:"outcome"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesBatchDeleteResponseResults is a response object.
func (*BiometricTemplatesBatchDeleteResponseResults) UnmarshalJSON ¶
func (r *BiometricTemplatesBatchDeleteResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesBatchDeleteResponseResults leniently.
type BiometricTemplatesBatchDeleteResponseResultsOutcome ¶
type BiometricTemplatesBatchDeleteResponseResultsOutcome string
BiometricTemplatesBatchDeleteResponseResultsOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesBatchDeleteResponseResultsOutcomePurged BiometricTemplatesBatchDeleteResponseResultsOutcome = "purged" BiometricTemplatesBatchDeleteResponseResultsOutcomeAlreadyPurged BiometricTemplatesBatchDeleteResponseResultsOutcome = "already_purged" )
Known values of BiometricTemplatesBatchDeleteResponseResultsOutcome.
type BiometricTemplatesCountParams ¶
type BiometricTemplatesCountParams struct {
// Case-insensitive substring match on the owning User's current `vendor_data`.
VendorData Opt[string] `json:"-" query:"vendor_data"`
// Exact match on the owning User.
VendorUserUUID Opt[string] `json:"-" query:"vendor_user_uuid"`
// Lifecycle status. Purged templates are never listed.
Status Opt[BiometricTemplatesCountParamsStatus] `json:"-" query:"status"`
// How the template was created.
SourceType Opt[BiometricTemplatesCountParamsSourceType] `json:"-" query:"source_type"`
// Templates retained at or after this time.
RetainedFrom Opt[time.Time] `json:"-" query:"retained_from"`
// Templates retained at or before this time. Must not be earlier than
// `retained_from` (`400`).
RetainedTo Opt[time.Time] `json:"-" query:"retained_to"`
}
BiometricTemplatesCountParams holds the parameters of Client.BiometricTemplates.Count.
func (BiometricTemplatesCountParams) MarshalJSON ¶
func (r BiometricTemplatesCountParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BiometricTemplatesCountParamsSourceType ¶
type BiometricTemplatesCountParamsSourceType string
BiometricTemplatesCountParamsSourceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesCountParamsSourceTypeSessionDelete BiometricTemplatesCountParamsSourceType = "session_delete" BiometricTemplatesCountParamsSourceTypeAutomaticRetention BiometricTemplatesCountParamsSourceType = "automatic_retention" BiometricTemplatesCountParamsSourceTypeBackfill BiometricTemplatesCountParamsSourceType = "backfill" )
Known values of BiometricTemplatesCountParamsSourceType.
type BiometricTemplatesCountParamsStatus ¶
type BiometricTemplatesCountParamsStatus string
BiometricTemplatesCountParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesCountParamsStatusPending BiometricTemplatesCountParamsStatus = "pending" BiometricTemplatesCountParamsStatusActive BiometricTemplatesCountParamsStatus = "active" BiometricTemplatesCountParamsStatusExpired BiometricTemplatesCountParamsStatus = "expired" BiometricTemplatesCountParamsStatusHeldOutOfUse BiometricTemplatesCountParamsStatus = "held_out_of_use" BiometricTemplatesCountParamsStatusPurgePending BiometricTemplatesCountParamsStatus = "purge_pending" BiometricTemplatesCountParamsStatusPurgeFailed BiometricTemplatesCountParamsStatus = "purge_failed" )
Known values of BiometricTemplatesCountParamsStatus.
type BiometricTemplatesCountResponse ¶
type BiometricTemplatesCountResponse struct {
Count int64 `json:"count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesCountResponse is a response object.
func (*BiometricTemplatesCountResponse) UnmarshalJSON ¶
func (r *BiometricTemplatesCountResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesCountResponse leniently.
type BiometricTemplatesDeleteResponse ¶
type BiometricTemplatesDeleteResponse struct {
UUID string `json:"uuid"`
Outcome BiometricTemplatesDeleteResponseOutcome `json:"outcome"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesDeleteResponse is a response object.
func (*BiometricTemplatesDeleteResponse) UnmarshalJSON ¶
func (r *BiometricTemplatesDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesDeleteResponse leniently.
type BiometricTemplatesDeleteResponseOutcome ¶
type BiometricTemplatesDeleteResponseOutcome string
BiometricTemplatesDeleteResponseOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesDeleteResponseOutcomePurged BiometricTemplatesDeleteResponseOutcome = "purged" BiometricTemplatesDeleteResponseOutcomeAlreadyPurged BiometricTemplatesDeleteResponseOutcome = "already_purged" )
Known values of BiometricTemplatesDeleteResponseOutcome.
type BiometricTemplatesListParams ¶
type BiometricTemplatesListParams struct {
// Case-insensitive substring match on the owning User's current `vendor_data`.
VendorData Opt[string] `json:"-" query:"vendor_data"`
// Exact match on the owning User.
VendorUserUUID Opt[string] `json:"-" query:"vendor_user_uuid"`
// Lifecycle status. Purged templates are never listed.
Status Opt[BiometricTemplatesListParamsStatus] `json:"-" query:"status"`
// How the template was created.
SourceType Opt[BiometricTemplatesListParamsSourceType] `json:"-" query:"source_type"`
// Templates retained at or after this time.
RetainedFrom Opt[time.Time] `json:"-" query:"retained_from"`
// Templates retained at or before this time. Must not be earlier than
// `retained_from` (`400`).
RetainedTo Opt[time.Time] `json:"-" query:"retained_to"`
// Sort order.
Ordering Opt[BiometricTemplatesListParamsOrdering] `json:"-" query:"ordering"`
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Pagination offset.
Offset Opt[int64] `json:"-" query:"offset"`
}
BiometricTemplatesListParams holds the parameters of Client.BiometricTemplates.List.
func (BiometricTemplatesListParams) MarshalJSON ¶
func (r BiometricTemplatesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BiometricTemplatesListParamsOrdering ¶
type BiometricTemplatesListParamsOrdering string
BiometricTemplatesListParamsOrdering is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListParamsOrderingRetainedAt BiometricTemplatesListParamsOrdering = "retained_at" BiometricTemplatesListParamsOrderingRetainedAt2 BiometricTemplatesListParamsOrdering = "-retained_at" BiometricTemplatesListParamsOrderingExpiresAt BiometricTemplatesListParamsOrdering = "expires_at" BiometricTemplatesListParamsOrderingExpiresAt2 BiometricTemplatesListParamsOrdering = "-expires_at" )
Known values of BiometricTemplatesListParamsOrdering.
type BiometricTemplatesListParamsSourceType ¶
type BiometricTemplatesListParamsSourceType string
BiometricTemplatesListParamsSourceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListParamsSourceTypeSessionDelete BiometricTemplatesListParamsSourceType = "session_delete" BiometricTemplatesListParamsSourceTypeAutomaticRetention BiometricTemplatesListParamsSourceType = "automatic_retention" BiometricTemplatesListParamsSourceTypeBackfill BiometricTemplatesListParamsSourceType = "backfill" )
Known values of BiometricTemplatesListParamsSourceType.
type BiometricTemplatesListParamsStatus ¶
type BiometricTemplatesListParamsStatus string
BiometricTemplatesListParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListParamsStatusPending BiometricTemplatesListParamsStatus = "pending" BiometricTemplatesListParamsStatusActive BiometricTemplatesListParamsStatus = "active" BiometricTemplatesListParamsStatusExpired BiometricTemplatesListParamsStatus = "expired" BiometricTemplatesListParamsStatusHeldOutOfUse BiometricTemplatesListParamsStatus = "held_out_of_use" BiometricTemplatesListParamsStatusPurgePending BiometricTemplatesListParamsStatus = "purge_pending" BiometricTemplatesListParamsStatusPurgeFailed BiometricTemplatesListParamsStatus = "purge_failed" )
Known values of BiometricTemplatesListParamsStatus.
type BiometricTemplatesListResponseResults ¶
type BiometricTemplatesListResponseResults struct {
// Template id. Randomly generated; not derived from the deleted session or its
// face.
UUID string `json:"uuid"`
// The owning User.
VendorUserUUID string `json:"vendor_user_uuid"`
// The User's current `vendor_data`, resolved when you read the template (never
// copied).
VendorData string `json:"vendor_data"`
// How the template was created: a session deletion (API or Console), the
// application's automatic data-retention window, or a Didit-operated backfill
// you instructed.
SourceType BiometricTemplatesListResponseResultsSourceType `json:"source_type"`
// Opaque reference tying the template to its audit trail. It is not the deleted
// session's id and cannot be resolved to it.
ProvenanceReference string `json:"provenance_reference"`
// The application policy at retention time.
RetentionPolicy BiometricTemplatesListResponseResultsRetentionPolicy `json:"retention_policy"`
// The `retain_face_embeddings` value sent on the deletion, or `null` when the
// policy applied.
RetentionOverride bool `json:"retention_override"`
RetainedAt time.Time `json:"retained_at"`
// When the template expires and is purged automatically. Always set.
ExpiresAt time.Time `json:"expires_at"`
// Principal that gave the instruction: the application id for API keys, the
// Console member id for Console actions, or a `service:` identifier for
// automatic retention. Never an email address.
RetainedBy string `json:"retained_by"`
RetainedByType BiometricTemplatesListResponseResultsRetainedByType `json:"retained_by_type"`
InstructionClass BiometricTemplatesListResponseResultsInstructionClass `json:"instruction_class"`
InstructionSource BiometricTemplatesListResponseResultsInstructionSource `json:"instruction_source"`
// The `instruction_id` sent on the deletion, or a Didit-generated id.
InstructionID string `json:"instruction_id"`
// `true` only while a legal hold applies. A held template is excluded from all
// matching.
HeldOutOfUse bool `json:"held_out_of_use"`
// Only `active` templates that are not held, not past `expires_at`, and whose
// User still exists take part in matching.
Status BiometricTemplatesListResponseResultsStatus `json:"status"`
PurgedAt time.Time `json:"purged_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesListResponseResults is a response object.
func (*BiometricTemplatesListResponseResults) UnmarshalJSON ¶
func (r *BiometricTemplatesListResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesListResponseResults leniently.
type BiometricTemplatesListResponseResultsInstructionClass ¶
type BiometricTemplatesListResponseResultsInstructionClass string
BiometricTemplatesListResponseResultsInstructionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsInstructionClassOperationalSessionDelete BiometricTemplatesListResponseResultsInstructionClass = "operational_session_delete" BiometricTemplatesListResponseResultsInstructionClassPrivacyErasure BiometricTemplatesListResponseResultsInstructionClass = "privacy_erasure" )
Known values of BiometricTemplatesListResponseResultsInstructionClass.
type BiometricTemplatesListResponseResultsInstructionSource ¶
type BiometricTemplatesListResponseResultsInstructionSource string
BiometricTemplatesListResponseResultsInstructionSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsInstructionSourceAPI BiometricTemplatesListResponseResultsInstructionSource = "api" BiometricTemplatesListResponseResultsInstructionSourceConsole BiometricTemplatesListResponseResultsInstructionSource = "console" BiometricTemplatesListResponseResultsInstructionSourceAutomaticRetention BiometricTemplatesListResponseResultsInstructionSource = "automatic_retention" BiometricTemplatesListResponseResultsInstructionSourceBackfill BiometricTemplatesListResponseResultsInstructionSource = "backfill" BiometricTemplatesListResponseResultsInstructionSourcePrivacyErasure BiometricTemplatesListResponseResultsInstructionSource = "privacy_erasure" BiometricTemplatesListResponseResultsInstructionSourceExplicitTemplatePurge BiometricTemplatesListResponseResultsInstructionSource = "explicit_template_purge" BiometricTemplatesListResponseResultsInstructionSourceVendorUserDelete BiometricTemplatesListResponseResultsInstructionSource = "vendor_user_delete" BiometricTemplatesListResponseResultsInstructionSourceExpiry BiometricTemplatesListResponseResultsInstructionSource = "expiry" BiometricTemplatesListResponseResultsInstructionSourceReconciliation BiometricTemplatesListResponseResultsInstructionSource = "reconciliation" BiometricTemplatesListResponseResultsInstructionSourceMigration BiometricTemplatesListResponseResultsInstructionSource = "migration" BiometricTemplatesListResponseResultsInstructionSourceSystem BiometricTemplatesListResponseResultsInstructionSource = "system" )
Known values of BiometricTemplatesListResponseResultsInstructionSource.
type BiometricTemplatesListResponseResultsRetainedByType ¶
type BiometricTemplatesListResponseResultsRetainedByType string
BiometricTemplatesListResponseResultsRetainedByType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsRetainedByTypeAPIKey BiometricTemplatesListResponseResultsRetainedByType = "API_KEY" BiometricTemplatesListResponseResultsRetainedByTypeConsoleUser BiometricTemplatesListResponseResultsRetainedByType = "CONSOLE_USER" BiometricTemplatesListResponseResultsRetainedByTypeSystem BiometricTemplatesListResponseResultsRetainedByType = "SYSTEM" )
Known values of BiometricTemplatesListResponseResultsRetainedByType.
type BiometricTemplatesListResponseResultsRetentionPolicy ¶
type BiometricTemplatesListResponseResultsRetentionPolicy string
BiometricTemplatesListResponseResultsRetentionPolicy: The application policy at retention time.
BiometricTemplatesListResponseResultsRetentionPolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsRetentionPolicyDeleteWithSession BiometricTemplatesListResponseResultsRetentionPolicy = "delete_with_session" BiometricTemplatesListResponseResultsRetentionPolicyRetainUntilUserDeleted BiometricTemplatesListResponseResultsRetentionPolicy = "retain_until_user_deleted" )
Known values of BiometricTemplatesListResponseResultsRetentionPolicy.
type BiometricTemplatesListResponseResultsSourceType ¶
type BiometricTemplatesListResponseResultsSourceType string
BiometricTemplatesListResponseResultsSourceType: How the template was created: a session deletion (API or Console), the application's automatic data-retention window, or a Didit-operated backfill you instructed.
BiometricTemplatesListResponseResultsSourceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsSourceTypeSessionDelete BiometricTemplatesListResponseResultsSourceType = "session_delete" BiometricTemplatesListResponseResultsSourceTypeAutomaticRetention BiometricTemplatesListResponseResultsSourceType = "automatic_retention" BiometricTemplatesListResponseResultsSourceTypeBackfill BiometricTemplatesListResponseResultsSourceType = "backfill" )
Known values of BiometricTemplatesListResponseResultsSourceType.
type BiometricTemplatesListResponseResultsStatus ¶
type BiometricTemplatesListResponseResultsStatus string
BiometricTemplatesListResponseResultsStatus: Only `active` templates that are not held, not past `expires_at`, and whose User still exists take part in matching.
BiometricTemplatesListResponseResultsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesListResponseResultsStatusPending BiometricTemplatesListResponseResultsStatus = "pending" BiometricTemplatesListResponseResultsStatusActive BiometricTemplatesListResponseResultsStatus = "active" BiometricTemplatesListResponseResultsStatusExpired BiometricTemplatesListResponseResultsStatus = "expired" BiometricTemplatesListResponseResultsStatusHeldOutOfUse BiometricTemplatesListResponseResultsStatus = "held_out_of_use" BiometricTemplatesListResponseResultsStatusPurgePending BiometricTemplatesListResponseResultsStatus = "purge_pending" BiometricTemplatesListResponseResultsStatusPurgeFailed BiometricTemplatesListResponseResultsStatus = "purge_failed" BiometricTemplatesListResponseResultsStatusPurged BiometricTemplatesListResponseResultsStatus = "purged" )
Known values of BiometricTemplatesListResponseResultsStatus.
type BiometricTemplatesRetrieveResponse ¶
type BiometricTemplatesRetrieveResponse struct {
// Template id. Randomly generated; not derived from the deleted session or its
// face.
UUID string `json:"uuid"`
// The owning User.
VendorUserUUID string `json:"vendor_user_uuid"`
// The User's current `vendor_data`, resolved when you read the template (never
// copied).
VendorData string `json:"vendor_data"`
// How the template was created: a session deletion (API or Console), the
// application's automatic data-retention window, or a Didit-operated backfill
// you instructed.
SourceType BiometricTemplatesRetrieveResponseSourceType `json:"source_type"`
// Opaque reference tying the template to its audit trail. It is not the deleted
// session's id and cannot be resolved to it.
ProvenanceReference string `json:"provenance_reference"`
// The application policy at retention time.
RetentionPolicy BiometricTemplatesRetrieveResponseRetentionPolicy `json:"retention_policy"`
// The `retain_face_embeddings` value sent on the deletion, or `null` when the
// policy applied.
RetentionOverride bool `json:"retention_override"`
RetainedAt time.Time `json:"retained_at"`
// When the template expires and is purged automatically. Always set.
ExpiresAt time.Time `json:"expires_at"`
// Principal that gave the instruction: the application id for API keys, the
// Console member id for Console actions, or a `service:` identifier for
// automatic retention. Never an email address.
RetainedBy string `json:"retained_by"`
RetainedByType BiometricTemplatesRetrieveResponseRetainedByType `json:"retained_by_type"`
InstructionClass BiometricTemplatesRetrieveResponseInstructionClass `json:"instruction_class"`
InstructionSource BiometricTemplatesRetrieveResponseInstructionSource `json:"instruction_source"`
// The `instruction_id` sent on the deletion, or a Didit-generated id.
InstructionID string `json:"instruction_id"`
// `true` only while a legal hold applies. A held template is excluded from all
// matching.
HeldOutOfUse bool `json:"held_out_of_use"`
// Only `active` templates that are not held, not past `expires_at`, and whose
// User still exists take part in matching.
Status BiometricTemplatesRetrieveResponseStatus `json:"status"`
PurgedAt time.Time `json:"purged_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BiometricTemplatesRetrieveResponse is a response object.
func (*BiometricTemplatesRetrieveResponse) UnmarshalJSON ¶
func (r *BiometricTemplatesRetrieveResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BiometricTemplatesRetrieveResponse leniently.
type BiometricTemplatesRetrieveResponseInstructionClass ¶
type BiometricTemplatesRetrieveResponseInstructionClass string
BiometricTemplatesRetrieveResponseInstructionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseInstructionClassOperationalSessionDelete BiometricTemplatesRetrieveResponseInstructionClass = "operational_session_delete" BiometricTemplatesRetrieveResponseInstructionClassPrivacyErasure BiometricTemplatesRetrieveResponseInstructionClass = "privacy_erasure" )
Known values of BiometricTemplatesRetrieveResponseInstructionClass.
type BiometricTemplatesRetrieveResponseInstructionSource ¶
type BiometricTemplatesRetrieveResponseInstructionSource string
BiometricTemplatesRetrieveResponseInstructionSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseInstructionSourceAPI BiometricTemplatesRetrieveResponseInstructionSource = "api" BiometricTemplatesRetrieveResponseInstructionSourceConsole BiometricTemplatesRetrieveResponseInstructionSource = "console" BiometricTemplatesRetrieveResponseInstructionSourceAutomaticRetention BiometricTemplatesRetrieveResponseInstructionSource = "automatic_retention" BiometricTemplatesRetrieveResponseInstructionSourceBackfill BiometricTemplatesRetrieveResponseInstructionSource = "backfill" BiometricTemplatesRetrieveResponseInstructionSourcePrivacyErasure BiometricTemplatesRetrieveResponseInstructionSource = "privacy_erasure" BiometricTemplatesRetrieveResponseInstructionSourceExplicitTemplatePurge BiometricTemplatesRetrieveResponseInstructionSource = "explicit_template_purge" BiometricTemplatesRetrieveResponseInstructionSourceVendorUserDelete BiometricTemplatesRetrieveResponseInstructionSource = "vendor_user_delete" BiometricTemplatesRetrieveResponseInstructionSourceExpiry BiometricTemplatesRetrieveResponseInstructionSource = "expiry" BiometricTemplatesRetrieveResponseInstructionSourceReconciliation BiometricTemplatesRetrieveResponseInstructionSource = "reconciliation" BiometricTemplatesRetrieveResponseInstructionSourceMigration BiometricTemplatesRetrieveResponseInstructionSource = "migration" BiometricTemplatesRetrieveResponseInstructionSourceSystem BiometricTemplatesRetrieveResponseInstructionSource = "system" )
Known values of BiometricTemplatesRetrieveResponseInstructionSource.
type BiometricTemplatesRetrieveResponseRetainedByType ¶
type BiometricTemplatesRetrieveResponseRetainedByType string
BiometricTemplatesRetrieveResponseRetainedByType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseRetainedByTypeAPIKey BiometricTemplatesRetrieveResponseRetainedByType = "API_KEY" BiometricTemplatesRetrieveResponseRetainedByTypeConsoleUser BiometricTemplatesRetrieveResponseRetainedByType = "CONSOLE_USER" BiometricTemplatesRetrieveResponseRetainedByTypeSystem BiometricTemplatesRetrieveResponseRetainedByType = "SYSTEM" )
Known values of BiometricTemplatesRetrieveResponseRetainedByType.
type BiometricTemplatesRetrieveResponseRetentionPolicy ¶
type BiometricTemplatesRetrieveResponseRetentionPolicy string
BiometricTemplatesRetrieveResponseRetentionPolicy: The application policy at retention time.
BiometricTemplatesRetrieveResponseRetentionPolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseRetentionPolicyDeleteWithSession BiometricTemplatesRetrieveResponseRetentionPolicy = "delete_with_session" BiometricTemplatesRetrieveResponseRetentionPolicyRetainUntilUserDeleted BiometricTemplatesRetrieveResponseRetentionPolicy = "retain_until_user_deleted" )
Known values of BiometricTemplatesRetrieveResponseRetentionPolicy.
type BiometricTemplatesRetrieveResponseSourceType ¶
type BiometricTemplatesRetrieveResponseSourceType string
BiometricTemplatesRetrieveResponseSourceType: How the template was created: a session deletion (API or Console), the application's automatic data-retention window, or a Didit-operated backfill you instructed.
BiometricTemplatesRetrieveResponseSourceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseSourceTypeSessionDelete BiometricTemplatesRetrieveResponseSourceType = "session_delete" BiometricTemplatesRetrieveResponseSourceTypeAutomaticRetention BiometricTemplatesRetrieveResponseSourceType = "automatic_retention" BiometricTemplatesRetrieveResponseSourceTypeBackfill BiometricTemplatesRetrieveResponseSourceType = "backfill" )
Known values of BiometricTemplatesRetrieveResponseSourceType.
type BiometricTemplatesRetrieveResponseStatus ¶
type BiometricTemplatesRetrieveResponseStatus string
BiometricTemplatesRetrieveResponseStatus: Only `active` templates that are not held, not past `expires_at`, and whose User still exists take part in matching.
BiometricTemplatesRetrieveResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BiometricTemplatesRetrieveResponseStatusPending BiometricTemplatesRetrieveResponseStatus = "pending" BiometricTemplatesRetrieveResponseStatusActive BiometricTemplatesRetrieveResponseStatus = "active" BiometricTemplatesRetrieveResponseStatusExpired BiometricTemplatesRetrieveResponseStatus = "expired" BiometricTemplatesRetrieveResponseStatusHeldOutOfUse BiometricTemplatesRetrieveResponseStatus = "held_out_of_use" BiometricTemplatesRetrieveResponseStatusPurgePending BiometricTemplatesRetrieveResponseStatus = "purge_pending" BiometricTemplatesRetrieveResponseStatusPurgeFailed BiometricTemplatesRetrieveResponseStatus = "purge_failed" BiometricTemplatesRetrieveResponseStatusPurged BiometricTemplatesRetrieveResponseStatus = "purged" )
Known values of BiometricTemplatesRetrieveResponseStatus.
type BiometricTemplatesService ¶
type BiometricTemplatesService struct {
// contains filtered or unexported fields
}
BiometricTemplatesService holds the biometric_templates operations. Use it through Client.BiometricTemplates.
func (*BiometricTemplatesService) BatchDelete ¶
func (r *BiometricTemplatesService) BatchDelete(ctx context.Context, params BiometricTemplatesBatchDeleteParams, opts ...option.RequestOption) (*BiometricTemplatesBatchDeleteResponse, error)
BatchDelete: Bulk purge retained biometric templates.
An opted-in application keeps one separately managed, image-free face biometric template anchored to the User when a session is deleted (see `DELETE /v3/session/{sessionId}/delete/`). Templates are biometric data with a finite `expires_at`; they never contain images, session data, or identity fields, and they are purged on User deletion, privacy erasure, expiry, or an explicit purge. These endpoints accept application API keys (`x-api-key`) only; Business Console user tokens are rejected with `403`.
Purges many templates in one call, by explicit id list or with `delete_all: true` optionally narrowed by the same filters as the list endpoint. Templates are purged one by one and each result reports `purged` or `already_purged`. If a biometric store is unavailable the call returns `503` at the first failing template: templates purged earlier in the request stay purged, the failing one moves to `purge_failed` (already excluded from matching), and repeating the request finishes the job.
**`delete_all: true` without filters purges every biometric template in the application and cannot be undone.** Run the count endpoint with the same filters first.
POST /v3/biometric-templates/delete/
func (*BiometricTemplatesService) Count ¶
func (r *BiometricTemplatesService) Count(ctx context.Context, params BiometricTemplatesCountParams, opts ...option.RequestOption) (*BiometricTemplatesCountResponse, error)
Count: Count retained biometric templates.
An opted-in application keeps one separately managed, image-free face biometric template anchored to the User when a session is deleted (see `DELETE /v3/session/{sessionId}/delete/`). Templates are biometric data with a finite `expires_at`; they never contain images, session data, or identity fields, and they are purged on User deletion, privacy erasure, expiry, or an explicit purge. These endpoints accept application API keys (`x-api-key`) only; Business Console user tokens are rejected with `403`.
Returns the number of templates matching the same filters as the list endpoint. Use it to check what a filtered bulk purge with `delete_all: true` would touch.
GET /v3/biometric-templates/count/
func (*BiometricTemplatesService) Delete ¶
func (r *BiometricTemplatesService) Delete(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*BiometricTemplatesDeleteResponse, error)
Delete: Purge a retained biometric template.
An opted-in application keeps one separately managed, image-free face biometric template anchored to the User when a session is deleted (see `DELETE /v3/session/{sessionId}/delete/`). Templates are biometric data with a finite `expires_at`; they never contain images, session data, or identity fields, and they are purged on User deletion, privacy erasure, expiry, or an explicit purge. These endpoints accept application API keys (`x-api-key`) only; Business Console user tokens are rejected with `403`.
Purges one template: it is removed from every kind of matching and the stored template is deleted. Irreversible and recorded on the audit trail with the acting principal.
**Retry semantics:** Didit deletes the stored template first and only then marks the template purged. If a biometric store is unavailable the call returns `503`, the template moves to `status: purge_failed` and is already excluded from matching; repeat the same call to finish. Repeating a purge of an already purged template returns `already_purged`.
Templates are also purged by `POST /v3/users/delete/` for the owning User, by any deletion of that User's sessions with `deletion_instruction: privacy_erasure`, and automatically at `expires_at`.
DELETE /v3/biometric-templates/{template_uuid}/
func (*BiometricTemplatesService) List ¶
func (r *BiometricTemplatesService) List(ctx context.Context, params BiometricTemplatesListParams, opts ...option.RequestOption) (*Page[BiometricTemplatesListResponseResults], error)
List: List retained biometric templates.
An opted-in application keeps one separately managed, image-free face biometric template anchored to the User when a session is deleted (see `DELETE /v3/session/{sessionId}/delete/`). Templates are biometric data with a finite `expires_at`; they never contain images, session data, or identity fields, and they are purged on User deletion, privacy erasure, expiry, or an explicit purge. These endpoints accept application API keys (`x-api-key`) only; Business Console user tokens are rejected with `403`.
Returns a paginated list of the templates the application currently holds. Purged templates are not listed.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/biometric-templates/
func (*BiometricTemplatesService) ListAutoPaging ¶
func (r *BiometricTemplatesService) ListAutoPaging(ctx context.Context, params BiometricTemplatesListParams, opts ...option.RequestOption) *PageIterator[BiometricTemplatesListResponseResults]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*BiometricTemplatesService) Retrieve ¶
func (r *BiometricTemplatesService) Retrieve(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*BiometricTemplatesRetrieveResponse, error)
Retrieve: Get a retained biometric template.
An opted-in application keeps one separately managed, image-free face biometric template anchored to the User when a session is deleted (see `DELETE /v3/session/{sessionId}/delete/`). Templates are biometric data with a finite `expires_at`; they never contain images, session data, or identity fields, and they are purged on User deletion, privacy erasure, expiry, or an explicit purge. These endpoints accept application API keys (`x-api-key`) only; Business Console user tokens are rejected with `403`.
Returns one template. The response never includes an image, a vector, the deleted session's id, or identity data.
GET /v3/biometric-templates/{template_uuid}/
type BlocklistAddParams ¶
type BlocklistAddParams struct {
// A person verification session of your application. Deleted sessions are
// refused. Required.
SessionID string `json:"session_id"`
// Blocklist the session's face.
BlocklistFace Opt[bool] `json:"blocklist_face"`
// Blocklist the session's identity document. The document needs its issuing
// state, document type, document number and full name.
BlocklistDocument Opt[bool] `json:"blocklist_document"`
// Blocklist the session's phone number.
BlocklistPhone Opt[bool] `json:"blocklist_phone"`
// Blocklist the session's email address.
BlocklistEmail Opt[bool] `json:"blocklist_email"`
}
BlocklistAddParams holds the parameters of Client.Blocklist.Add.
func (BlocklistAddParams) MarshalJSON ¶
func (r BlocklistAddParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BlocklistAddResponse ¶
type BlocklistAddResponse struct {
// Always `Successfully updated blocklist.`
Message string `json:"message"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BlocklistAddResponse is a response object.
func (*BlocklistAddResponse) UnmarshalJSON ¶
func (r *BlocklistAddResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BlocklistAddResponse leniently.
type BlocklistListParams ¶
type BlocklistListParams struct {
// Only items of this type. When omitted, every type is returned.
ItemType Opt[BlocklistListParamsItemType] `json:"-" query:"item_type"`
// Page size. Defaults to 50. A value above 1000000 returns `400`; zero, a
// negative or a non-numeric value falls back to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based index of the first item to return. Prefer following `next`. A
// value above 1000000 returns `400`; a negative or non-numeric value falls back
// to 0.
Offset Opt[int64] `json:"-" query:"offset"`
}
BlocklistListParams holds the parameters of Client.Blocklist.List.
func (BlocklistListParams) MarshalJSON ¶
func (r BlocklistListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BlocklistListParamsItemType ¶
type BlocklistListParamsItemType string
BlocklistListParamsItemType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BlocklistListParamsItemTypeFace BlocklistListParamsItemType = "face" BlocklistListParamsItemTypeDocument BlocklistListParamsItemType = "document" BlocklistListParamsItemTypePhone BlocklistListParamsItemType = "phone" BlocklistListParamsItemTypeEmail BlocklistListParamsItemType = "email" )
Known values of BlocklistListParamsItemType.
type BlocklistRemoveParams ¶
type BlocklistRemoveParams struct {
// A person verification session of your application. Deleted sessions are
// refused. Required.
SessionID string `json:"session_id"`
// Lift the block on the session's face.
UnblockFace Opt[bool] `json:"unblock_face"`
// Lift the block on the session's identity document.
UnblockDocument Opt[bool] `json:"unblock_document"`
// Lift the block on the session's phone number.
UnblockPhone Opt[bool] `json:"unblock_phone"`
// Lift the block on the session's email address.
UnblockEmail Opt[bool] `json:"unblock_email"`
}
BlocklistRemoveParams holds the parameters of Client.Blocklist.Remove.
func (BlocklistRemoveParams) MarshalJSON ¶
func (r BlocklistRemoveParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BlocklistRemoveResponse ¶
type BlocklistRemoveResponse struct {
// Always `Successfully removed from blocklist.`
Message string `json:"message"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BlocklistRemoveResponse is a response object.
func (*BlocklistRemoveResponse) UnmarshalJSON ¶
func (r *BlocklistRemoveResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BlocklistRemoveResponse leniently.
type BlocklistService ¶
type BlocklistService struct {
// contains filtered or unexported fields
}
BlocklistService holds the blocklist operations. Use it through Client.Blocklist.
func (*BlocklistService) Add ¶
func (r *BlocklistService) Add(ctx context.Context, params BlocklistAddParams, opts ...option.RequestOption) (*BlocklistAddResponse, error)
Add: Add session items to the blocklist.
Blocklists the face, identity document, phone number or email address of one person verification session of the application. For each selected type, Didit takes the session's most recent record, flags it as blocklisted and adds an entry linked to the session to the matching system blocklist (`added_by: "api"`), so new sessions with a matching face, document number, phone number or email address are declined. Every selected item is checked first, so if one is missing nothing is blocklisted; repeating the call for an item already listed keeps its single entry and refreshes `blocklisted_at`. The session itself and sessions that already finished are not changed. A scoped API key needs `workflows: write`.
POST /v3/blocklist/add/
func (*BlocklistService) List ¶
func (r *BlocklistService) List(ctx context.Context, params BlocklistListParams, opts ...option.RequestOption) (*Page[BlocklistedItem], error)
List: List blocklisted items.
Returns one paginated feed of the faces, identity documents, phone numbers and email addresses of the application's verification sessions that are currently blocklisted, newest `blocklisted_at` first; filter with `item_type`. Items of deleted sessions are not included. The feed covers records blocklisted from a session (with [Add session items to the blocklist](https://docs.didit.me/management-api/blocklist/add), from the console, or by a list entry created from a session); values added to a list by hand, uploaded faces, faces from a document-capture selfie and the other entry types are read with [List list entries](https://docs.didit.me/management-api/lists/list-entries). `face_image` and `front_image` are short-lived signed URLs, and a scoped API key without `media: read` receives `null`. A scoped API key needs `workflows: read`.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/blocklist/
func (*BlocklistService) ListAutoPaging ¶
func (r *BlocklistService) ListAutoPaging(ctx context.Context, params BlocklistListParams, opts ...option.RequestOption) *PageIterator[BlocklistedItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*BlocklistService) Remove ¶
func (r *BlocklistService) Remove(ctx context.Context, params BlocklistRemoveParams, opts ...option.RequestOption) (*BlocklistRemoveResponse, error)
Remove: Remove session items from the blocklist.
Lifts the block on the face, identity document, phone number or email address of one person verification session of the application. For each selected type, Didit takes the session's most recent record, clears its blocklisted flag and deletes the system blocklist entries created from that record, so it no longer declines new sessions. Entries added to a list by value are not touched: find them with [List list entries](https://docs.didit.me/management-api/lists/list-entries) and delete them with [Delete a list entry](https://docs.didit.me/management-api/lists/delete-entry). Unblocking a record that is not blocklisted succeeds and changes nothing, and sessions that already finished are not changed. A scoped API key needs `workflows: write`.
POST /v3/blocklist/remove/
type BlocklistedItem ¶
type BlocklistedItem struct {
// What was blocklisted.
Type BlocklistedItemType `json:"type"`
// Verification session the item belongs to.
SessionID string `json:"session_id"`
// Application-scoped number of that session, as shown in the console.
SessionNumber int64 `json:"session_number"`
// When the item was last blocklisted.
BlocklistedAt time.Time `json:"blocklisted_at"`
// Face items: short-lived signed URL, issued again on every call; `null` for a
// scoped API key without `media: read`. Also `null` when no reference image is
// stored.
FaceImage string `json:"face_image"`
// Document items: document type code, for example `P` (passport), `ID`
// (national ID), `DL` (driver's license) or `RP` (residence permit).
DocumentType string `json:"document_type"`
// Document items: the document number, or the personal number when the document
// has none.
DocumentNumber string `json:"document_number"`
// Document items: front image of the document, short-lived signed URL, issued
// again on every call; `null` for a scoped API key without `media: read`.
FrontImage string `json:"front_image"`
// Phone items: the phone number in E.164.
PhoneNumber string `json:"phone_number"`
// Phone items: ISO 3166-1 alpha-2 country of the number.
CountryCode string `json:"country_code"`
// Email items: the email address.
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BlocklistedItem: One blocklisted face, identity document, phone number or email address of a verification session. Fields that do not apply to the item's `type` are `null`.
func (*BlocklistedItem) UnmarshalJSON ¶
func (r *BlocklistedItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BlocklistedItem leniently.
type BlocklistedItemType ¶
type BlocklistedItemType string
BlocklistedItemType: What was blocklisted.
BlocklistedItemType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BlocklistedItemTypeFace BlocklistedItemType = "face" BlocklistedItemTypeDocument BlocklistedItemType = "document" BlocklistedItemTypePhone BlocklistedItemType = "phone" BlocklistedItemTypeEmail BlocklistedItemType = "email" )
Known values of BlocklistedItemType.
type BrandingCustomization ¶
type BrandingCustomization struct {
ColorPrimary string `json:"color_primary"`
ColorSecondary string `json:"color_secondary"`
ColorBackground string `json:"color_background"`
ColorPanel string `json:"color_panel"`
ColorPanel10 string `json:"color_panel_10"`
ColorOnPanel1 string `json:"color_on_panel_1"`
ColorOnPanel2 string `json:"color_on_panel_2"`
ColorOnBackground string `json:"color_on_background"`
ColorButton1 string `json:"color_button_1"`
ColorButton2 string `json:"color_button_2"`
ColorButtonText1 string `json:"color_button_text_1"`
ColorButtonText2 string `json:"color_button_text_2"`
ColorPillText string `json:"color_pill_text"`
BorderRadiusPanel int64 `json:"border_radius_panel"`
BorderRadiusButtons int64 `json:"border_radius_buttons"`
FontFamily string `json:"font_family"`
FontWeight string `json:"font_weight"`
// Read-only. Resolved Google Fonts stylesheet URL for the selected family.
FontURL string `json:"font_url"`
// Read-only URL of the square logo. Upload via `image_square`.
LogoSquare string `json:"logo_square"`
// Read-only URL of the rectangular logo. Upload via `image_rectangular`.
LogoRectangular string `json:"logo_rectangular"`
// Read-only. Temporary signed URL of the rectangular logo for dark mode, shown
// on a dark background. `null` when no dark logo is set or rectangular logos
// are not shown for your account. Upload it with `image_rectangular_dark`.
LogoRectangularDark string `json:"logo_rectangular_dark"`
// Read-only URL of the favicon. Upload via `image_favicon`.
Favicon string `json:"favicon"`
AppPublicName string `json:"app_public_name"`
PrivacyPolicyURL string `json:"privacy_policy_url"`
SkipWelcomeScreen bool `json:"skip_welcome_screen"`
DisableLoginWithDidit bool `json:"disable_login_with_didit"`
HideProgressBar bool `json:"hide_progress_bar"`
CallbackSeconds int64 `json:"callback_seconds"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BrandingCustomization: White-label branding for an application: colors, fonts, radii, logo URLs and UI/UX options. Logo URLs are read-only (set them by uploading images). Custom domain and white-label email are not included.
func (*BrandingCustomization) UnmarshalJSON ¶
func (r *BrandingCustomization) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BrandingCustomization leniently.
type BusinessDetailItem ¶
type BusinessDetailItem struct {
// Didit's stable internal UUID for this business.
DiditInternalID string `json:"didit_internal_id"`
// Your unique identifier for this business (passed when creating sessions).
// This can be null when no vendor identifier was supplied.
VendorData string `json:"vendor_data"`
// Custom display name set by you
DisplayName string `json:"display_name"`
// Official legal name from registry or manual entry
LegalName string `json:"legal_name"`
// Company registration or incorporation number
RegistrationNumber string `json:"registration_number"`
// Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `US`).
CountryCode string `json:"country_code"`
// Best available name: display_name if set, otherwise legal_name
EffectiveName string `json:"effective_name"`
// Lifecycle status of the business record (NOT a session status). `ACTIVE` is
// the default, `FLAGGED` marks it for manual attention, `BLOCKED` prevents new
// sessions for this `vendor_data`.
Status BusinessDetailItemStatus `json:"status"`
// Total number of verification sessions for this business
SessionCount int64 `json:"session_count"`
// Number of approved sessions
ApprovedCount int64 `json:"approved_count"`
// Number of declined sessions
DeclinedCount int64 `json:"declined_count"`
// Number of sessions in review
InReviewCount int64 `json:"in_review_count"`
// Aggregated per-feature status across all of this business's KYB sessions.
// Currently the only key is `KYB` (the registry company check status). Possible
// values: `Approved`, `Declined`, `In Review`, `Not Finished`, `Resub
// Requested`.
Features map[string]any `json:"features"`
// Same data as `features`, as an ordered array of `{feature, status}` objects.
FeaturesList []BusinessDetailItemFeaturesList `json:"features_list"`
// Timestamp of the most recent session
LastSessionAt time.Time `json:"last_session_at"`
// Timestamp of the first session
FirstSessionAt time.Time `json:"first_session_at"`
// Timestamp of the most recent activity (status change, session update, etc.)
LastActivityAt time.Time `json:"last_activity_at"`
// Tags assigned to this business
Tags []BusinessDetailItemTags `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// Custom metadata JSON you attached to this business. Defaults to `{}`.
Metadata map[string]any `json:"metadata"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessDetailItem: Full business detail. Extends BusinessListItem with metadata and updated_at.
func (*BusinessDetailItem) UnmarshalJSON ¶
func (r *BusinessDetailItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessDetailItem leniently.
type BusinessDetailItemFeaturesList ¶
type BusinessDetailItemFeaturesList struct {
Feature string `json:"feature"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessDetailItemFeaturesList is a response object.
func (*BusinessDetailItemFeaturesList) UnmarshalJSON ¶
func (r *BusinessDetailItemFeaturesList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessDetailItemFeaturesList leniently.
type BusinessDetailItemStatus ¶
type BusinessDetailItemStatus string
BusinessDetailItemStatus: Lifecycle status of the business record (NOT a session status). `ACTIVE` is the default, `FLAGGED` marks it for manual attention, `BLOCKED` prevents new sessions for this `vendor_data`.
BusinessDetailItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessDetailItemStatusActive BusinessDetailItemStatus = "ACTIVE" BusinessDetailItemStatusFlagged BusinessDetailItemStatus = "FLAGGED" BusinessDetailItemStatusBlocked BusinessDetailItemStatus = "BLOCKED" )
Known values of BusinessDetailItemStatus.
type BusinessDetailItemTags ¶
type BusinessDetailItemTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessDetailItemTags is a response object.
func (*BusinessDetailItemTags) UnmarshalJSON ¶
func (r *BusinessDetailItemTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessDetailItemTags leniently.
type BusinessListItem ¶
type BusinessListItem struct {
// Didit's stable internal UUID for this business.
DiditInternalID string `json:"didit_internal_id"`
// Your unique identifier for this business (passed when creating sessions).
// This can be null when no vendor identifier was supplied.
VendorData string `json:"vendor_data"`
// Custom display name set by you
DisplayName string `json:"display_name"`
// Official legal name from registry or manual entry
LegalName string `json:"legal_name"`
// Company registration or incorporation number
RegistrationNumber string `json:"registration_number"`
// Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `US`).
CountryCode string `json:"country_code"`
// Best available name: display_name if set, otherwise legal_name
EffectiveName string `json:"effective_name"`
// Lifecycle status of the business record (NOT a session status). `ACTIVE` is
// the default, `FLAGGED` marks it for manual attention, `BLOCKED` prevents new
// sessions for this `vendor_data`.
Status BusinessListItemStatus `json:"status"`
// Total number of verification sessions for this business
SessionCount int64 `json:"session_count"`
// Number of approved sessions
ApprovedCount int64 `json:"approved_count"`
// Number of declined sessions
DeclinedCount int64 `json:"declined_count"`
// Number of sessions in review
InReviewCount int64 `json:"in_review_count"`
// Aggregated per-feature status across all of this business's KYB sessions.
// Currently the only key is `KYB` (the registry company check status). Possible
// values: `Approved`, `Declined`, `In Review`, `Not Finished`, `Resub
// Requested`.
Features map[string]any `json:"features"`
// Same data as `features`, as an ordered array of `{feature, status}` objects.
FeaturesList []BusinessListItemFeaturesList `json:"features_list"`
// Timestamp of the most recent session
LastSessionAt time.Time `json:"last_session_at"`
// Timestamp of the first session
FirstSessionAt time.Time `json:"first_session_at"`
// Timestamp of the most recent activity (status change, session update, etc.)
LastActivityAt time.Time `json:"last_activity_at"`
// Tags assigned to this business
Tags []BusinessListItemTags `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessListItem: A verified business.
func (*BusinessListItem) UnmarshalJSON ¶
func (r *BusinessListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessListItem leniently.
type BusinessListItemFeaturesList ¶
type BusinessListItemFeaturesList struct {
Feature string `json:"feature"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessListItemFeaturesList is a response object.
func (*BusinessListItemFeaturesList) UnmarshalJSON ¶
func (r *BusinessListItemFeaturesList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessListItemFeaturesList leniently.
type BusinessListItemStatus ¶
type BusinessListItemStatus string
BusinessListItemStatus: Lifecycle status of the business record (NOT a session status). `ACTIVE` is the default, `FLAGGED` marks it for manual attention, `BLOCKED` prevents new sessions for this `vendor_data`.
BusinessListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessListItemStatusActive BusinessListItemStatus = "ACTIVE" BusinessListItemStatusFlagged BusinessListItemStatus = "FLAGGED" BusinessListItemStatusBlocked BusinessListItemStatus = "BLOCKED" )
Known values of BusinessListItemStatus.
type BusinessListItemTags ¶
type BusinessListItemTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessListItemTags is a response object.
func (*BusinessListItemTags) UnmarshalJSON ¶
func (r *BusinessListItemTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessListItemTags leniently.
type BusinessSessionsService ¶
type BusinessSessionsService struct {
// contains filtered or unexported fields
}
BusinessSessionsService holds the business_sessions operations. Use it through Client.BusinessSessions.
func (*BusinessSessionsService) ListNetworks ¶
func (r *BusinessSessionsService) ListNetworks(ctx context.Context, businessSessionID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListNetworks: List networks for a business session.
List the networks the business session's vendor business belongs to.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/business-sessions/{business_session_id}/networks/
type BusinessesBatchDeleteParams ¶
type BusinessesBatchDeleteParams struct {
// Your own identifiers to delete, matched exactly as sent.
VendorDataList Opt[[]string] `json:"vendor_data_list"`
// Didit's internal UUIDs (`didit_internal_id`) to delete.
DiditInternalIDList Opt[[]string] `json:"didit_internal_id_list"`
// If `true`, deletes every business in the application. Cannot be combined with
// the list selectors.
DeleteAll Opt[bool] `json:"delete_all"`
}
BusinessesBatchDeleteParams holds the parameters of Client.Businesses.BatchDelete.
func (BusinessesBatchDeleteParams) MarshalJSON ¶
func (r BusinessesBatchDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesBatchDeleteResponse ¶
type BusinessesBatchDeleteResponse struct {
// Number of businesses deleted (excludes vendor_data values that didn't match
// anything).
Deleted int64 `json:"deleted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesBatchDeleteResponse is a response object.
func (*BusinessesBatchDeleteResponse) UnmarshalJSON ¶
func (r *BusinessesBatchDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesBatchDeleteResponse leniently.
type BusinessesCreateParams ¶
type BusinessesCreateParams struct {
// Your unique identifier for this business (free-form string, NOT a UUID).
// Optional but strongly recommended. When provided, must be unique among
// non-deleted businesses for the application; matched exactly as sent.
VendorData Opt[string] `json:"vendor_data"`
// Friendly display name shown in the console (takes precedence over
// `legal_name` for UI display).
DisplayName Opt[string] `json:"display_name"`
// Official legal name of the company.
LegalName Opt[string] `json:"legal_name"`
// Company registration or incorporation number.
RegistrationNumber Opt[string] `json:"registration_number"`
// Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `US`).
CountryCode Opt[string] `json:"country_code"`
// Initial lifecycle status. Defaults to `ACTIVE`.
Status Opt[BusinessesCreateParamsStatus] `json:"status"`
// Arbitrary JSON object you attach to the business. Defaults to `{}`.
Metadata Opt[map[string]any] `json:"metadata"`
}
BusinessesCreateParams holds the parameters of Client.Businesses.Create.
func (BusinessesCreateParams) MarshalJSON ¶
func (r BusinessesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesCreateParamsStatus ¶
type BusinessesCreateParamsStatus string
BusinessesCreateParamsStatus: Initial lifecycle status. Defaults to `ACTIVE`.
BusinessesCreateParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesCreateParamsStatusActive BusinessesCreateParamsStatus = "ACTIVE" BusinessesCreateParamsStatusFlagged BusinessesCreateParamsStatus = "FLAGGED" BusinessesCreateParamsStatusBlocked BusinessesCreateParamsStatus = "BLOCKED" )
Known values of BusinessesCreateParamsStatus.
type BusinessesListParams ¶
type BusinessesListParams struct {
// Page size. Defaults to 50 when omitted. There is no enforced maximum, but
// keep pages small for latency.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record to return. Prefer following the `next`
// URL from the previous page over computing this by hand.
Offset Opt[int64] `json:"-" query:"offset"`
}
BusinessesListParams holds the parameters of Client.Businesses.List.
func (BusinessesListParams) MarshalJSON ¶
func (r BusinessesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesService ¶
type BusinessesService struct {
// contains filtered or unexported fields
}
BusinessesService holds the businesses operations. Use it through Client.Businesses.
func (*BusinessesService) BatchDelete ¶
func (r *BusinessesService) BatchDelete(ctx context.Context, params BusinessesBatchDeleteParams, opts ...option.RequestOption) (*BusinessesBatchDeleteResponse, error)
BatchDelete: Batch delete businesses.
**Permanently delete** businesses - this cannot be undone. For blocking prefer [Update Business Status](#patch-/v3/businesses/-vendor_data-/update-status/) with `BLOCKED`.
POST /v3/businesses/delete/
func (*BusinessesService) Create ¶
func (r *BusinessesService) Create(ctx context.Context, params BusinessesCreateParams, opts ...option.RequestOption) (*BusinessDetailItem, error)
Create: Create business.
Pre-create a [business](/entities/businesses) *without* a KYB session. All fields are optional, but you should always send `vendor_data` - without it the record cannot be linked to sessions or transactions. When provided, `vendor_data` must be unique among non-deleted businesses (exact match; conflicts return 400). Not idempotent.
POST /v3/businesses/create/
func (*BusinessesService) GenerateSessionPDF ¶
func (r *BusinessesService) GenerateSessionPDF(ctx context.Context, businessSessionID string, opts ...option.RequestOption) (*http.Response, error)
GenerateSessionPDF: Download a business session PDF report.
Render the PDF report of one Business Verification (KYB) session: company registry data, key people and beneficial owners, documents, AML results and the other workflow features, plus the session's tags and review activity. With white-label customization on, the report carries your logo and privacy policy URL. The body is the PDF itself (`application/pdf`), not JSON.
The session must be `Approved`, `Declined` or `In Review`; any other status returns `403`, so wait for the `status.updated` [webhook](https://docs.didit.me/integration/webhooks) first. The report is rendered on every call and nothing is billed, so store the file instead of fetching it repeatedly. `GET /v3/session/{sessionId}/generate-pdf/` renders the same kind of report by session ID alone.
A PDF report counts as media: a scoped API key needs `businesses: read` and `media: read`, and a key limited to some workflows or to approved sessions cannot call it.
The response is a file (application/pdf). Read it from the returned response's body and close it.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/businesses/{business_session_id}/pdf/
func (*BusinessesService) List ¶
func (r *BusinessesService) List(ctx context.Context, params BusinessesListParams, opts ...option.RequestOption) (*Page[BusinessListItem], error)
List: List businesses.
List [businesses](/entities/businesses) Didit assembles from KYB sessions sharing the same `vendor_data` (free-form string, NOT a UUID), plus businesses created via the API. Paginated, ordered by `last_session_at` desc. This endpoint does not support filtering or search parameters - fetch pages and filter client-side.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/businesses/
func (*BusinessesService) ListAutoPaging ¶
func (r *BusinessesService) ListAutoPaging(ctx context.Context, params BusinessesListParams, opts ...option.RequestOption) *PageIterator[BusinessListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*BusinessesService) ListNetworks ¶
func (r *BusinessesService) ListNetworks(ctx context.Context, vendorBusinessUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListNetworks: List networks for a business.
List the networks a vendor business belongs to.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/businesses/{vendor_business_uuid}/networks/
func (*BusinessesService) Retrieve ¶
func (r *BusinessesService) Retrieve(ctx context.Context, vendorData string, opts ...option.RequestOption) (*BusinessDetailItem, error)
Retrieve: Get business.
Fetch one [business](/entities/businesses) by `vendor_data` (exact match). Adds `metadata` and `updated_at` to the list view. Deleted businesses return 404.
GET /v3/businesses/{vendor_data}/
func (*BusinessesService) RetrieveOngoingMonitoringJob ¶
func (r *BusinessesService) RetrieveOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
RetrieveOngoingMonitoringJob: Get AML ongoing monitoring job.
Progress and per-outcome counters of a monitoring toggle job. Poll every couple of seconds while status is PENDING or PROCESSING.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/vendor-businesses/toggle-ongoing-monitoring/{job_id}/
func (*BusinessesService) RetrieveSessionOngoingMonitoringJob ¶
func (r *BusinessesService) RetrieveSessionOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
RetrieveSessionOngoingMonitoringJob: Get AML ongoing monitoring job.
Progress and per-outcome counters of a monitoring toggle job. Poll every couple of seconds while status is PENDING or PROCESSING.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/businesses/toggle-ongoing-monitoring/{job_id}/
func (*BusinessesService) SetAMLMonitoring ¶
func (r *BusinessesService) SetAMLMonitoring(ctx context.Context, params BusinessesSetAMLMonitoringParams, opts ...option.RequestOption) (*BusinessesSetAMLMonitoringResponse, error)
SetAMLMonitoring: Enable or disable AML ongoing monitoring for businesses.
Turns AML ongoing monitoring on or off for the selected businesses, with the same semantics as the Business Console. Exactly one monitored AML screening is kept per business, so a profile that verified several times is monitored and billed once; disabling turns monitoring off across all of the profile's screenings. Businesses without any AML screening are screened first (billed as a regular AML screening) when they have the legal or display name needed; otherwise they are reported as `skipped_no_identity_data`.
Set `estimate_only: true` to preview counts and costs without writing anything. Selections of 20 profiles or fewer resolve inline and return `200` with the completed job; larger selections return `202` and run in the background - poll [Get AML monitoring job](#get-/v3/aml-monitoring/jobs/-job_id-/) with the returned `job_id`. Enabling is refused with `403` when the organization balance does not cover the estimate. Identifiers that match nothing are listed in `unmatched` and never fail the request: a selection that matches nothing completes as an empty job (`total` 0), the same convention as the batch delete endpoints.
POST /v3/businesses/aml-monitoring/
func (*BusinessesService) SetOngoingMonitoring ¶
func (r *BusinessesService) SetOngoingMonitoring(ctx context.Context, params OngoingMonitoringToggleRequest, opts ...option.RequestOption) (*BusinessesSetOngoingMonitoringResponse, error)
SetOngoingMonitoring: Toggle AML ongoing monitoring for businesses.
Business-level equivalent of the user toggle: one monitored AML screening per business, with businesses lacking any AML screening screened first (company entity). Same estimate_only, inline fast-path and async job contract.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/vendor-businesses/toggle-ongoing-monitoring/
func (*BusinessesService) SetSessionOngoingMonitoring ¶
func (r *BusinessesService) SetSessionOngoingMonitoring(ctx context.Context, params BusinessesSetSessionOngoingMonitoringParams, opts ...option.RequestOption) (*BusinessesSetSessionOngoingMonitoringResponse, error)
SetSessionOngoingMonitoring: Toggle AML ongoing monitoring for business sessions.
Session-level toggle for KYB verifications, addressed by session number. Sessions without an AML screening get one created and attached to the session itself. Same estimate_only, inline fast-path and async job contract as the user-level endpoints. Replaces the legacy synchronous behavior that skipped sessions without an AML screening.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/businesses/toggle-ongoing-monitoring/
func (*BusinessesService) Update ¶
func (r *BusinessesService) Update(ctx context.Context, vendorData string, params BusinessesUpdateParams, opts ...option.RequestOption) (*BusinessDetailItem, error)
Update: Update business.
Partial update of a business: `display_name`, `legal_name`, `registration_number`, `country_code`, `status`, `metadata`. `metadata` fully replaces. Setting `status` to `BLOCKED` adds the `vendor_data` to the system blocklist; moving away from `BLOCKED` removes that entry. Every edit is recorded in the company's activity: a status change with the optional `reason`, and a change to `display_name`, `legal_name`, `registration_number`, `country_code` or `metadata` as a profile update.
PATCH /v3/businesses/{vendor_data}/
func (*BusinessesService) UpdateStatus ¶
func (r *BusinessesService) UpdateStatus(ctx context.Context, vendorData string, params BusinessesUpdateStatusParams, opts ...option.RequestOption) (*BusinessDetailItem, error)
UpdateStatus: Update business status.
Flip only the lifecycle `status` of a business: `ACTIVE`, `FLAGGED` or `BLOCKED` (not session statuses). `BLOCKED` adds the `vendor_data` to the system blocklist; moving away from `BLOCKED` removes that entry. Each change is recorded in the company's activity, with the optional `reason`. Sending the current status changes nothing and records no `reason`. The `business.status.updated` webhook does not carry `reason`.
PATCH /v3/businesses/{vendor_data}/update-status/
type BusinessesSetAMLMonitoringParams ¶
type BusinessesSetAMLMonitoringParams struct {
// true to enable monitoring, false to disable it. Required.
IsEnabled bool `json:"is_enabled"`
// When true, returns the cost estimate and performs no writes - no screening,
// no billing, no job.
EstimateOnly Opt[bool] `json:"estimate_only"`
// Your own identifiers of the businesses to toggle, matched exactly as sent.
VendorDataList Opt[[]string] `json:"vendor_data_list"`
// Didit internal ids of the businesses to toggle - the `didit_internal_id`
// returned by the create, get and list endpoints.
DiditInternalIDList Opt[[]string] `json:"didit_internal_id_list"`
}
BusinessesSetAMLMonitoringParams holds the parameters of Client.Businesses.SetAMLMonitoring.
func (BusinessesSetAMLMonitoringParams) MarshalJSON ¶
func (r BusinessesSetAMLMonitoringParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesSetAMLMonitoringResponse ¶
type BusinessesSetAMLMonitoringResponse struct {
JobID string `json:"job_id"`
Status BusinessesSetAMLMonitoringResponseStatus `json:"status"`
// true when the job enables monitoring, false when it disables it.
IsEnabled bool `json:"is_enabled"`
// Which profile family the job toggles.
TargetType BusinessesSetAMLMonitoringResponseTargetType `json:"target_type"`
// Profiles the job processes.
Total int64 `json:"total"`
// Profiles processed so far.
Processed int64 `json:"processed"`
// Per-record outcome counters. Every selected profile resolves to exactly one
// counter; nothing is silently skipped.
Outcomes BusinessesSetAMLMonitoringResponseOutcomes `json:"outcomes"`
// One entry per processed profile, in processing order. Grows while the job
// runs; complete once status is COMPLETED. Recorded for jobs started through
// the API.
Results []BusinessesSetAMLMonitoringResponseResults `json:"results"`
// Generic failure message when status is FAILED; the detailed cause is kept on
// the platform side.
Error string `json:"error"`
CreatedAt time.Time `json:"created_at"`
CompletedAt time.Time `json:"completed_at"`
// Cost preview. Returned directly when estimate_only is true (nothing is
// written).
Estimate BusinessesSetAMLMonitoringResponseEstimate `json:"estimate"`
// Identifiers of the request that matched no profile in this application,
// exactly as sent. They are not part of the job.
Unmatched []string `json:"unmatched"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetAMLMonitoringResponse is a response object.
func (*BusinessesSetAMLMonitoringResponse) UnmarshalJSON ¶
func (r *BusinessesSetAMLMonitoringResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetAMLMonitoringResponse leniently.
type BusinessesSetAMLMonitoringResponseEstimate ¶
type BusinessesSetAMLMonitoringResponseEstimate struct {
// Profiles matched by the selection.
UsersTotal int64 `json:"users_total"`
// Profiles already monitored (nothing to do when enabling; these are what
// disabling turns off).
AlreadyEnabled int64 `json:"already_enabled"`
// Profiles whose existing AML screening will be switched to monitored (no new
// screening).
WithExistingAML int64 `json:"with_existing_aml"`
// Profiles without any AML screening that will be screened first (billed as a
// regular AML screening).
NeedingScreening int64 `json:"needing_screening"`
// Profiles that cannot be screened because identity data is missing.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Blocked users that will be skipped (always 0 for businesses).
SkippedBlocked int64 `json:"skipped_blocked"`
// One-time cost of the new screenings.
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
// Yearly monitoring cost of the profiles that will become monitored.
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
// Whether the organization balance covers the screening plus the first year of
// monitoring.
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetAMLMonitoringResponseEstimate: Cost preview. Returned directly when estimate_only is true (nothing is written).
func (*BusinessesSetAMLMonitoringResponseEstimate) UnmarshalJSON ¶
func (r *BusinessesSetAMLMonitoringResponseEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetAMLMonitoringResponseEstimate leniently.
type BusinessesSetAMLMonitoringResponseOutcomes ¶
type BusinessesSetAMLMonitoringResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled on it.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active; nothing changed and nothing was billed.
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring turned off across every AML screening of the profile.
Disabled int64 `json:"disabled"`
// Skipped: the profile lacks the full name, date of birth and country (users)
// or a name (businesses) needed to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application, no screening is created.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening could not be completed; retry later.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out while the job was running.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetAMLMonitoringResponseOutcomes: Per-record outcome counters. Every selected profile resolves to exactly one counter; nothing is silently skipped.
func (*BusinessesSetAMLMonitoringResponseOutcomes) UnmarshalJSON ¶
func (r *BusinessesSetAMLMonitoringResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetAMLMonitoringResponseOutcomes leniently.
type BusinessesSetAMLMonitoringResponseResults ¶
type BusinessesSetAMLMonitoringResponseResults struct {
// Didit internal id of the profile.
DiditInternalID string `json:"didit_internal_id"`
// Your own identifier for the profile.
VendorData string `json:"vendor_data"`
Outcome BusinessesSetAMLMonitoringResponseResultsOutcome `json:"outcome"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetAMLMonitoringResponseResults is a response object.
func (*BusinessesSetAMLMonitoringResponseResults) UnmarshalJSON ¶
func (r *BusinessesSetAMLMonitoringResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetAMLMonitoringResponseResults leniently.
type BusinessesSetAMLMonitoringResponseResultsOutcome ¶
type BusinessesSetAMLMonitoringResponseResultsOutcome string
BusinessesSetAMLMonitoringResponseResultsOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesSetAMLMonitoringResponseResultsOutcomeEnabled BusinessesSetAMLMonitoringResponseResultsOutcome = "enabled" BusinessesSetAMLMonitoringResponseResultsOutcomeScreenedAndEnabled BusinessesSetAMLMonitoringResponseResultsOutcome = "screened_and_enabled" BusinessesSetAMLMonitoringResponseResultsOutcomeAlreadyEnabled BusinessesSetAMLMonitoringResponseResultsOutcome = "already_enabled" BusinessesSetAMLMonitoringResponseResultsOutcomeDisabled BusinessesSetAMLMonitoringResponseResultsOutcome = "disabled" BusinessesSetAMLMonitoringResponseResultsOutcomeSkippedNoIdentityData BusinessesSetAMLMonitoringResponseResultsOutcome = "skipped_no_identity_data" BusinessesSetAMLMonitoringResponseResultsOutcomeSkippedBlocked BusinessesSetAMLMonitoringResponseResultsOutcome = "skipped_blocked" BusinessesSetAMLMonitoringResponseResultsOutcomeSkippedSandbox BusinessesSetAMLMonitoringResponseResultsOutcome = "skipped_sandbox" BusinessesSetAMLMonitoringResponseResultsOutcomeFailedProvider BusinessesSetAMLMonitoringResponseResultsOutcome = "failed_provider" BusinessesSetAMLMonitoringResponseResultsOutcomeFailedInsufficientBalance BusinessesSetAMLMonitoringResponseResultsOutcome = "failed_insufficient_balance" )
Known values of BusinessesSetAMLMonitoringResponseResultsOutcome.
type BusinessesSetAMLMonitoringResponseStatus ¶
type BusinessesSetAMLMonitoringResponseStatus string
BusinessesSetAMLMonitoringResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesSetAMLMonitoringResponseStatusPending BusinessesSetAMLMonitoringResponseStatus = "PENDING" BusinessesSetAMLMonitoringResponseStatusProcessing BusinessesSetAMLMonitoringResponseStatus = "PROCESSING" BusinessesSetAMLMonitoringResponseStatusCompleted BusinessesSetAMLMonitoringResponseStatus = "COMPLETED" BusinessesSetAMLMonitoringResponseStatusFailed BusinessesSetAMLMonitoringResponseStatus = "FAILED" )
Known values of BusinessesSetAMLMonitoringResponseStatus.
type BusinessesSetAMLMonitoringResponseTargetType ¶
type BusinessesSetAMLMonitoringResponseTargetType string
BusinessesSetAMLMonitoringResponseTargetType: Which profile family the job toggles.
BusinessesSetAMLMonitoringResponseTargetType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesSetAMLMonitoringResponseTargetTypeUser BusinessesSetAMLMonitoringResponseTargetType = "user" BusinessesSetAMLMonitoringResponseTargetTypeBusiness BusinessesSetAMLMonitoringResponseTargetType = "business" )
Known values of BusinessesSetAMLMonitoringResponseTargetType.
type BusinessesSetOngoingMonitoringResponse ¶
type BusinessesSetOngoingMonitoringResponse struct {
JobID string `json:"job_id"`
Status BusinessesSetOngoingMonitoringResponseStatus `json:"status"`
IsEnabled bool `json:"is_enabled"`
Total int64 `json:"total"`
Processed int64 `json:"processed"`
// Per-entity outcome counters. Nothing is silently skipped: every requested
// entity resolves to exactly one counter.
Outcomes BusinessesSetOngoingMonitoringResponseOutcomes `json:"outcomes"`
Error string `json:"error"`
// Cost preview. Returned directly when estimate_only is true (no writes are
// performed).
Estimate BusinessesSetOngoingMonitoringResponseEstimate `json:"estimate"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetOngoingMonitoringResponse is a response object.
func (*BusinessesSetOngoingMonitoringResponse) UnmarshalJSON ¶
func (r *BusinessesSetOngoingMonitoringResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetOngoingMonitoringResponse leniently.
type BusinessesSetOngoingMonitoringResponseEstimate ¶
type BusinessesSetOngoingMonitoringResponseEstimate struct {
// Entities in the selection.
UsersTotal int64 `json:"users_total"`
AlreadyEnabled int64 `json:"already_enabled"`
// Entities whose existing AML screening will be switched to monitored.
WithExistingAML int64 `json:"with_existing_aml"`
// Entities without any AML screening that will be screened first (billed).
NeedingScreening int64 `json:"needing_screening"`
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
SkippedBlocked int64 `json:"skipped_blocked"`
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetOngoingMonitoringResponseEstimate: Cost preview. Returned directly when estimate_only is true (no writes are performed).
func (*BusinessesSetOngoingMonitoringResponseEstimate) UnmarshalJSON ¶
func (r *BusinessesSetOngoingMonitoringResponseEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetOngoingMonitoringResponseEstimate leniently.
type BusinessesSetOngoingMonitoringResponseOutcomes ¶
type BusinessesSetOngoingMonitoringResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active (legacy duplicate rows are consolidated).
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring disabled on every AML row of the entity.
Disabled int64 `json:"disabled"`
// Skipped: no full name + date of birth + country available to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening provider call failed.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out mid-job.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetOngoingMonitoringResponseOutcomes: Per-entity outcome counters. Nothing is silently skipped: every requested entity resolves to exactly one counter.
func (*BusinessesSetOngoingMonitoringResponseOutcomes) UnmarshalJSON ¶
func (r *BusinessesSetOngoingMonitoringResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetOngoingMonitoringResponseOutcomes leniently.
type BusinessesSetOngoingMonitoringResponseStatus ¶
type BusinessesSetOngoingMonitoringResponseStatus string
BusinessesSetOngoingMonitoringResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesSetOngoingMonitoringResponseStatusPending BusinessesSetOngoingMonitoringResponseStatus = "PENDING" BusinessesSetOngoingMonitoringResponseStatusProcessing BusinessesSetOngoingMonitoringResponseStatus = "PROCESSING" BusinessesSetOngoingMonitoringResponseStatusCompleted BusinessesSetOngoingMonitoringResponseStatus = "COMPLETED" BusinessesSetOngoingMonitoringResponseStatusFailed BusinessesSetOngoingMonitoringResponseStatus = "FAILED" )
Known values of BusinessesSetOngoingMonitoringResponseStatus.
type BusinessesSetSessionOngoingMonitoringParams ¶
type BusinessesSetSessionOngoingMonitoringParams struct {
// true to enable monitoring, false to disable it. Required.
IsEnabled bool `json:"is_enabled"`
// When true, returns the cost estimate and performs no writes.
EstimateOnly Opt[bool] `json:"estimate_only"`
// Apply to every entity of the application (scoped by the filter_* params when
// present).
UpdateAll Opt[bool] `json:"update_all"`
FilterSearch Opt[string] `json:"filter_search"`
FilterStatus Opt[[]string] `json:"filter_status"`
FilterCountry Opt[string] `json:"filter_country"`
FilterDateFrom Opt[string] `json:"filter_date_from"`
FilterDateTo Opt[string] `json:"filter_date_to"`
// Business session numbers to toggle. Required unless update_all (or the legacy
// toggle_all alias) is true.
SessionNumbers Opt[[]string] `json:"session_numbers"`
// Legacy alias of update_all.
ToggleAll Opt[bool] `json:"toggle_all"`
FilterWorkflowID Opt[string] `json:"filter_workflow_id"`
}
BusinessesSetSessionOngoingMonitoringParams holds the parameters of Client.Businesses.SetSessionOngoingMonitoring.
func (BusinessesSetSessionOngoingMonitoringParams) MarshalJSON ¶
func (r BusinessesSetSessionOngoingMonitoringParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesSetSessionOngoingMonitoringResponse ¶
type BusinessesSetSessionOngoingMonitoringResponse struct {
JobID string `json:"job_id"`
Status BusinessesSetSessionOngoingMonitoringResponseStatus `json:"status"`
IsEnabled bool `json:"is_enabled"`
Total int64 `json:"total"`
Processed int64 `json:"processed"`
// Per-entity outcome counters. Nothing is silently skipped: every requested
// entity resolves to exactly one counter.
Outcomes BusinessesSetSessionOngoingMonitoringResponseOutcomes `json:"outcomes"`
Error string `json:"error"`
// Cost preview. Returned directly when estimate_only is true (no writes are
// performed).
Estimate BusinessesSetSessionOngoingMonitoringResponseEstimate `json:"estimate"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetSessionOngoingMonitoringResponse is a response object.
func (*BusinessesSetSessionOngoingMonitoringResponse) UnmarshalJSON ¶
func (r *BusinessesSetSessionOngoingMonitoringResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetSessionOngoingMonitoringResponse leniently.
type BusinessesSetSessionOngoingMonitoringResponseEstimate ¶
type BusinessesSetSessionOngoingMonitoringResponseEstimate struct {
// Entities in the selection.
UsersTotal int64 `json:"users_total"`
AlreadyEnabled int64 `json:"already_enabled"`
// Entities whose existing AML screening will be switched to monitored.
WithExistingAML int64 `json:"with_existing_aml"`
// Entities without any AML screening that will be screened first (billed).
NeedingScreening int64 `json:"needing_screening"`
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
SkippedBlocked int64 `json:"skipped_blocked"`
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetSessionOngoingMonitoringResponseEstimate: Cost preview. Returned directly when estimate_only is true (no writes are performed).
func (*BusinessesSetSessionOngoingMonitoringResponseEstimate) UnmarshalJSON ¶
func (r *BusinessesSetSessionOngoingMonitoringResponseEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetSessionOngoingMonitoringResponseEstimate leniently.
type BusinessesSetSessionOngoingMonitoringResponseOutcomes ¶
type BusinessesSetSessionOngoingMonitoringResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active (legacy duplicate rows are consolidated).
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring disabled on every AML row of the entity.
Disabled int64 `json:"disabled"`
// Skipped: no full name + date of birth + country available to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening provider call failed.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out mid-job.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
BusinessesSetSessionOngoingMonitoringResponseOutcomes: Per-entity outcome counters. Nothing is silently skipped: every requested entity resolves to exactly one counter.
func (*BusinessesSetSessionOngoingMonitoringResponseOutcomes) UnmarshalJSON ¶
func (r *BusinessesSetSessionOngoingMonitoringResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes BusinessesSetSessionOngoingMonitoringResponseOutcomes leniently.
type BusinessesSetSessionOngoingMonitoringResponseStatus ¶
type BusinessesSetSessionOngoingMonitoringResponseStatus string
BusinessesSetSessionOngoingMonitoringResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesSetSessionOngoingMonitoringResponseStatusPending BusinessesSetSessionOngoingMonitoringResponseStatus = "PENDING" BusinessesSetSessionOngoingMonitoringResponseStatusProcessing BusinessesSetSessionOngoingMonitoringResponseStatus = "PROCESSING" BusinessesSetSessionOngoingMonitoringResponseStatusCompleted BusinessesSetSessionOngoingMonitoringResponseStatus = "COMPLETED" BusinessesSetSessionOngoingMonitoringResponseStatusFailed BusinessesSetSessionOngoingMonitoringResponseStatus = "FAILED" )
Known values of BusinessesSetSessionOngoingMonitoringResponseStatus.
type BusinessesUpdateParams ¶
type BusinessesUpdateParams struct {
// Friendly display name shown in the console (takes precedence over
// `legal_name` for UI display).
DisplayName Opt[string] `json:"display_name"`
// Official legal name from registry or manual entry.
LegalName Opt[string] `json:"legal_name"`
// Company registration or incorporation number.
RegistrationNumber Opt[string] `json:"registration_number"`
// Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `US`).
CountryCode Opt[string] `json:"country_code"`
// Business lifecycle status. Setting `BLOCKED` automatically adds the
// `vendor_data` to the system blocklist; flipping away from `BLOCKED` removes
// that blocklist entry.
Status Opt[BusinessesUpdateParamsStatus] `json:"status"`
// Arbitrary JSON object you attach to the business. **Fully replaces** the
// existing metadata on update - merge client-side if you only want to add keys.
Metadata Opt[map[string]any] `json:"metadata"`
// Why the status changed. Recorded on the status-change entry of the company's
// **Activity** in the Business Console, only when the status actually changes.
// Webhooks do not carry it.
Reason Opt[string] `json:"reason"`
}
BusinessesUpdateParams holds the parameters of Client.Businesses.Update.
func (BusinessesUpdateParams) MarshalJSON ¶
func (r BusinessesUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesUpdateParamsStatus ¶
type BusinessesUpdateParamsStatus string
BusinessesUpdateParamsStatus: Business lifecycle status. Setting `BLOCKED` automatically adds the `vendor_data` to the system blocklist; flipping away from `BLOCKED` removes that blocklist entry.
BusinessesUpdateParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesUpdateParamsStatusActive BusinessesUpdateParamsStatus = "ACTIVE" BusinessesUpdateParamsStatusFlagged BusinessesUpdateParamsStatus = "FLAGGED" BusinessesUpdateParamsStatusBlocked BusinessesUpdateParamsStatus = "BLOCKED" )
Known values of BusinessesUpdateParamsStatus.
type BusinessesUpdateStatusParams ¶
type BusinessesUpdateStatusParams struct {
// New lifecycle status. `BLOCKED` also adds the `vendor_data` to the system
// blocklist. Required.
Status BusinessesUpdateStatusParamsStatus `json:"status"`
// Why the status changed. Recorded on the status-change entry of the company's
// **Activity** in the Business Console, only when the status actually changes.
// Webhooks do not carry it.
Reason Opt[string] `json:"reason"`
}
BusinessesUpdateStatusParams holds the parameters of Client.Businesses.UpdateStatus.
func (BusinessesUpdateStatusParams) MarshalJSON ¶
func (r BusinessesUpdateStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type BusinessesUpdateStatusParamsStatus ¶
type BusinessesUpdateStatusParamsStatus string
BusinessesUpdateStatusParamsStatus: New lifecycle status. `BLOCKED` also adds the `vendor_data` to the system blocklist.
BusinessesUpdateStatusParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( BusinessesUpdateStatusParamsStatusActive BusinessesUpdateStatusParamsStatus = "ACTIVE" BusinessesUpdateStatusParamsStatusFlagged BusinessesUpdateStatusParamsStatus = "FLAGGED" BusinessesUpdateStatusParamsStatusBlocked BusinessesUpdateStatusParamsStatus = "BLOCKED" )
Known values of BusinessesUpdateStatusParamsStatus.
type CaseActionActionEnum ¶
type CaseActionActionEnum string
CaseActionActionEnum: * `set_status` - set_status
- `add_tags` - add_tags
- `add_note` - add_note
- `add_to_blocklist` - add_to_blocklist
CaseActionActionEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseActionActionEnumSetStatus CaseActionActionEnum = "set_status" CaseActionActionEnumAddTags CaseActionActionEnum = "add_tags" CaseActionActionEnumAddNote CaseActionActionEnum = "add_note" CaseActionActionEnumAddToBlocklist CaseActionActionEnum = "add_to_blocklist" )
Known values of CaseActionActionEnum.
type CaseActionCaseActionReceipt ¶
type CaseActionCaseActionReceipt struct {
UUID string `json:"uuid"`
ClientReference string `json:"client_reference"`
Action string `json:"action"`
Status CaseActionStatusEnum `json:"status"`
Result any `json:"result"`
Error string `json:"error"`
ActorEmail string `json:"actor_email"`
Attempts int64 `json:"attempts"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseActionCaseActionReceipt is a response object.
func (*CaseActionCaseActionReceipt) UnmarshalJSON ¶
func (r *CaseActionCaseActionReceipt) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseActionCaseActionReceipt leniently.
type CaseActionCaseActionReceiptPage ¶
type CaseActionCaseActionReceiptPage struct {
Count int64 `json:"count"`
NextOffset int64 `json:"next_offset"`
Results []CaseActionCaseActionReceipt `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseActionCaseActionReceiptPage is a response object.
func (*CaseActionCaseActionReceiptPage) UnmarshalJSON ¶
func (r *CaseActionCaseActionReceiptPage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseActionCaseActionReceiptPage leniently.
type CaseActionCaseEntityActionRequest ¶
type CaseActionCaseEntityActionRequest struct {
ClientReference Opt[string] `json:"client_reference"`
Retry Opt[bool] `json:"retry"`
// Required.
Action CaseActionActionEnum `json:"action"`
Status Opt[string] `json:"status"`
Tags Opt[[]string] `json:"tags"`
Note Opt[string] `json:"note"`
}
CaseActionCaseEntityActionRequest is a request object.
func (CaseActionCaseEntityActionRequest) MarshalJSON ¶
func (r CaseActionCaseEntityActionRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseActionCaseEntityActionResult ¶
type CaseActionCaseEntityActionResult struct {
Receipt CaseActionCaseActionReceipt `json:"receipt"`
EntityType CaseActionEntityTypeEnum `json:"entity_type"`
EntityUUID string `json:"entity_uuid"`
Action string `json:"action"`
PreviousStatus string `json:"previous_status"`
NewStatus string `json:"new_status"`
TagsAdded []string `json:"tags_added"`
CommentUUID string `json:"comment_uuid"`
Blocklisted []string `json:"blocklisted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseActionCaseEntityActionResult is a response object.
func (*CaseActionCaseEntityActionResult) UnmarshalJSON ¶
func (r *CaseActionCaseEntityActionResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseActionCaseEntityActionResult leniently.
type CaseActionEntityTypeEnum ¶
type CaseActionEntityTypeEnum string
CaseActionEntityTypeEnum: * `user` - user
- `business` - business
CaseActionEntityTypeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseActionEntityTypeEnumUser CaseActionEntityTypeEnum = "user" CaseActionEntityTypeEnumBusiness CaseActionEntityTypeEnum = "business" )
Known values of CaseActionEntityTypeEnum.
type CaseActionStatusEnum ¶
type CaseActionStatusEnum string
CaseActionStatusEnum: * `APPLIED` - Applied
- `FAILED` - Failed
CaseActionStatusEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseActionStatusEnumApplied CaseActionStatusEnum = "APPLIED" CaseActionStatusEnumFailed CaseActionStatusEnum = "FAILED" )
Known values of CaseActionStatusEnum.
type CaseAssignee ¶
type CaseAssignee struct {
UUID string `json:"uuid"`
FullName string `json:"full_name"`
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseAssignee is a response object.
func (*CaseAssignee) UnmarshalJSON ¶
func (r *CaseAssignee) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseAssignee leniently.
type CaseBlueprintDetail ¶
type CaseBlueprintDetail struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Description string `json:"description"`
AssignmentMethod CaseBlueprintDetailAssignmentMethod `json:"assignment_method"`
AssigneePool []string `json:"assignee_pool"`
MaxActiveCases int64 `json:"max_active_cases"`
EscalationEnabled bool `json:"escalation_enabled"`
TransferEnabled bool `json:"transfer_enabled"`
RequireResolutionNote bool `json:"require_resolution_note"`
IsActive bool `json:"is_active"`
PresetKey string `json:"preset_key"`
CreatedAt time.Time `json:"created_at"`
EscalationBlueprint string `json:"escalation_blueprint"`
EscalationBlueprintName string `json:"escalation_blueprint_name"`
FourEyesCheckerBlueprint string `json:"four_eyes_checker_blueprint"`
FourEyesCheckerBlueprintName string `json:"four_eyes_checker_blueprint_name"`
// The six togglable sections that drive which tabs and fields appear on the
// case page. Unknown sections or keys are rejected.
ContentConfig CaseBlueprintDetailContentConfig `json:"content_config"`
// Connectors currently routing new cases into this blueprint.
CreationSources []CaseBlueprintDetailCreationSources `json:"creation_sources"`
// Other blueprints whose Escalation target points at this one.
ReceivesEscalationFrom []CaseBlueprintDetailReceivesEscalationFrom `json:"receives_escalation_from"`
UpdatedAt time.Time `json:"updated_at"`
Version int64 `json:"version"`
DefaultDeadlineHours int64 `json:"default_deadline_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetail is a response object.
func (*CaseBlueprintDetail) UnmarshalJSON ¶
func (r *CaseBlueprintDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetail leniently.
type CaseBlueprintDetailAssignmentMethod ¶
type CaseBlueprintDetailAssignmentMethod string
CaseBlueprintDetailAssignmentMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseBlueprintDetailAssignmentMethodManual CaseBlueprintDetailAssignmentMethod = "MANUAL" CaseBlueprintDetailAssignmentMethodAutomatic CaseBlueprintDetailAssignmentMethod = "AUTOMATIC" )
Known values of CaseBlueprintDetailAssignmentMethod.
type CaseBlueprintDetailContentConfig ¶
type CaseBlueprintDetailContentConfig struct {
Checklist CaseBlueprintDetailContentConfigChecklist `json:"checklist"`
AMLControl CaseBlueprintDetailContentConfigAMLControl `json:"aml_control"`
Identity CaseBlueprintDetailContentConfigIdentity `json:"identity"`
Verifications CaseBlueprintDetailContentConfigVerifications `json:"verifications"`
Reporting CaseBlueprintDetailContentConfigReporting `json:"reporting"`
Financial CaseBlueprintDetailContentConfigFinancial `json:"financial"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfig: The six togglable sections that drive which tabs and fields appear on the case page. Unknown sections or keys are rejected.
func (*CaseBlueprintDetailContentConfig) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfig leniently.
type CaseBlueprintDetailContentConfigAMLControl ¶
type CaseBlueprintDetailContentConfigAMLControl struct {
Enabled bool `json:"enabled"`
Financial bool `json:"financial"`
Identity bool `json:"identity"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigAMLControl is a response object.
func (*CaseBlueprintDetailContentConfigAMLControl) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigAMLControl) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigAMLControl leniently.
type CaseBlueprintDetailContentConfigChecklist ¶
type CaseBlueprintDetailContentConfigChecklist struct {
Enabled bool `json:"enabled"`
// When true, a case can be resolved with incomplete checklist items.
Optional bool `json:"optional"`
Items []CaseBlueprintDetailContentConfigChecklistItems `json:"items"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigChecklist is a response object.
func (*CaseBlueprintDetailContentConfigChecklist) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigChecklist) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigChecklist leniently.
type CaseBlueprintDetailContentConfigChecklistItems ¶
type CaseBlueprintDetailContentConfigChecklistItems struct {
Label string `json:"label"`
Order int64 `json:"order"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigChecklistItems is a response object.
func (*CaseBlueprintDetailContentConfigChecklistItems) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigChecklistItems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigChecklistItems leniently.
type CaseBlueprintDetailContentConfigFinancial ¶
type CaseBlueprintDetailContentConfigFinancial struct {
Enabled bool `json:"enabled"`
PaymentMethods bool `json:"payment_methods"`
Transactions bool `json:"transactions"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigFinancial is a response object.
func (*CaseBlueprintDetailContentConfigFinancial) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigFinancial) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigFinancial leniently.
type CaseBlueprintDetailContentConfigIdentity ¶
type CaseBlueprintDetailContentConfigIdentity struct {
Enabled bool `json:"enabled"`
PersonalInformation bool `json:"personal_information"`
ApplicantTags bool `json:"applicant_tags"`
ContactInformation bool `json:"contact_information"`
RiskOverview bool `json:"risk_overview"`
PoiDocuments bool `json:"poi_documents"`
POADocuments bool `json:"poa_documents"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigIdentity is a response object.
func (*CaseBlueprintDetailContentConfigIdentity) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigIdentity) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigIdentity leniently.
type CaseBlueprintDetailContentConfigReporting ¶
type CaseBlueprintDetailContentConfigReporting struct {
Enabled bool `json:"enabled"`
FiuReports bool `json:"fiu_reports"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigReporting is a response object.
func (*CaseBlueprintDetailContentConfigReporting) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigReporting) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigReporting leniently.
type CaseBlueprintDetailContentConfigVerifications ¶
type CaseBlueprintDetailContentConfigVerifications struct {
Enabled bool `json:"enabled"`
Summary bool `json:"summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailContentConfigVerifications is a response object.
func (*CaseBlueprintDetailContentConfigVerifications) UnmarshalJSON ¶
func (r *CaseBlueprintDetailContentConfigVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailContentConfigVerifications leniently.
type CaseBlueprintDetailCreationSources ¶
type CaseBlueprintDetailCreationSources struct {
Kind CaseBlueprintDetailCreationSourcesKind `json:"kind"`
ID string `json:"id"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailCreationSources is a response object.
func (*CaseBlueprintDetailCreationSources) UnmarshalJSON ¶
func (r *CaseBlueprintDetailCreationSources) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailCreationSources leniently.
type CaseBlueprintDetailCreationSourcesKind ¶
type CaseBlueprintDetailCreationSourcesKind string
CaseBlueprintDetailCreationSourcesKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseBlueprintDetailCreationSourcesKindAML CaseBlueprintDetailCreationSourcesKind = "aml" CaseBlueprintDetailCreationSourcesKindRule CaseBlueprintDetailCreationSourcesKind = "rule" CaseBlueprintDetailCreationSourcesKindWorkflow CaseBlueprintDetailCreationSourcesKind = "workflow" )
Known values of CaseBlueprintDetailCreationSourcesKind.
type CaseBlueprintDetailReceivesEscalationFrom ¶
type CaseBlueprintDetailReceivesEscalationFrom struct {
ID string `json:"id"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintDetailReceivesEscalationFrom is a response object.
func (*CaseBlueprintDetailReceivesEscalationFrom) UnmarshalJSON ¶
func (r *CaseBlueprintDetailReceivesEscalationFrom) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintDetailReceivesEscalationFrom leniently.
type CaseBlueprintListItem ¶
type CaseBlueprintListItem struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Description string `json:"description"`
AssignmentMethod CaseBlueprintListItemAssignmentMethod `json:"assignment_method"`
AssigneePool []string `json:"assignee_pool"`
MaxActiveCases int64 `json:"max_active_cases"`
EscalationEnabled bool `json:"escalation_enabled"`
TransferEnabled bool `json:"transfer_enabled"`
RequireResolutionNote bool `json:"require_resolution_note"`
IsActive bool `json:"is_active"`
PresetKey string `json:"preset_key"`
CreatedAt time.Time `json:"created_at"`
Version int64 `json:"version"`
DefaultDeadlineHours int64 `json:"default_deadline_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintListItem is a response object.
func (*CaseBlueprintListItem) UnmarshalJSON ¶
func (r *CaseBlueprintListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintListItem leniently.
type CaseBlueprintListItemAssignmentMethod ¶
type CaseBlueprintListItemAssignmentMethod string
CaseBlueprintListItemAssignmentMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseBlueprintListItemAssignmentMethodManual CaseBlueprintListItemAssignmentMethod = "MANUAL" CaseBlueprintListItemAssignmentMethodAutomatic CaseBlueprintListItemAssignmentMethod = "AUTOMATIC" )
Known values of CaseBlueprintListItemAssignmentMethod.
type CaseBlueprintPresetInstallResult ¶
type CaseBlueprintPresetInstallResult struct {
Created []string `json:"created"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintPresetInstallResult is a response object.
func (*CaseBlueprintPresetInstallResult) UnmarshalJSON ¶
func (r *CaseBlueprintPresetInstallResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintPresetInstallResult leniently.
type CaseBlueprintSummary ¶
type CaseBlueprintSummary struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBlueprintSummary is a response object.
func (*CaseBlueprintSummary) UnmarshalJSON ¶
func (r *CaseBlueprintSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBlueprintSummary leniently.
type CaseBulkUpdateResult ¶
type CaseBulkUpdateResult struct {
Updated int64 `json:"updated"`
Failures []CaseBulkUpdateResultFailures `json:"failures"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBulkUpdateResult is a response object.
func (*CaseBulkUpdateResult) UnmarshalJSON ¶
func (r *CaseBulkUpdateResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBulkUpdateResult leniently.
type CaseBulkUpdateResultFailures ¶
type CaseBulkUpdateResultFailures struct {
CaseUUID string `json:"case_uuid"`
Detail string `json:"detail"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseBulkUpdateResultFailures is a response object.
func (*CaseBulkUpdateResultFailures) UnmarshalJSON ¶
func (r *CaseBulkUpdateResultFailures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseBulkUpdateResultFailures leniently.
type CaseChecker ¶
type CaseChecker struct {
// The member's user uuid: the value you pass as `checker` when you resolve the
// case.
MemberUUID string `json:"member_uuid"`
// The member's full name, or null when it is not known.
Name string `json:"name"`
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseChecker: The member named to approve or reject the pending resolution. Set only while a four-eyes resolution waits on a named checker. Null when nothing is pending, while the pending resolution waits on the checker queue, and once the resolution is approved, rejected, or returned for a new review because the evidence changed.
func (*CaseChecker) UnmarshalJSON ¶
func (r *CaseChecker) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseChecker leniently.
type CaseChecklistItem ¶
type CaseChecklistItem struct {
UUID string `json:"uuid"`
Label string `json:"label"`
IsCompleted bool `json:"is_completed"`
CompletedBy string `json:"completed_by"`
CompletedAt time.Time `json:"completed_at"`
Order int64 `json:"order"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseChecklistItem is a response object.
func (*CaseChecklistItem) UnmarshalJSON ¶
func (r *CaseChecklistItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseChecklistItem leniently.
type CaseCollaborationCaseNote ¶
type CaseCollaborationCaseNote struct {
UUID string `json:"uuid"`
Comment string `json:"comment"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
MentionedEmails any `json:"mentioned_emails"`
IsInternal bool `json:"is_internal"`
Attachments any `json:"attachments"`
Tags any `json:"tags"`
CreatedAt time.Time `json:"created_at"`
ReplyTo CaseCollaborationCaseNoteReply `json:"reply_to"`
IsPinned bool `json:"is_pinned"`
ClientReference string `json:"client_reference"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseCollaborationCaseNote is a response object.
func (*CaseCollaborationCaseNote) UnmarshalJSON ¶
func (r *CaseCollaborationCaseNote) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseCollaborationCaseNote leniently.
type CaseCollaborationCaseNoteCreateRequest ¶
type CaseCollaborationCaseNoteCreateRequest struct {
// Required.
Comment string `json:"comment"`
ReplyTo Opt[string] `json:"reply_to"`
ClientReference Opt[string] `json:"client_reference"`
MentionedEmails Opt[[]string] `json:"mentioned_emails"`
IsInternal Opt[bool] `json:"is_internal"`
Attachments Opt[[]map[string]any] `json:"attachments"`
Tags Opt[[]string] `json:"tags"`
}
CaseCollaborationCaseNoteCreateRequest is a request object.
func (CaseCollaborationCaseNoteCreateRequest) MarshalJSON ¶
func (r CaseCollaborationCaseNoteCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseCollaborationCaseNoteReply ¶
type CaseCollaborationCaseNoteReply struct {
UUID string `json:"uuid"`
ActorName string `json:"actor_name"`
ActorEmail string `json:"actor_email"`
Comment string `json:"comment"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseCollaborationCaseNoteReply is a response object.
func (*CaseCollaborationCaseNoteReply) UnmarshalJSON ¶
func (r *CaseCollaborationCaseNoteReply) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseCollaborationCaseNoteReply leniently.
type CaseCollaborationPatchedCaseNoteUpdateRequest ¶
CaseCollaborationPatchedCaseNoteUpdateRequest is a request object.
func (CaseCollaborationPatchedCaseNoteUpdateRequest) MarshalJSON ¶
func (r CaseCollaborationPatchedCaseNoteUpdateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfig ¶
type CaseContentConfig struct {
Checklist CaseContentConfigChecklist `json:"checklist"`
AMLControl CaseContentConfigAMLControl `json:"aml_control"`
Identity CaseContentConfigIdentity `json:"identity"`
Verifications CaseContentConfigVerifications `json:"verifications"`
Reporting CaseContentConfigReporting `json:"reporting"`
Financial CaseContentConfigFinancial `json:"financial"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfig: The six togglable sections that drive which tabs and fields appear on the case page. Unknown sections or keys are rejected.
func (*CaseContentConfig) UnmarshalJSON ¶
func (r *CaseContentConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfig leniently.
type CaseContentConfigAMLControl ¶
type CaseContentConfigAMLControl struct {
Enabled bool `json:"enabled"`
Financial bool `json:"financial"`
Identity bool `json:"identity"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigAMLControl is a response object.
func (*CaseContentConfigAMLControl) UnmarshalJSON ¶
func (r *CaseContentConfigAMLControl) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigAMLControl leniently.
type CaseContentConfigChecklist ¶
type CaseContentConfigChecklist struct {
Enabled bool `json:"enabled"`
// When true, a case can be resolved with incomplete checklist items.
Optional bool `json:"optional"`
Items []CaseContentConfigChecklistItems `json:"items"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigChecklist is a response object.
func (*CaseContentConfigChecklist) UnmarshalJSON ¶
func (r *CaseContentConfigChecklist) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigChecklist leniently.
type CaseContentConfigChecklistItems ¶
type CaseContentConfigChecklistItems struct {
Label string `json:"label"`
Order int64 `json:"order"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigChecklistItems is a response object.
func (*CaseContentConfigChecklistItems) UnmarshalJSON ¶
func (r *CaseContentConfigChecklistItems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigChecklistItems leniently.
type CaseContentConfigFinancial ¶
type CaseContentConfigFinancial struct {
Enabled bool `json:"enabled"`
PaymentMethods bool `json:"payment_methods"`
Transactions bool `json:"transactions"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigFinancial is a response object.
func (*CaseContentConfigFinancial) UnmarshalJSON ¶
func (r *CaseContentConfigFinancial) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigFinancial leniently.
type CaseContentConfigIdentity ¶
type CaseContentConfigIdentity struct {
Enabled bool `json:"enabled"`
PersonalInformation bool `json:"personal_information"`
ApplicantTags bool `json:"applicant_tags"`
ContactInformation bool `json:"contact_information"`
RiskOverview bool `json:"risk_overview"`
PoiDocuments bool `json:"poi_documents"`
POADocuments bool `json:"poa_documents"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigIdentity is a response object.
func (*CaseContentConfigIdentity) UnmarshalJSON ¶
func (r *CaseContentConfigIdentity) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigIdentity leniently.
type CaseContentConfigParam ¶
type CaseContentConfigParam struct {
Checklist Opt[CaseContentConfigParamChecklist] `json:"checklist"`
AMLControl Opt[CaseContentConfigParamAMLControl] `json:"aml_control"`
Identity Opt[CaseContentConfigParamIdentity] `json:"identity"`
Verifications Opt[CaseContentConfigParamVerifications] `json:"verifications"`
Reporting Opt[CaseContentConfigParamReporting] `json:"reporting"`
Financial Opt[CaseContentConfigParamFinancial] `json:"financial"`
}
CaseContentConfigParam: The six togglable sections that drive which tabs and fields appear on the case page. Unknown sections or keys are rejected.
func (CaseContentConfigParam) MarshalJSON ¶
func (r CaseContentConfigParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamAMLControl ¶
type CaseContentConfigParamAMLControl struct {
Enabled Opt[bool] `json:"enabled"`
Financial Opt[bool] `json:"financial"`
Identity Opt[bool] `json:"identity"`
}
CaseContentConfigParamAMLControl is a request object.
func (CaseContentConfigParamAMLControl) MarshalJSON ¶
func (r CaseContentConfigParamAMLControl) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamChecklist ¶
type CaseContentConfigParamChecklist struct {
Enabled Opt[bool] `json:"enabled"`
// When true, a case can be resolved with incomplete checklist items.
Optional Opt[bool] `json:"optional"`
Items Opt[[]CaseContentConfigParamChecklistItems] `json:"items"`
}
CaseContentConfigParamChecklist is a request object.
func (CaseContentConfigParamChecklist) MarshalJSON ¶
func (r CaseContentConfigParamChecklist) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamChecklistItems ¶
type CaseContentConfigParamChecklistItems struct {
Label Opt[string] `json:"label"`
Order Opt[int64] `json:"order"`
}
CaseContentConfigParamChecklistItems is a request object.
func (CaseContentConfigParamChecklistItems) MarshalJSON ¶
func (r CaseContentConfigParamChecklistItems) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamFinancial ¶
type CaseContentConfigParamFinancial struct {
Enabled Opt[bool] `json:"enabled"`
PaymentMethods Opt[bool] `json:"payment_methods"`
Transactions Opt[bool] `json:"transactions"`
}
CaseContentConfigParamFinancial is a request object.
func (CaseContentConfigParamFinancial) MarshalJSON ¶
func (r CaseContentConfigParamFinancial) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamIdentity ¶
type CaseContentConfigParamIdentity struct {
Enabled Opt[bool] `json:"enabled"`
PersonalInformation Opt[bool] `json:"personal_information"`
ApplicantTags Opt[bool] `json:"applicant_tags"`
ContactInformation Opt[bool] `json:"contact_information"`
RiskOverview Opt[bool] `json:"risk_overview"`
PoiDocuments Opt[bool] `json:"poi_documents"`
POADocuments Opt[bool] `json:"poa_documents"`
}
CaseContentConfigParamIdentity is a request object.
func (CaseContentConfigParamIdentity) MarshalJSON ¶
func (r CaseContentConfigParamIdentity) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamReporting ¶
type CaseContentConfigParamReporting struct {
Enabled Opt[bool] `json:"enabled"`
FiuReports Opt[bool] `json:"fiu_reports"`
}
CaseContentConfigParamReporting is a request object.
func (CaseContentConfigParamReporting) MarshalJSON ¶
func (r CaseContentConfigParamReporting) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigParamVerifications ¶
type CaseContentConfigParamVerifications struct {
Enabled Opt[bool] `json:"enabled"`
Summary Opt[bool] `json:"summary"`
}
CaseContentConfigParamVerifications is a request object.
func (CaseContentConfigParamVerifications) MarshalJSON ¶
func (r CaseContentConfigParamVerifications) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseContentConfigReporting ¶
type CaseContentConfigReporting struct {
Enabled bool `json:"enabled"`
FiuReports bool `json:"fiu_reports"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigReporting is a response object.
func (*CaseContentConfigReporting) UnmarshalJSON ¶
func (r *CaseContentConfigReporting) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigReporting leniently.
type CaseContentConfigVerifications ¶
type CaseContentConfigVerifications struct {
Enabled bool `json:"enabled"`
Summary bool `json:"summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseContentConfigVerifications is a response object.
func (*CaseContentConfigVerifications) UnmarshalJSON ¶
func (r *CaseContentConfigVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseContentConfigVerifications leniently.
type CaseDetail ¶
type CaseDetail struct {
UUID string `json:"uuid"`
CaseNumber string `json:"case_number"`
Title string `json:"title"`
Status CaseDetailStatus `json:"status"`
Resolution CaseDetailResolution `json:"resolution"`
ResolutionNotes string `json:"resolution_notes"`
Priority CaseDetailPriority `json:"priority"`
Source CaseDetailSource `json:"source"`
Tags []string `json:"tags"`
Subject CaseSubject `json:"subject"`
AssignedTo CaseAssignee `json:"assigned_to"`
AssignedAt time.Time `json:"assigned_at"`
Team CaseTeamSummary `json:"team"`
DueAt time.Time `json:"due_at"`
ResolvedAt time.Time `json:"resolved_at"`
ResolvedByEmail string `json:"resolved_by_email"`
// Set only while a 4-eyes resolution is staged on the checker blueprint,
// awaiting approve or reject-approval.
PendingResolution CaseDetailPendingResolution `json:"pending_resolution"`
Checker CaseChecker `json:"checker"`
Metadata map[string]any `json:"metadata"`
Blueprint CaseBlueprintDetail `json:"blueprint"`
// Newest 50 notes.
Notes []CaseNote `json:"notes"`
// Newest 100 events.
Events []CaseEvent `json:"events"`
Links []CaseLink `json:"links"`
LinksCount int64 `json:"links_count"`
NotesCount int64 `json:"notes_count"`
ChecklistItems []CaseChecklistItem `json:"checklist_items"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseDetail is a response object.
func (*CaseDetail) UnmarshalJSON ¶
func (r *CaseDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseDetail leniently.
type CaseDetailPendingResolution ¶
type CaseDetailPendingResolution struct {
Resolution CaseDetailPendingResolutionResolution `json:"resolution"`
ResolutionNotes string `json:"resolution_notes"`
// Email of the officer who submitted the resolution. Null when an API key
// submitted it: that resolution has no recorded maker, so approve and
// reject-approval return 403 for every caller.
MakerEmail string `json:"maker_email"`
MakerName string `json:"maker_name"`
// Member user uuid of the officer who submitted the resolution. Null when an
// API key submitted it. That member cannot be named as `checker`.
MakerUserID string `json:"maker_user_id"`
MakerBlueprintID string `json:"maker_blueprint_id"`
StagedAt time.Time `json:"staged_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseDetailPendingResolution: Set only while a 4-eyes resolution is staged on the checker blueprint, awaiting approve or reject-approval.
func (*CaseDetailPendingResolution) UnmarshalJSON ¶
func (r *CaseDetailPendingResolution) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseDetailPendingResolution leniently.
type CaseDetailPendingResolutionResolution ¶
type CaseDetailPendingResolutionResolution string
CaseDetailPendingResolutionResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDetailPendingResolutionResolutionFalsePositive CaseDetailPendingResolutionResolution = "FALSE_POSITIVE" CaseDetailPendingResolutionResolutionValidThreat CaseDetailPendingResolutionResolution = "VALID_THREAT" CaseDetailPendingResolutionResolutionInconclusive CaseDetailPendingResolutionResolution = "INCONCLUSIVE" CaseDetailPendingResolutionResolutionRequirementsNotMet CaseDetailPendingResolutionResolution = "REQUIREMENTS_NOT_MET" CaseDetailPendingResolutionResolutionRequirementsSatisfied CaseDetailPendingResolutionResolution = "REQUIREMENTS_SATISFIED" )
Known values of CaseDetailPendingResolutionResolution.
type CaseDetailPriority ¶
type CaseDetailPriority string
CaseDetailPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDetailPriorityLow CaseDetailPriority = "LOW" CaseDetailPriorityMedium CaseDetailPriority = "MEDIUM" CaseDetailPriorityHigh CaseDetailPriority = "HIGH" )
Known values of CaseDetailPriority.
type CaseDetailResolution ¶
type CaseDetailResolution string
CaseDetailResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDetailResolutionFalsePositive CaseDetailResolution = "FALSE_POSITIVE" CaseDetailResolutionValidThreat CaseDetailResolution = "VALID_THREAT" CaseDetailResolutionInconclusive CaseDetailResolution = "INCONCLUSIVE" CaseDetailResolutionRequirementsNotMet CaseDetailResolution = "REQUIREMENTS_NOT_MET" CaseDetailResolutionRequirementsSatisfied CaseDetailResolution = "REQUIREMENTS_SATISFIED" )
Known values of CaseDetailResolution.
type CaseDetailSource ¶
type CaseDetailSource string
CaseDetailSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDetailSourceManual CaseDetailSource = "MANUAL" CaseDetailSourceAMLScreening CaseDetailSource = "AML_SCREENING" CaseDetailSourceTransactionRule CaseDetailSource = "TRANSACTION_RULE" CaseDetailSourceWorkflowBuilder CaseDetailSource = "WORKFLOW_BUILDER" )
Known values of CaseDetailSource.
type CaseDetailStatus ¶
type CaseDetailStatus string
CaseDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDetailStatusOpen CaseDetailStatus = "OPEN" CaseDetailStatusAwaitingUser CaseDetailStatus = "AWAITING_USER" CaseDetailStatusResolved CaseDetailStatus = "RESOLVED" )
Known values of CaseDetailStatus.
type CaseDuplicateCaseDuplicate ¶
type CaseDuplicateCaseDuplicate struct {
UUID string `json:"uuid"`
CaseNumber string `json:"case_number"`
Title string `json:"title"`
Status CaseDuplicateStatusEnum `json:"status"`
Priority CaseDuplicatePriorityEnum `json:"priority"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseDuplicateCaseDuplicate is a response object.
func (*CaseDuplicateCaseDuplicate) UnmarshalJSON ¶
func (r *CaseDuplicateCaseDuplicate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseDuplicateCaseDuplicate leniently.
type CaseDuplicateCaseDuplicatePage ¶
type CaseDuplicateCaseDuplicatePage struct {
Count int64 `json:"count"`
NextOffset int64 `json:"next_offset"`
Results []CaseDuplicateCaseDuplicate `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseDuplicateCaseDuplicatePage is a response object.
func (*CaseDuplicateCaseDuplicatePage) UnmarshalJSON ¶
func (r *CaseDuplicateCaseDuplicatePage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseDuplicateCaseDuplicatePage leniently.
type CaseDuplicateCaseDuplicateQueryRequest ¶
type CaseDuplicateCaseDuplicateQueryRequest struct {
Subject Opt[CaseDuplicateCaseSubjectInputRequest] `json:"subject"`
Links Opt[[]CaseDuplicateCaseLinkCreateRequest] `json:"links"`
Offset Opt[int64] `json:"offset"`
}
CaseDuplicateCaseDuplicateQueryRequest is a request object.
func (CaseDuplicateCaseDuplicateQueryRequest) MarshalJSON ¶
func (r CaseDuplicateCaseDuplicateQueryRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseDuplicateCaseFraudSourceContextRequest ¶
type CaseDuplicateCaseFraudSourceContextRequest struct {
// Required.
CheckID string `json:"check_id"`
// Required.
RequestID string `json:"request_id"`
// Required.
SourceSection string `json:"source_section"`
}
CaseDuplicateCaseFraudSourceContextRequest is a request object.
func (CaseDuplicateCaseFraudSourceContextRequest) MarshalJSON ¶
func (r CaseDuplicateCaseFraudSourceContextRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseDuplicateCaseLinkCreateRequest ¶
type CaseDuplicateCaseLinkCreateRequest struct {
// Required.
EntityType CaseDuplicateEntityTypeEnum `json:"entity_type"`
// Required.
EntityUUID string `json:"entity_uuid"`
}
CaseDuplicateCaseLinkCreateRequest is a request object.
func (CaseDuplicateCaseLinkCreateRequest) MarshalJSON ¶
func (r CaseDuplicateCaseLinkCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseDuplicateCaseSubjectInputRequest ¶
type CaseDuplicateCaseSubjectInputRequest struct {
// Required.
Type CaseDuplicateTypeEnum `json:"type"`
// Required.
UUID string `json:"uuid"`
}
CaseDuplicateCaseSubjectInputRequest is a request object.
func (CaseDuplicateCaseSubjectInputRequest) MarshalJSON ¶
func (r CaseDuplicateCaseSubjectInputRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseDuplicateEntityTypeEnum ¶
type CaseDuplicateEntityTypeEnum string
CaseDuplicateEntityTypeEnum: * `session` - Session
- `business_session` - Business Session
- `transaction` - Transaction
CaseDuplicateEntityTypeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDuplicateEntityTypeEnumSession CaseDuplicateEntityTypeEnum = "session" CaseDuplicateEntityTypeEnumBusinessSession CaseDuplicateEntityTypeEnum = "business_session" CaseDuplicateEntityTypeEnumTransaction CaseDuplicateEntityTypeEnum = "transaction" )
Known values of CaseDuplicateEntityTypeEnum.
type CaseDuplicatePriorityEnum ¶
type CaseDuplicatePriorityEnum string
CaseDuplicatePriorityEnum: * `LOW` - Low
- `MEDIUM` - Medium
- `HIGH` - High
CaseDuplicatePriorityEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDuplicatePriorityEnumLow CaseDuplicatePriorityEnum = "LOW" CaseDuplicatePriorityEnumMedium CaseDuplicatePriorityEnum = "MEDIUM" CaseDuplicatePriorityEnumHigh CaseDuplicatePriorityEnum = "HIGH" )
Known values of CaseDuplicatePriorityEnum.
type CaseDuplicateStatusEnum ¶
type CaseDuplicateStatusEnum string
CaseDuplicateStatusEnum: * `OPEN` - Open
- `AWAITING_USER` - Awaiting user
- `RESOLVED` - Resolved
CaseDuplicateStatusEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDuplicateStatusEnumOpen CaseDuplicateStatusEnum = "OPEN" CaseDuplicateStatusEnumAwaitingUser CaseDuplicateStatusEnum = "AWAITING_USER" CaseDuplicateStatusEnumResolved CaseDuplicateStatusEnum = "RESOLVED" )
Known values of CaseDuplicateStatusEnum.
type CaseDuplicateTypeEnum ¶
type CaseDuplicateTypeEnum string
CaseDuplicateTypeEnum: * `user` - user
- `business` - business
CaseDuplicateTypeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseDuplicateTypeEnumUser CaseDuplicateTypeEnum = "user" CaseDuplicateTypeEnumBusiness CaseDuplicateTypeEnum = "business" )
Known values of CaseDuplicateTypeEnum.
type CaseEvent ¶
type CaseEvent struct {
UUID string `json:"uuid"`
EventType CaseEventEventType `json:"event_type"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
PreviousStatus CaseEventPreviousStatus `json:"previous_status"`
NewStatus CaseEventNewStatus `json:"new_status"`
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseEvent is a response object.
func (*CaseEvent) UnmarshalJSON ¶
UnmarshalJSON decodes CaseEvent leniently.
type CaseEventEventType ¶
type CaseEventEventType string
CaseEventEventType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseEventEventTypeCreated CaseEventEventType = "CREATED" CaseEventEventTypeStatusChanged CaseEventEventType = "STATUS_CHANGED" CaseEventEventTypeAssigned CaseEventEventType = "ASSIGNED" CaseEventEventTypeUnassigned CaseEventEventType = "UNASSIGNED" CaseEventEventTypeResolved CaseEventEventType = "RESOLVED" CaseEventEventTypeReopened CaseEventEventType = "REOPENED" CaseEventEventTypeLinkAdded CaseEventEventType = "LINK_ADDED" CaseEventEventTypeLinkRemoved CaseEventEventType = "LINK_REMOVED" CaseEventEventTypeNoteAdded CaseEventEventType = "NOTE_ADDED" CaseEventEventTypeNotePinned CaseEventEventType = "NOTE_PINNED" CaseEventEventTypeNoteUnpinned CaseEventEventType = "NOTE_UNPINNED" CaseEventEventTypePriorityChanged CaseEventEventType = "PRIORITY_CHANGED" CaseEventEventTypeDueDateChanged CaseEventEventType = "DUE_DATE_CHANGED" CaseEventEventTypeTagAdded CaseEventEventType = "TAG_ADDED" CaseEventEventTypeTagRemoved CaseEventEventType = "TAG_REMOVED" CaseEventEventTypeEscalated CaseEventEventType = "ESCALATED" CaseEventEventTypeTransferred CaseEventEventType = "TRANSFERRED" CaseEventEventTypeChecklistCompleted CaseEventEventType = "CHECKLIST_COMPLETED" CaseEventEventTypeReportCreated CaseEventEventType = "REPORT_CREATED" CaseEventEventTypeReportFinalized CaseEventEventType = "REPORT_FINALIZED" CaseEventEventTypeSubmittedForApproval CaseEventEventType = "SUBMITTED_FOR_APPROVAL" CaseEventEventTypeApprovalGranted CaseEventEventType = "APPROVAL_GRANTED" CaseEventEventTypeApprovalRejected CaseEventEventType = "APPROVAL_REJECTED" CaseEventEventTypeEntityAction CaseEventEventType = "ENTITY_ACTION" CaseEventEventTypeApprovalInvalidated CaseEventEventType = "APPROVAL_INVALIDATED" CaseEventEventTypeCustomerRequest CaseEventEventType = "CUSTOMER_REQUEST" CaseEventEventTypeStageChanged CaseEventEventType = "STAGE_CHANGED" CaseEventEventTypeTeamChanged CaseEventEventType = "TEAM_CHANGED" CaseEventEventTypeCheckerAssigned CaseEventEventType = "CHECKER_ASSIGNED" CaseEventEventTypeCheckerUnassigned CaseEventEventType = "CHECKER_UNASSIGNED" )
Known values of CaseEventEventType.
type CaseEventNewStatus ¶
type CaseEventNewStatus string
CaseEventNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseEventNewStatusOpen CaseEventNewStatus = "OPEN" CaseEventNewStatusAwaitingUser CaseEventNewStatus = "AWAITING_USER" CaseEventNewStatusResolved CaseEventNewStatus = "RESOLVED" )
Known values of CaseEventNewStatus.
type CaseEventPreviousStatus ¶
type CaseEventPreviousStatus string
CaseEventPreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseEventPreviousStatusOpen CaseEventPreviousStatus = "OPEN" CaseEventPreviousStatusAwaitingUser CaseEventPreviousStatus = "AWAITING_USER" CaseEventPreviousStatusResolved CaseEventPreviousStatus = "RESOLVED" )
Known values of CaseEventPreviousStatus.
type CaseLink ¶
type CaseLink struct {
UUID string `json:"uuid"`
LinkedEntityType CaseLinkLinkedEntityType `json:"linked_entity_type"`
LinkedEntityUUID string `json:"linked_entity_uuid"`
// session_id/session_number/status for session and business_session links;
// uuid/txn_id/status for transaction links.
LinkedEntitySummary map[string]any `json:"linked_entity_summary"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseLink is a response object.
func (*CaseLink) UnmarshalJSON ¶
UnmarshalJSON decodes CaseLink leniently.
type CaseLinkLinkedEntityType ¶
type CaseLinkLinkedEntityType string
CaseLinkLinkedEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseLinkLinkedEntityTypeSession CaseLinkLinkedEntityType = "session" CaseLinkLinkedEntityTypeBusinessSession CaseLinkLinkedEntityType = "business_session" CaseLinkLinkedEntityTypeTransaction CaseLinkLinkedEntityType = "transaction" )
Known values of CaseLinkLinkedEntityType.
type CaseListItem ¶
type CaseListItem struct {
UUID string `json:"uuid"`
// Auto-assigned, e.g. CS-0001.
CaseNumber string `json:"case_number"`
Title string `json:"title"`
Status CaseListItemStatus `json:"status"`
Resolution CaseListItemResolution `json:"resolution"`
// Set only while a 4-eyes resolution is staged on the checker blueprint,
// awaiting approve or reject-approval.
PendingResolution CaseListItemPendingResolution `json:"pending_resolution"`
Checker CaseChecker `json:"checker"`
Priority CaseListItemPriority `json:"priority"`
Source CaseListItemSource `json:"source"`
Tags []string `json:"tags"`
Subject CaseSubject `json:"subject"`
AssignedTo CaseAssignee `json:"assigned_to"`
AssignedAt time.Time `json:"assigned_at"`
Team CaseTeamSummary `json:"team"`
DueAt time.Time `json:"due_at"`
ResolvedAt time.Time `json:"resolved_at"`
CreatedByEmail string `json:"created_by_email"`
CreatedByName string `json:"created_by_name"`
Blueprint CaseBlueprintSummary `json:"blueprint"`
LinksCount int64 `json:"links_count"`
NotesCount int64 `json:"notes_count"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
ApplicationID string `json:"application_id"`
ApplicationName string `json:"application_name"`
OrganizationID string `json:"organization_id"`
OrganizationName string `json:"organization_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseListItem is a response object.
func (*CaseListItem) UnmarshalJSON ¶
func (r *CaseListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseListItem leniently.
type CaseListItemPendingResolution ¶
type CaseListItemPendingResolution struct {
Resolution CaseListItemPendingResolutionResolution `json:"resolution"`
ResolutionNotes string `json:"resolution_notes"`
// Email of the officer who submitted the resolution. Null when an API key
// submitted it: that resolution has no recorded maker, so approve and
// reject-approval return 403 for every caller.
MakerEmail string `json:"maker_email"`
MakerName string `json:"maker_name"`
// Member user uuid of the officer who submitted the resolution. Null when an
// API key submitted it. That member cannot be named as `checker`.
MakerUserID string `json:"maker_user_id"`
MakerBlueprintID string `json:"maker_blueprint_id"`
StagedAt time.Time `json:"staged_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseListItemPendingResolution: Set only while a 4-eyes resolution is staged on the checker blueprint, awaiting approve or reject-approval.
func (*CaseListItemPendingResolution) UnmarshalJSON ¶
func (r *CaseListItemPendingResolution) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseListItemPendingResolution leniently.
type CaseListItemPendingResolutionResolution ¶
type CaseListItemPendingResolutionResolution string
CaseListItemPendingResolutionResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseListItemPendingResolutionResolutionFalsePositive CaseListItemPendingResolutionResolution = "FALSE_POSITIVE" CaseListItemPendingResolutionResolutionValidThreat CaseListItemPendingResolutionResolution = "VALID_THREAT" CaseListItemPendingResolutionResolutionInconclusive CaseListItemPendingResolutionResolution = "INCONCLUSIVE" CaseListItemPendingResolutionResolutionRequirementsNotMet CaseListItemPendingResolutionResolution = "REQUIREMENTS_NOT_MET" CaseListItemPendingResolutionResolutionRequirementsSatisfied CaseListItemPendingResolutionResolution = "REQUIREMENTS_SATISFIED" )
Known values of CaseListItemPendingResolutionResolution.
type CaseListItemPriority ¶
type CaseListItemPriority string
CaseListItemPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseListItemPriorityLow CaseListItemPriority = "LOW" CaseListItemPriorityMedium CaseListItemPriority = "MEDIUM" CaseListItemPriorityHigh CaseListItemPriority = "HIGH" )
Known values of CaseListItemPriority.
type CaseListItemResolution ¶
type CaseListItemResolution string
CaseListItemResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseListItemResolutionFalsePositive CaseListItemResolution = "FALSE_POSITIVE" CaseListItemResolutionValidThreat CaseListItemResolution = "VALID_THREAT" CaseListItemResolutionInconclusive CaseListItemResolution = "INCONCLUSIVE" CaseListItemResolutionRequirementsNotMet CaseListItemResolution = "REQUIREMENTS_NOT_MET" CaseListItemResolutionRequirementsSatisfied CaseListItemResolution = "REQUIREMENTS_SATISFIED" )
Known values of CaseListItemResolution.
type CaseListItemSource ¶
type CaseListItemSource string
CaseListItemSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseListItemSourceManual CaseListItemSource = "MANUAL" CaseListItemSourceAMLScreening CaseListItemSource = "AML_SCREENING" CaseListItemSourceTransactionRule CaseListItemSource = "TRANSACTION_RULE" CaseListItemSourceWorkflowBuilder CaseListItemSource = "WORKFLOW_BUILDER" )
Known values of CaseListItemSource.
type CaseListItemStatus ¶
type CaseListItemStatus string
CaseListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseListItemStatusOpen CaseListItemStatus = "OPEN" CaseListItemStatusAwaitingUser CaseListItemStatus = "AWAITING_USER" CaseListItemStatusResolved CaseListItemStatus = "RESOLVED" )
Known values of CaseListItemStatus.
type CaseNote ¶
type CaseNote struct {
UUID string `json:"uuid"`
Comment string `json:"comment"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
MentionedEmails []string `json:"mentioned_emails"`
IsInternal bool `json:"is_internal"`
Attachments []CaseNoteAttachments `json:"attachments"`
Tags []string `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseNote is a response object.
func (*CaseNote) UnmarshalJSON ¶
UnmarshalJSON decodes CaseNote leniently.
type CaseNoteAttachments ¶
type CaseNoteAttachments struct {
S3Key string `json:"s3_key"`
Filename string `json:"filename"`
FileSize int64 `json:"file_size"`
URL string `json:"url"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseNoteAttachments is a response object.
func (*CaseNoteAttachments) UnmarshalJSON ¶
func (r *CaseNoteAttachments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseNoteAttachments leniently.
type CasePublicationAssignmentMethodEnum ¶
type CasePublicationAssignmentMethodEnum string
CasePublicationAssignmentMethodEnum: * `MANUAL` - Manual
- `AUTOMATIC` - Automatic
CasePublicationAssignmentMethodEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasePublicationAssignmentMethodEnumManual CasePublicationAssignmentMethodEnum = "MANUAL" CasePublicationAssignmentMethodEnumAutomatic CasePublicationAssignmentMethodEnum = "AUTOMATIC" )
Known values of CasePublicationAssignmentMethodEnum.
type CasePublicationCaseBlueprint ¶
type CasePublicationCaseBlueprint struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Description string `json:"description"`
AssignmentMethod CasePublicationAssignmentMethodEnum `json:"assignment_method"`
AssigneePool any `json:"assignee_pool"`
MaxActiveCases int64 `json:"max_active_cases"`
EscalationEnabled bool `json:"escalation_enabled"`
EscalationBlueprint string `json:"escalation_blueprint"`
EscalationBlueprintName string `json:"escalation_blueprint_name"`
TransferEnabled bool `json:"transfer_enabled"`
FourEyesCheckerBlueprint string `json:"four_eyes_checker_blueprint"`
FourEyesCheckerBlueprintName string `json:"four_eyes_checker_blueprint_name"`
RequireResolutionNote bool `json:"require_resolution_note"`
ContentConfig any `json:"content_config"`
Version int64 `json:"version"`
DefaultDeadlineHours int64 `json:"default_deadline_hours"`
IsActive bool `json:"is_active"`
PresetKey string `json:"preset_key"`
CreationSources []map[string]any `json:"creation_sources"`
ReceivesEscalationFrom []map[string]any `json:"receives_escalation_from"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasePublicationCaseBlueprint is a response object.
func (*CasePublicationCaseBlueprint) UnmarshalJSON ¶
func (r *CasePublicationCaseBlueprint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasePublicationCaseBlueprint leniently.
type CasePublicationPolicyDraft ¶
type CasePublicationPolicyDraft struct {
Revision string `json:"revision"`
BaseVersion int64 `json:"base_version"`
Changes any `json:"changes"`
ActorEmail string `json:"actor_email"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasePublicationPolicyDraft is a response object.
func (*CasePublicationPolicyDraft) UnmarshalJSON ¶
func (r *CasePublicationPolicyDraft) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasePublicationPolicyDraft leniently.
type CasePublicationPolicyDraftPreconditionRequest ¶
type CasePublicationPolicyDraftPreconditionRequest struct {
// Required.
ExpectedVersion int64 `json:"expected_version"`
// Required.
ExpectedRevision Opt[string] `json:"expected_revision"`
}
CasePublicationPolicyDraftPreconditionRequest is a request object.
func (CasePublicationPolicyDraftPreconditionRequest) MarshalJSON ¶
func (r CasePublicationPolicyDraftPreconditionRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasePublicationPolicyDraftResponse ¶
type CasePublicationPolicyDraftResponse struct {
Draft CasePublicationPolicyDraft `json:"draft"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasePublicationPolicyDraftResponse is a response object.
func (*CasePublicationPolicyDraftResponse) UnmarshalJSON ¶
func (r *CasePublicationPolicyDraftResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasePublicationPolicyDraftResponse leniently.
type CasePublicationPolicyDraftWriteRequest ¶
type CasePublicationPolicyDraftWriteRequest struct {
// Required.
ExpectedVersion int64 `json:"expected_version"`
// Required.
ExpectedRevision Opt[string] `json:"expected_revision"`
// Required.
Changes map[string]any `json:"changes"`
}
CasePublicationPolicyDraftWriteRequest is a request object.
func (CasePublicationPolicyDraftWriteRequest) MarshalJSON ¶
func (r CasePublicationPolicyDraftWriteRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasePublicationPolicyRevision ¶
type CasePublicationPolicyRevision struct {
Version int64 `json:"version"`
Snapshot any `json:"snapshot"`
ActorEmail string `json:"actor_email"`
PublishedAt time.Time `json:"published_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasePublicationPolicyRevision is a response object.
func (*CasePublicationPolicyRevision) UnmarshalJSON ¶
func (r *CasePublicationPolicyRevision) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasePublicationPolicyRevision leniently.
type CaseReviewTeam ¶
type CaseReviewTeam struct {
Name string `json:"name"`
Description string `json:"description"`
Members []CaseReviewTeamMember `json:"members"`
IsActive bool `json:"is_active"`
UUID string `json:"uuid"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseReviewTeam is a response object.
func (*CaseReviewTeam) UnmarshalJSON ¶
func (r *CaseReviewTeam) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseReviewTeam leniently.
type CaseReviewTeamCreate ¶
type CaseReviewTeamCreate struct {
// Required.
Name string `json:"name"`
Description Opt[string] `json:"description"`
// Required.
Members []CaseReviewTeamMemberParam `json:"members"`
IsActive Opt[bool] `json:"is_active"`
}
CaseReviewTeamCreate is a request object.
func (CaseReviewTeamCreate) MarshalJSON ¶
func (r CaseReviewTeamCreate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseReviewTeamMember ¶
type CaseReviewTeamMember struct {
UserID string `json:"user_id"`
Availability CaseReviewTeamMemberAvailability `json:"availability"`
Capacity int64 `json:"capacity"`
Skills []string `json:"skills"`
AvailableFrom time.Time `json:"available_from"`
AvailableUntil time.Time `json:"available_until"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseReviewTeamMember is a response object.
func (*CaseReviewTeamMember) UnmarshalJSON ¶
func (r *CaseReviewTeamMember) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseReviewTeamMember leniently.
type CaseReviewTeamMemberAvailability ¶
type CaseReviewTeamMemberAvailability string
CaseReviewTeamMemberAvailability is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseReviewTeamMemberAvailabilityAvailable CaseReviewTeamMemberAvailability = "available" )
Known values of CaseReviewTeamMemberAvailability.
type CaseReviewTeamMemberParam ¶
type CaseReviewTeamMemberParam struct {
// Required.
UserID string `json:"user_id"`
Availability Opt[CaseReviewTeamMemberAvailability] `json:"availability"`
Capacity Opt[int64] `json:"capacity"`
Skills Opt[[]string] `json:"skills"`
AvailableFrom Opt[time.Time] `json:"available_from"`
AvailableUntil Opt[time.Time] `json:"available_until"`
}
CaseReviewTeamMemberParam is a request object.
func (CaseReviewTeamMemberParam) MarshalJSON ¶
func (r CaseReviewTeamMemberParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseReviewTeamUpdate ¶
type CaseReviewTeamUpdate struct {
Name Opt[string] `json:"name"`
Description Opt[string] `json:"description"`
Members Opt[[]CaseReviewTeamMemberParam] `json:"members"`
IsActive Opt[bool] `json:"is_active"`
}
CaseReviewTeamUpdate is a request object.
func (CaseReviewTeamUpdate) MarshalJSON ¶
func (r CaseReviewTeamUpdate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseRoutingCondition ¶
type CaseRoutingCondition struct {
Field CaseRoutingConditionField `json:"field"`
Operator CaseRoutingConditionOperator `json:"operator"`
Value any `json:"value"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseRoutingCondition: Source and priority support equals or in with supported values. Tags support contains with one non-empty tag.
func (*CaseRoutingCondition) UnmarshalJSON ¶
func (r *CaseRoutingCondition) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseRoutingCondition leniently.
type CaseRoutingConditionField ¶
type CaseRoutingConditionField string
CaseRoutingConditionField is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseRoutingConditionFieldSource CaseRoutingConditionField = "source" CaseRoutingConditionFieldPriority CaseRoutingConditionField = "priority" CaseRoutingConditionFieldTags CaseRoutingConditionField = "tags" )
Known values of CaseRoutingConditionField.
type CaseRoutingConditionOperator ¶
type CaseRoutingConditionOperator string
CaseRoutingConditionOperator is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseRoutingConditionOperatorEquals CaseRoutingConditionOperator = "equals" CaseRoutingConditionOperatorIn CaseRoutingConditionOperator = "in" CaseRoutingConditionOperatorContains CaseRoutingConditionOperator = "contains" )
Known values of CaseRoutingConditionOperator.
type CaseRoutingConditionParam ¶
type CaseRoutingConditionParam struct {
// Required.
Field CaseRoutingConditionField `json:"field"`
// Required.
Operator CaseRoutingConditionOperator `json:"operator"`
// Required.
Value any `json:"value"`
}
CaseRoutingConditionParam: Source and priority support equals or in with supported values. Tags support contains with one non-empty tag.
func (CaseRoutingConditionParam) MarshalJSON ¶
func (r CaseRoutingConditionParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseRoutingPreview ¶
type CaseRoutingPreview struct {
RuleUUID string `json:"rule_uuid"`
RuleName string `json:"rule_name"`
RuleVersion int64 `json:"rule_version"`
BlueprintUUID string `json:"blueprint_uuid"`
TeamUUID string `json:"team_uuid"`
AssigneeUserID string `json:"assignee_user_id"`
Reason string `json:"reason"`
Candidates []CaseRoutingPreviewCandidates `json:"candidates"`
MatchedRules []CaseRoutingPreviewMatchedRules `json:"matched_rules"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseRoutingPreview is a response object.
func (*CaseRoutingPreview) UnmarshalJSON ¶
func (r *CaseRoutingPreview) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseRoutingPreview leniently.
type CaseRoutingPreviewCandidates ¶
type CaseRoutingPreviewCandidates struct {
UserID string `json:"user_id"`
Eligible bool `json:"eligible"`
ActiveCases int64 `json:"active_cases"`
Reason string `json:"reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseRoutingPreviewCandidates is a response object.
func (*CaseRoutingPreviewCandidates) UnmarshalJSON ¶
func (r *CaseRoutingPreviewCandidates) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseRoutingPreviewCandidates leniently.
type CaseRoutingPreviewMatchedRules ¶
type CaseRoutingPreviewMatchedRules struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Priority int64 `json:"priority"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseRoutingPreviewMatchedRules is a response object.
func (*CaseRoutingPreviewMatchedRules) UnmarshalJSON ¶
func (r *CaseRoutingPreviewMatchedRules) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseRoutingPreviewMatchedRules leniently.
type CaseRoutingPreviewRequest ¶
type CaseRoutingPreviewRequest struct {
// Required.
Source CaseRoutingPreviewRequestSource `json:"source"`
Priority Opt[CaseRoutingPreviewRequestPriority] `json:"priority"`
Tags Opt[[]string] `json:"tags"`
RuleUUID Opt[string] `json:"rule_uuid"`
Draft Opt[CaseRoutingRuleCreate] `json:"draft"`
}
CaseRoutingPreviewRequest is a request object.
func (CaseRoutingPreviewRequest) MarshalJSON ¶
func (r CaseRoutingPreviewRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseRoutingPreviewRequestPriority ¶
type CaseRoutingPreviewRequestPriority string
CaseRoutingPreviewRequestPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseRoutingPreviewRequestPriorityLow CaseRoutingPreviewRequestPriority = "LOW" CaseRoutingPreviewRequestPriorityMedium CaseRoutingPreviewRequestPriority = "MEDIUM" CaseRoutingPreviewRequestPriorityHigh CaseRoutingPreviewRequestPriority = "HIGH" )
Known values of CaseRoutingPreviewRequestPriority.
type CaseRoutingPreviewRequestSource ¶
type CaseRoutingPreviewRequestSource string
CaseRoutingPreviewRequestSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseRoutingPreviewRequestSourceManual CaseRoutingPreviewRequestSource = "MANUAL" CaseRoutingPreviewRequestSourceAMLScreening CaseRoutingPreviewRequestSource = "AML_SCREENING" CaseRoutingPreviewRequestSourceTransactionRule CaseRoutingPreviewRequestSource = "TRANSACTION_RULE" CaseRoutingPreviewRequestSourceWorkflowBuilder CaseRoutingPreviewRequestSource = "WORKFLOW_BUILDER" )
Known values of CaseRoutingPreviewRequestSource.
type CaseRoutingRule ¶
type CaseRoutingRule struct {
Name string `json:"name"`
Description string `json:"description"`
Priority int64 `json:"priority"`
Conditions []CaseRoutingCondition `json:"conditions"`
RequiredSkills []string `json:"required_skills"`
Blueprint string `json:"blueprint"`
Team string `json:"team"`
IsActive bool `json:"is_active"`
UUID string `json:"uuid"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
Version int64 `json:"version"`
BlueprintName string `json:"blueprint_name"`
TeamName string `json:"team_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseRoutingRule is a response object.
func (*CaseRoutingRule) UnmarshalJSON ¶
func (r *CaseRoutingRule) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseRoutingRule leniently.
type CaseRoutingRuleCreate ¶
type CaseRoutingRuleCreate struct {
// Required.
Name string `json:"name"`
Description Opt[string] `json:"description"`
Priority Opt[int64] `json:"priority"`
// Required.
Conditions []CaseRoutingConditionParam `json:"conditions"`
RequiredSkills Opt[[]string] `json:"required_skills"`
// Required.
Blueprint string `json:"blueprint"`
Team Opt[string] `json:"team"`
IsActive Opt[bool] `json:"is_active"`
// Set false to save a never-published draft. The record remains inactive at
// version 0 until the draft is explicitly published. Omitting this field
// preserves immediate creation for existing integrations.
Publish Opt[bool] `json:"publish"`
}
CaseRoutingRuleCreate is a request object.
func (CaseRoutingRuleCreate) MarshalJSON ¶
func (r CaseRoutingRuleCreate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseRoutingRuleUpdate ¶
type CaseRoutingRuleUpdate struct {
Name Opt[string] `json:"name"`
Description Opt[string] `json:"description"`
Priority Opt[int64] `json:"priority"`
Conditions Opt[[]CaseRoutingConditionParam] `json:"conditions"`
RequiredSkills Opt[[]string] `json:"required_skills"`
Blueprint Opt[string] `json:"blueprint"`
Team Opt[string] `json:"team"`
IsActive Opt[bool] `json:"is_active"`
// Version opened by the editor. When supplied, stale writes return 409 without
// changing the rule.
ExpectedVersion Opt[int64] `json:"expected_version"`
}
CaseRoutingRuleUpdate is a request object.
func (CaseRoutingRuleUpdate) MarshalJSON ¶
func (r CaseRoutingRuleUpdate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CaseSubject ¶
type CaseSubject struct {
Type CaseSubjectType `json:"type"`
UUID string `json:"uuid"`
Name string `json:"name"`
// The subject's vendor_data.
ExternalID string `json:"external_id"`
// Three-letter country code of the subject (ISO 3166-1 alpha-3), or null when
// it is not known. For a business, its country of incorporation. For a person,
// the issuing country of an identity document from their verifications; a
// person with documents from several countries shows one of them, and ICAO
// document codes such as `XXA` can appear.
Country string `json:"country"`
// Short-lived signed URL of the person's portrait image. Always null for a
// business, and null for a person without a portrait. The URL expires, so
// download the image when you read the case instead of storing the URL.
Portrait string `json:"portrait"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseSubject: The single user or business the case is anchored to.
func (*CaseSubject) UnmarshalJSON ¶
func (r *CaseSubject) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseSubject leniently.
type CaseSubjectType ¶
type CaseSubjectType string
CaseSubjectType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CaseSubjectTypeUser CaseSubjectType = "user" CaseSubjectTypeBusiness CaseSubjectType = "business" )
Known values of CaseSubjectType.
type CaseTeamSummary ¶
type CaseTeamSummary struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CaseTeamSummary: The review team that owns the case, or null when no team owns it. Routing sets it when a routing rule places the case with one of its teams. Change or clear it with `PATCH .../cases/{case_uuid}/` (`team`).
func (*CaseTeamSummary) UnmarshalJSON ¶
func (r *CaseTeamSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CaseTeamSummary leniently.
type CasesAssignParams ¶
type CasesAssignParams struct {
// null to unassign. Required.
AssigneeUserID Opt[string] `json:"assignee_user_id"`
AssigneeEmail Opt[string] `json:"assignee_email"`
AssigneeName Opt[string] `json:"assignee_name"`
}
CasesAssignParams holds the parameters of Client.Cases.Assign.
func (CasesAssignParams) MarshalJSON ¶
func (r CasesAssignParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsCreateParams ¶
type CasesBlueprintsCreateParams struct {
// Max 24 characters, e.g. "AML investigation". Required.
Name string `json:"name"`
Description Opt[string] `json:"description"`
// List of User UUIDs. Empty arrays are rejected with "Pick at least one
// assignee". Required.
AssigneePool []string `json:"assignee_pool"`
AssignmentMethod Opt[CasesBlueprintsCreateParamsAssignmentMethod] `json:"assignment_method"`
// Automatic-mode threshold: "fewer than N cases of this blueprint assigned".
MaxActiveCases Opt[int64] `json:"max_active_cases"`
EscalationEnabled Opt[bool] `json:"escalation_enabled"`
// Target blueprint UUID. Not enforced at save time, but the escalate action
// fails with 400 until both escalation_enabled and escalation_blueprint are
// set.
EscalationBlueprint Opt[string] `json:"escalation_blueprint"`
TransferEnabled Opt[bool] `json:"transfer_enabled"`
// Setting this enables 4-eyes review: resolutions on this blueprint stage on
// the checker blueprint's queue.
FourEyesCheckerBlueprint Opt[string] `json:"four_eyes_checker_blueprint"`
RequireResolutionNote Opt[bool] `json:"require_resolution_note"`
ContentConfig Opt[CaseContentConfigParam] `json:"content_config"`
IsActive Opt[bool] `json:"is_active"`
// Default deadline for newly opened cases. Existing case deadlines are
// unchanged.
DefaultDeadlineHours Opt[int64] `json:"default_deadline_hours"`
// Set false to save a never-published draft. The record remains inactive at
// version 0 until the draft is explicitly published. Omitting this field
// preserves immediate creation for existing integrations.
Publish Opt[bool] `json:"publish"`
}
CasesBlueprintsCreateParams holds the parameters of Client.Cases.Blueprints.Create.
func (CasesBlueprintsCreateParams) MarshalJSON ¶
func (r CasesBlueprintsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsCreateParamsAssignmentMethod ¶
type CasesBlueprintsCreateParamsAssignmentMethod string
CasesBlueprintsCreateParamsAssignmentMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesBlueprintsCreateParamsAssignmentMethodManual CasesBlueprintsCreateParamsAssignmentMethod = "MANUAL" CasesBlueprintsCreateParamsAssignmentMethodAutomatic CasesBlueprintsCreateParamsAssignmentMethod = "AUTOMATIC" )
Known values of CasesBlueprintsCreateParamsAssignmentMethod.
type CasesBlueprintsInstallPresetsParams ¶
type CasesBlueprintsInstallPresetsParams struct {
// Subset of screening_hit, aml_investigation, suspicious_activity, kyc. Omit to
// install all.
PresetKeys Opt[[]string] `json:"preset_keys"`
}
CasesBlueprintsInstallPresetsParams holds the parameters of Client.Cases.Blueprints.InstallPresets.
func (CasesBlueprintsInstallPresetsParams) MarshalJSON ¶
func (r CasesBlueprintsInstallPresetsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsListHistoryParams ¶
type CasesBlueprintsListHistoryParams struct {
// Which field to use when ordering the results.
Ordering Opt[string] `json:"-" query:"ordering"`
// Number of results to return per page.
Limit Opt[int64] `json:"-" query:"limit"`
// The initial index from which to return the results.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesBlueprintsListHistoryParams holds the parameters of Client.Cases.Blueprints.ListHistory.
func (CasesBlueprintsListHistoryParams) MarshalJSON ¶
func (r CasesBlueprintsListHistoryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsListParams ¶
type CasesBlueprintsListParams struct {
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesBlueprintsListParams holds the parameters of Client.Cases.Blueprints.List.
func (CasesBlueprintsListParams) MarshalJSON ¶
func (r CasesBlueprintsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsListPresetsResponse ¶
type CasesBlueprintsListPresetsResponse struct {
Results []CasesBlueprintsListPresetsResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesBlueprintsListPresetsResponse is a response object.
func (*CasesBlueprintsListPresetsResponse) UnmarshalJSON ¶
func (r *CasesBlueprintsListPresetsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesBlueprintsListPresetsResponse leniently.
type CasesBlueprintsListPresetsResponseResults ¶
type CasesBlueprintsListPresetsResponseResults struct {
PresetKey CasesBlueprintsListPresetsResponseResultsPresetKey `json:"preset_key"`
Name string `json:"name"`
Description string `json:"description"`
ContentConfig CaseContentConfig `json:"content_config"`
Installed bool `json:"installed"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesBlueprintsListPresetsResponseResults is a response object.
func (*CasesBlueprintsListPresetsResponseResults) UnmarshalJSON ¶
func (r *CasesBlueprintsListPresetsResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesBlueprintsListPresetsResponseResults leniently.
type CasesBlueprintsListPresetsResponseResultsPresetKey ¶
type CasesBlueprintsListPresetsResponseResultsPresetKey string
CasesBlueprintsListPresetsResponseResultsPresetKey is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesBlueprintsListPresetsResponseResultsPresetKeyScreeningHit CasesBlueprintsListPresetsResponseResultsPresetKey = "screening_hit" CasesBlueprintsListPresetsResponseResultsPresetKeyAMLInvestigation CasesBlueprintsListPresetsResponseResultsPresetKey = "aml_investigation" CasesBlueprintsListPresetsResponseResultsPresetKeySuspiciousActivity CasesBlueprintsListPresetsResponseResultsPresetKey = "suspicious_activity" CasesBlueprintsListPresetsResponseResultsPresetKeyKYC CasesBlueprintsListPresetsResponseResultsPresetKey = "kyc" )
Known values of CasesBlueprintsListPresetsResponseResultsPresetKey.
type CasesBlueprintsService ¶
type CasesBlueprintsService struct {
// contains filtered or unexported fields
}
CasesBlueprintsService holds the cases blueprints operations. Use it through Client.Cases.Blueprints.
func (*CasesBlueprintsService) Create ¶
func (r *CasesBlueprintsService) Create(ctx context.Context, params CasesBlueprintsCreateParams, opts ...option.RequestOption) (*CaseBlueprintDetail, error)
Create: Create blueprint.
Create a case blueprint: general settings (assignment, escalation, transfer, 4-eyes pairing) plus content_config, the six sections that drive the case page. Set publish=false to create an unpublished draft; Publish creates its first live version. Discarding a never-published draft deletes it.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/
func (*CasesBlueprintsService) Delete ¶
func (r *CasesBlueprintsService) Delete(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) error
Delete: Delete blueprint.
Delete a blueprint. Deletion always succeeds and does not touch the blueprint's cases: existing cases keep their blueprint reference and its settings continue to apply to them. A deleted blueprint no longer appears in blueprint lists and can no longer be chosen as a transfer target; if a maker blueprint is deleted while a resolution is pending 4-eyes approval, a rejected resolution leaves the case on the checker blueprint.
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/
func (*CasesBlueprintsService) DiscardDraft ¶
func (r *CasesBlueprintsService) DiscardDraft(ctx context.Context, blueprintUUID string, params CasePublicationPolicyDraftPreconditionRequest, opts ...option.RequestOption) error
DiscardDraft
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/draft/
func (*CasesBlueprintsService) InstallPresets ¶
func (r *CasesBlueprintsService) InstallPresets(ctx context.Context, params CasesBlueprintsInstallPresetsParams, opts ...option.RequestOption) (*CaseBlueprintPresetInstallResult, error)
InstallPresets: Install blueprint presets.
Copy one or more presets into the application as editable blueprints. Idempotent per preset_key; omit preset_keys to install every preset not yet installed.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/install/
func (*CasesBlueprintsService) List ¶
func (r *CasesBlueprintsService) List(ctx context.Context, params CasesBlueprintsListParams, opts ...option.RequestOption) (*Page[CaseBlueprintListItem], error)
List: List blueprints.
List case blueprints for the application.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/
func (*CasesBlueprintsService) ListAutoPaging ¶
func (r *CasesBlueprintsService) ListAutoPaging(ctx context.Context, params CasesBlueprintsListParams, opts ...option.RequestOption) *PageIterator[CaseBlueprintListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesBlueprintsService) ListHistory ¶
func (r *CasesBlueprintsService) ListHistory(ctx context.Context, blueprintUUID string, params CasesBlueprintsListHistoryParams, opts ...option.RequestOption) (*Page[CasePublicationPolicyRevision], error)
ListHistory
It returns one page; ListHistoryAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/history/
func (*CasesBlueprintsService) ListHistoryAutoPaging ¶
func (r *CasesBlueprintsService) ListHistoryAutoPaging(ctx context.Context, blueprintUUID string, params CasesBlueprintsListHistoryParams, opts ...option.RequestOption) *PageIterator[CasePublicationPolicyRevision]
ListHistoryAutoPaging iterates over every item of every page of ListHistory, fetching pages as needed.
func (*CasesBlueprintsService) ListPresets ¶
func (r *CasesBlueprintsService) ListPresets(ctx context.Context, opts ...option.RequestOption) (*CasesBlueprintsListPresetsResponse, error)
ListPresets: List blueprint presets.
List the four built-in presets (Screening hit, AML investigation, Suspicious activity, KYC review) with their content_config and whether each is already installed on this application.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/presets/
func (*CasesBlueprintsService) Publish ¶
func (r *CasesBlueprintsService) Publish(ctx context.Context, blueprintUUID string, params CasePublicationPolicyDraftPreconditionRequest, opts ...option.RequestOption) (*CasePublicationCaseBlueprint, error)
Publish
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/publish/
func (*CasesBlueprintsService) Retrieve ¶
func (r *CasesBlueprintsService) Retrieve(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) (*CaseBlueprintDetail, error)
Retrieve: Get blueprint.
Retrieve a blueprint, including its connected creation sources (AML config, transaction rules, workflow nodes) and which blueprints escalate to it.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/
func (*CasesBlueprintsService) RetrieveDraft ¶
func (r *CasesBlueprintsService) RetrieveDraft(ctx context.Context, blueprintUUID string, opts ...option.RequestOption) (*CasePublicationPolicyDraftResponse, error)
RetrieveDraft
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/draft/
func (*CasesBlueprintsService) SaveDraft ¶
func (r *CasesBlueprintsService) SaveDraft(ctx context.Context, blueprintUUID string, params CasePublicationPolicyDraftWriteRequest, opts ...option.RequestOption) (*CasePublicationPolicyDraft, error)
SaveDraft
The organization and application ids come from the client options.
PUT /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/draft/
func (*CasesBlueprintsService) Update ¶
func (r *CasesBlueprintsService) Update(ctx context.Context, blueprintUUID string, params CasesBlueprintsUpdateParams, opts ...option.RequestOption) (*CaseBlueprintDetail, error)
Update: Update blueprint.
Partially update a blueprint's general settings or content_config.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/blueprints/{blueprint_uuid}/
type CasesBlueprintsUpdateParams ¶
type CasesBlueprintsUpdateParams struct {
// Max 24 characters, e.g. "AML investigation".
Name Opt[string] `json:"name"`
Description Opt[string] `json:"description"`
// List of User UUIDs. Empty arrays are rejected with "Pick at least one
// assignee".
AssigneePool Opt[[]string] `json:"assignee_pool"`
AssignmentMethod Opt[CasesBlueprintsUpdateParamsAssignmentMethod] `json:"assignment_method"`
// Automatic-mode threshold: "fewer than N cases of this blueprint assigned".
MaxActiveCases Opt[int64] `json:"max_active_cases"`
EscalationEnabled Opt[bool] `json:"escalation_enabled"`
// Target blueprint UUID. Not enforced at save time, but the escalate action
// fails with 400 until both escalation_enabled and escalation_blueprint are
// set.
EscalationBlueprint Opt[string] `json:"escalation_blueprint"`
TransferEnabled Opt[bool] `json:"transfer_enabled"`
// Setting this enables 4-eyes review: resolutions on this blueprint stage on
// the checker blueprint's queue.
FourEyesCheckerBlueprint Opt[string] `json:"four_eyes_checker_blueprint"`
RequireResolutionNote Opt[bool] `json:"require_resolution_note"`
ContentConfig Opt[CaseContentConfigParam] `json:"content_config"`
IsActive Opt[bool] `json:"is_active"`
// Default deadline for newly opened cases. Existing case deadlines are
// unchanged.
DefaultDeadlineHours Opt[int64] `json:"default_deadline_hours"`
// The version opened by the editor. A stale version returns 409 without
// changing the review policy.
ExpectedVersion Opt[int64] `json:"expected_version"`
}
CasesBlueprintsUpdateParams holds the parameters of Client.Cases.Blueprints.Update.
func (CasesBlueprintsUpdateParams) MarshalJSON ¶
func (r CasesBlueprintsUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBlueprintsUpdateParamsAssignmentMethod ¶
type CasesBlueprintsUpdateParamsAssignmentMethod string
CasesBlueprintsUpdateParamsAssignmentMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesBlueprintsUpdateParamsAssignmentMethodManual CasesBlueprintsUpdateParamsAssignmentMethod = "MANUAL" CasesBlueprintsUpdateParamsAssignmentMethodAutomatic CasesBlueprintsUpdateParamsAssignmentMethod = "AUTOMATIC" )
Known values of CasesBlueprintsUpdateParamsAssignmentMethod.
type CasesBulkAssignParams ¶
type CasesBulkAssignParams struct {
// Required.
CaseUUIDs []string `json:"case_uuids"`
// Required.
AssigneeUserID Opt[string] `json:"assignee_user_id"`
AssigneeEmail Opt[string] `json:"assignee_email"`
AssigneeName Opt[string] `json:"assignee_name"`
}
CasesBulkAssignParams holds the parameters of Client.Cases.BulkAssign.
func (CasesBulkAssignParams) MarshalJSON ¶
func (r CasesBulkAssignParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBulkUpdateStatusParams ¶
type CasesBulkUpdateStatusParams struct {
// Required.
CaseUUIDs []string `json:"case_uuids"`
// Required.
Status CasesBulkUpdateStatusParamsStatus `json:"status"`
// Required when status is RESOLVED.
Resolution Opt[CasesBulkUpdateStatusParamsResolution] `json:"resolution"`
Note Opt[string] `json:"note"`
}
CasesBulkUpdateStatusParams holds the parameters of Client.Cases.BulkUpdateStatus.
func (CasesBulkUpdateStatusParams) MarshalJSON ¶
func (r CasesBulkUpdateStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesBulkUpdateStatusParamsResolution ¶
type CasesBulkUpdateStatusParamsResolution string
CasesBulkUpdateStatusParamsResolution: Required when status is RESOLVED.
CasesBulkUpdateStatusParamsResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesBulkUpdateStatusParamsResolutionFalsePositive CasesBulkUpdateStatusParamsResolution = "FALSE_POSITIVE" CasesBulkUpdateStatusParamsResolutionValidThreat CasesBulkUpdateStatusParamsResolution = "VALID_THREAT" CasesBulkUpdateStatusParamsResolutionInconclusive CasesBulkUpdateStatusParamsResolution = "INCONCLUSIVE" CasesBulkUpdateStatusParamsResolutionRequirementsNotMet CasesBulkUpdateStatusParamsResolution = "REQUIREMENTS_NOT_MET" CasesBulkUpdateStatusParamsResolutionRequirementsSatisfied CasesBulkUpdateStatusParamsResolution = "REQUIREMENTS_SATISFIED" )
Known values of CasesBulkUpdateStatusParamsResolution.
type CasesBulkUpdateStatusParamsStatus ¶
type CasesBulkUpdateStatusParamsStatus string
CasesBulkUpdateStatusParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesBulkUpdateStatusParamsStatusOpen CasesBulkUpdateStatusParamsStatus = "OPEN" CasesBulkUpdateStatusParamsStatusAwaitingUser CasesBulkUpdateStatusParamsStatus = "AWAITING_USER" CasesBulkUpdateStatusParamsStatusResolved CasesBulkUpdateStatusParamsStatus = "RESOLVED" )
Known values of CasesBulkUpdateStatusParamsStatus.
type CasesChecklistService ¶
type CasesChecklistService struct {
// contains filtered or unexported fields
}
CasesChecklistService holds the cases checklist operations. Use it through Client.Cases.Checklist.
func (*CasesChecklistService) List ¶
func (r *CasesChecklistService) List(ctx context.Context, caseUUID string, opts ...option.RequestOption) ([]CaseChecklistItem, error)
List: List case checklist.
List the case's checklist items, copied from the blueprint's content_config.checklist.items at creation, ordered.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/checklist/
func (*CasesChecklistService) ToggleItem ¶
func (r *CasesChecklistService) ToggleItem(ctx context.Context, caseUUID string, itemUUID string, params CasesChecklistToggleItemParams, opts ...option.RequestOption) (*CaseChecklistItem, error)
ToggleItem: Toggle checklist item.
Mark a checklist item complete or incomplete. Resolution is blocked while any item is incomplete, unless the blueprint marks the checklist optional.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/checklist/{item_uuid}/
type CasesChecklistToggleItemParams ¶
type CasesChecklistToggleItemParams struct {
// Required.
IsCompleted bool `json:"is_completed"`
}
CasesChecklistToggleItemParams holds the parameters of Client.Cases.Checklist.ToggleItem.
func (CasesChecklistToggleItemParams) MarshalJSON ¶
func (r CasesChecklistToggleItemParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesCreateParams ¶
type CasesCreateParams struct {
// Required.
Title string `json:"title"`
// CaseBlueprint UUID. Omit for no blueprint.
Blueprint Opt[string] `json:"blueprint"`
Priority Opt[CasesCreateParamsPriority] `json:"priority"`
DueAt Opt[time.Time] `json:"due_at"`
Tags Opt[[]string] `json:"tags"`
// Required unless links is provided; the case's exactly-one subject.
Subject Opt[CasesCreateParamsSubject] `json:"subject"`
// Sessions/business sessions/transactions to attach on creation, e.g.
// [{"entity_type": "transaction", "entity_uuid": "..."}]. When subject is
// omitted, the subject is derived from the first link's owner.
Links Opt[[]map[string]any] `json:"links"`
// User UUID to assign immediately.
AssignedTo Opt[string] `json:"assigned_to"`
// Recheck existing investigations before creating the case. When true, a
// subject with existing cases requires a nonblank separate_incident_reason. The
// console always enables this protection. Omitting it preserves existing API
// behavior.
ReviewDuplicates Opt[bool] `json:"review_duplicates"`
SeparateIncidentReason Opt[string] `json:"separate_incident_reason"`
SourceContext Opt[CaseDuplicateCaseFraudSourceContextRequest] `json:"source_context"`
}
CasesCreateParams holds the parameters of Client.Cases.Create.
func (CasesCreateParams) MarshalJSON ¶
func (r CasesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesCreateParamsPriority ¶
type CasesCreateParamsPriority string
CasesCreateParamsPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesCreateParamsPriorityLow CasesCreateParamsPriority = "LOW" CasesCreateParamsPriorityMedium CasesCreateParamsPriority = "MEDIUM" CasesCreateParamsPriorityHigh CasesCreateParamsPriority = "HIGH" )
Known values of CasesCreateParamsPriority.
type CasesCreateParamsSubject ¶
type CasesCreateParamsSubject struct {
Type Opt[CasesCreateParamsSubjectType] `json:"type"`
UUID Opt[string] `json:"uuid"`
}
CasesCreateParamsSubject: Required unless links is provided; the case's exactly-one subject.
func (CasesCreateParamsSubject) MarshalJSON ¶
func (r CasesCreateParamsSubject) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesCreateParamsSubjectType ¶
type CasesCreateParamsSubjectType string
CasesCreateParamsSubjectType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesCreateParamsSubjectTypeUser CasesCreateParamsSubjectType = "user" CasesCreateParamsSubjectTypeBusiness CasesCreateParamsSubjectType = "business" )
Known values of CasesCreateParamsSubjectType.
type CasesLinksCreateParams ¶
type CasesLinksCreateParams struct {
// Required.
EntityType CasesLinksCreateParamsEntityType `json:"entity_type"`
// Required.
EntityUUID string `json:"entity_uuid"`
}
CasesLinksCreateParams holds the parameters of Client.Cases.Links.Create.
func (CasesLinksCreateParams) MarshalJSON ¶
func (r CasesLinksCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesLinksCreateParamsEntityType ¶
type CasesLinksCreateParamsEntityType string
CasesLinksCreateParamsEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesLinksCreateParamsEntityTypeSession CasesLinksCreateParamsEntityType = "session" CasesLinksCreateParamsEntityTypeBusinessSession CasesLinksCreateParamsEntityType = "business_session" CasesLinksCreateParamsEntityTypeTransaction CasesLinksCreateParamsEntityType = "transaction" )
Known values of CasesLinksCreateParamsEntityType.
type CasesLinksService ¶
type CasesLinksService struct {
// contains filtered or unexported fields
}
CasesLinksService holds the cases links operations. Use it through Client.Cases.Links.
func (*CasesLinksService) Create ¶
func (r *CasesLinksService) Create(ctx context.Context, caseUUID string, params CasesLinksCreateParams, opts ...option.RequestOption) (*CaseLink, error)
Create: Add case link.
Attach a session, business session, or transaction to the case. Rejected with 400 if the entity belongs to a different subject than the case.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/links/
func (*CasesLinksService) Delete ¶
func (r *CasesLinksService) Delete(ctx context.Context, caseUUID string, linkUUID string, opts ...option.RequestOption) error
Delete: Remove case link.
Detach a linked session, business session, or transaction from the case.
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/links/{link_uuid}/
func (*CasesLinksService) List ¶
func (r *CasesLinksService) List(ctx context.Context, caseUUID string, opts ...option.RequestOption) ([]CaseLink, error)
List: List case links.
List sessions, business sessions, and transactions attached to the case.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/links/
type CasesListActionReceiptsParams ¶
CasesListActionReceiptsParams holds the parameters of Client.Cases.ListActionReceipts.
func (CasesListActionReceiptsParams) MarshalJSON ¶
func (r CasesListActionReceiptsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesListEventsParams ¶
type CasesListEventsParams struct {
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesListEventsParams holds the parameters of Client.Cases.ListEvents.
func (CasesListEventsParams) MarshalJSON ¶
func (r CasesListEventsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesListParams ¶
type CasesListParams struct {
// Page size. Defaults to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record.
Offset Opt[int64] `json:"-" query:"offset"`
// Comma-separated statuses to include, e.g. OPEN,AWAITING_USER.
StatusIn Opt[string] `json:"-" query:"status__in"`
// Comma-separated priorities to include.
Priority Opt[string] `json:"-" query:"priority"`
// Comma-separated sources to include.
SourceIn Opt[string] `json:"-" query:"source__in"`
// Filter to cases on this blueprint.
Blueprint Opt[string] `json:"-" query:"blueprint"`
// Filter to cases assigned to this user.
AssignedTo Opt[string] `json:"-" query:"assigned_to"`
// true for unassigned cases, false for assigned cases.
Unassigned Opt[bool] `json:"-" query:"unassigned"`
// Filter to cases carrying this exact tag.
Tag Opt[string] `json:"-" query:"tag"`
// Matches title, case_number, tag, subject name/UUID/external ID, linked
// session UUID, or linked transaction UUID.
Search Opt[string] `json:"-" query:"search"`
// Created-at lower bound (inclusive).
DateFrom Opt[string] `json:"-" query:"date_from"`
// Created-at upper bound (inclusive).
DateTo Opt[string] `json:"-" query:"date_to"`
// due_at upper bound.
DueBefore Opt[time.Time] `json:"-" query:"due_before"`
// true to return only overdue open/awaiting-user cases.
Overdue Opt[bool] `json:"-" query:"overdue"`
// Sort order. due_at sorts nulls last.
Ordering Opt[CasesListParamsOrdering] `json:"-" query:"ordering"`
}
CasesListParams holds the parameters of Client.Cases.List.
func (CasesListParams) MarshalJSON ¶
func (r CasesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesListParamsOrdering ¶
type CasesListParamsOrdering string
CasesListParamsOrdering is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesListParamsOrderingCreatedAt CasesListParamsOrdering = "created_at" CasesListParamsOrderingCreatedAt2 CasesListParamsOrdering = "-created_at" CasesListParamsOrderingDueAt CasesListParamsOrdering = "due_at" CasesListParamsOrderingDueAt2 CasesListParamsOrdering = "-due_at" )
Known values of CasesListParamsOrdering.
type CasesListReviewersResponse ¶
type CasesListReviewersResponse struct {
Results []CasesListReviewersResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesListReviewersResponse is a response object.
func (*CasesListReviewersResponse) UnmarshalJSON ¶
func (r *CasesListReviewersResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesListReviewersResponse leniently.
type CasesListReviewersResponseResults ¶
type CasesListReviewersResponseResults struct {
UserID string `json:"user_id"`
Email string `json:"email"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesListReviewersResponseResults is a response object.
func (*CasesListReviewersResponseResults) UnmarshalJSON ¶
func (r *CasesListReviewersResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesListReviewersResponseResults leniently.
type CasesNotesCreateAttachmentUploadParams ¶
type CasesNotesCreateAttachmentUploadParams struct {
// Required.
File File `json:"-" form:"file"`
}
CasesNotesCreateAttachmentUploadParams holds the parameters of Client.Cases.Notes.CreateAttachmentUpload.
func (CasesNotesCreateAttachmentUploadParams) MarshalJSON ¶
func (r CasesNotesCreateAttachmentUploadParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesNotesCreateAttachmentUploadResponse ¶
type CasesNotesCreateAttachmentUploadResponse struct {
S3Key string `json:"s3_key"`
URL string `json:"url"`
Filename string `json:"filename"`
FileSize int64 `json:"file_size"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesNotesCreateAttachmentUploadResponse is a response object.
func (*CasesNotesCreateAttachmentUploadResponse) UnmarshalJSON ¶
func (r *CasesNotesCreateAttachmentUploadResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesNotesCreateAttachmentUploadResponse leniently.
type CasesNotesListParams ¶
type CasesNotesListParams struct {
// Which field to use when ordering the results.
Ordering Opt[string] `json:"-" query:"ordering"`
// Number of results to return per page.
Limit Opt[int64] `json:"-" query:"limit"`
// The initial index from which to return the results.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesNotesListParams holds the parameters of Client.Cases.Notes.List.
func (CasesNotesListParams) MarshalJSON ¶
func (r CasesNotesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesNotesRetrieveAttachmentURLParams ¶
type CasesNotesRetrieveAttachmentURLParams struct {
// The attachment's s3_key, as returned by upload or listed on the note.
// Required.
S3Key string `json:"-" query:"s3_key"`
}
CasesNotesRetrieveAttachmentURLParams holds the parameters of Client.Cases.Notes.RetrieveAttachmentURL.
func (CasesNotesRetrieveAttachmentURLParams) MarshalJSON ¶
func (r CasesNotesRetrieveAttachmentURLParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesNotesRetrieveAttachmentURLResponse ¶
type CasesNotesRetrieveAttachmentURLResponse struct {
S3Key string `json:"s3_key"`
URL string `json:"url"`
Filename string `json:"filename"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesNotesRetrieveAttachmentURLResponse is a response object.
func (*CasesNotesRetrieveAttachmentURLResponse) UnmarshalJSON ¶
func (r *CasesNotesRetrieveAttachmentURLResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesNotesRetrieveAttachmentURLResponse leniently.
type CasesNotesService ¶
type CasesNotesService struct {
// contains filtered or unexported fields
}
CasesNotesService holds the cases notes operations. Use it through Client.Cases.Notes.
func (*CasesNotesService) Create ¶
func (r *CasesNotesService) Create(ctx context.Context, caseUUID string, params CaseCollaborationCaseNoteCreateRequest, opts ...option.RequestOption) (*CaseCollaborationCaseNote, error)
Create
Add a case-scoped note. An optional client_reference makes an unchanged retry return the same note without duplicate activity or notifications. reply_to must identify a live note in this case. The response includes a bounded parent excerpt without copying that excerpt into the saved reply.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/
func (*CasesNotesService) CreateAttachmentUpload ¶
func (r *CasesNotesService) CreateAttachmentUpload(ctx context.Context, caseUUID string, params CasesNotesCreateAttachmentUploadParams, opts ...option.RequestOption) (*CasesNotesCreateAttachmentUploadResponse, error)
CreateAttachmentUpload: Upload note attachment.
Upload a file (JPEG, PNG, WebP, PDF, plain text, or CSV; max 5 MB) to attach to a note. Returns the s3_key to pass in the note's attachments array.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/presign/
func (*CasesNotesService) Delete ¶
func (r *CasesNotesService) Delete(ctx context.Context, caseUUID string, noteUUID string, opts ...option.RequestOption) error
Delete
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/{note_uuid}/
func (*CasesNotesService) List ¶
func (r *CasesNotesService) List(ctx context.Context, caseUUID string, params CasesNotesListParams, opts ...option.RequestOption) (*Page[CaseCollaborationCaseNote], error)
List
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/
func (*CasesNotesService) ListAutoPaging ¶
func (r *CasesNotesService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesNotesListParams, opts ...option.RequestOption) *PageIterator[CaseCollaborationCaseNote]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesNotesService) RetrieveAttachmentURL ¶
func (r *CasesNotesService) RetrieveAttachmentURL(ctx context.Context, caseUUID string, params CasesNotesRetrieveAttachmentURLParams, opts ...option.RequestOption) (*CasesNotesRetrieveAttachmentURLResponse, error)
RetrieveAttachmentURL: Get note attachment URL.
Mint a fresh presigned download URL for an attachment already stored on one of the case's notes.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/presign/
func (*CasesNotesService) Update ¶
func (r *CasesNotesService) Update(ctx context.Context, caseUUID string, noteUUID string, params CaseCollaborationPatchedCaseNoteUpdateRequest, opts ...option.RequestOption) (*CaseCollaborationCaseNote, error)
Update
Pin or unpin an existing note. Pinned notes appear first. Pin changes are recorded in case activity and do not change evidence or source decisions.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/notes/{note_uuid}/
type CasesPrintResponse ¶
type CasesPrintResponse struct {
URL string `json:"url"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesPrintResponse is a response object.
func (*CasesPrintResponse) UnmarshalJSON ¶
func (r *CasesPrintResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesPrintResponse leniently.
type CasesRegulatoryReportsCreateParams ¶
type CasesRegulatoryReportsCreateParams struct {
// Required unless a template is given; the template's report_type is used
// otherwise.
ReportType Opt[CasesRegulatoryReportsCreateParamsReportType] `json:"report_type"`
// Required unless a template is given.
Jurisdiction Opt[string] `json:"jurisdiction"`
// Report template UUID; its field_config seeds the draft before case-derived
// data is merged in.
Template Opt[string] `json:"template"`
// Transactions to attach; defaults to the case's linked transactions.
Transactions Opt[[]string] `json:"transactions"`
RentityID Opt[string] `json:"rentity_id"`
RentityBranch Opt[string] `json:"rentity_branch"`
SubmissionCode Opt[CasesRegulatoryReportsCreateParamsSubmissionCode] `json:"submission_code"`
EntityReference Opt[string] `json:"entity_reference"`
FiuRefNumber Opt[string] `json:"fiu_ref_number"`
CurrencyCodeLocal Opt[string] `json:"currency_code_local"`
SubmissionDate Opt[time.Time] `json:"submission_date"`
ReportingPerson Opt[map[string]any] `json:"reporting_person"`
Location Opt[map[string]any] `json:"location"`
Reason Opt[string] `json:"reason"`
Action Opt[string] `json:"action"`
Activity Opt[string] `json:"activity"`
Narrative Opt[CasesRegulatoryReportsCreateParamsNarrative] `json:"narrative"`
ReportIndicators Opt[[]string] `json:"report_indicators"`
IncludedFields Opt[[]string] `json:"included_fields"`
}
CasesRegulatoryReportsCreateParams holds the parameters of Client.Cases.RegulatoryReports.Create.
func (CasesRegulatoryReportsCreateParams) MarshalJSON ¶
func (r CasesRegulatoryReportsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRegulatoryReportsCreateParamsNarrative ¶
type CasesRegulatoryReportsCreateParamsNarrative struct {
Who Opt[string] `json:"who"`
What Opt[string] `json:"what"`
When Opt[string] `json:"when"`
Where Opt[string] `json:"where"`
Why Opt[string] `json:"why"`
How Opt[string] `json:"how"`
}
CasesRegulatoryReportsCreateParamsNarrative is a request object.
func (CasesRegulatoryReportsCreateParamsNarrative) MarshalJSON ¶
func (r CasesRegulatoryReportsCreateParamsNarrative) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRegulatoryReportsCreateParamsReportType ¶
type CasesRegulatoryReportsCreateParamsReportType string
CasesRegulatoryReportsCreateParamsReportType: Required unless a template is given; the template's report_type is used otherwise.
CasesRegulatoryReportsCreateParamsReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRegulatoryReportsCreateParamsReportTypeSar CasesRegulatoryReportsCreateParamsReportType = "SAR" CasesRegulatoryReportsCreateParamsReportTypeStr CasesRegulatoryReportsCreateParamsReportType = "STR" CasesRegulatoryReportsCreateParamsReportTypeCtr CasesRegulatoryReportsCreateParamsReportType = "CTR" CasesRegulatoryReportsCreateParamsReportTypeTtr CasesRegulatoryReportsCreateParamsReportType = "TTR" CasesRegulatoryReportsCreateParamsReportTypeUtr CasesRegulatoryReportsCreateParamsReportType = "UTR" CasesRegulatoryReportsCreateParamsReportTypeIft CasesRegulatoryReportsCreateParamsReportType = "IFT" CasesRegulatoryReportsCreateParamsReportTypeCbr CasesRegulatoryReportsCreateParamsReportType = "CBR" CasesRegulatoryReportsCreateParamsReportTypeTfr CasesRegulatoryReportsCreateParamsReportType = "TFR" )
Known values of CasesRegulatoryReportsCreateParamsReportType.
type CasesRegulatoryReportsCreateParamsSubmissionCode ¶
type CasesRegulatoryReportsCreateParamsSubmissionCode string
CasesRegulatoryReportsCreateParamsSubmissionCode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRegulatoryReportsCreateParamsSubmissionCodeE CasesRegulatoryReportsCreateParamsSubmissionCode = "E" CasesRegulatoryReportsCreateParamsSubmissionCodeM CasesRegulatoryReportsCreateParamsSubmissionCode = "M" )
Known values of CasesRegulatoryReportsCreateParamsSubmissionCode.
type CasesRegulatoryReportsListParams ¶
type CasesRegulatoryReportsListParams struct {
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesRegulatoryReportsListParams holds the parameters of Client.Cases.RegulatoryReports.List.
func (CasesRegulatoryReportsListParams) MarshalJSON ¶
func (r CasesRegulatoryReportsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRegulatoryReportsService ¶
type CasesRegulatoryReportsService struct {
// contains filtered or unexported fields
}
CasesRegulatoryReportsService holds the cases regulatory_reports operations. Use it through Client.Cases.RegulatoryReports.
func (*CasesRegulatoryReportsService) Create ¶
func (r *CasesRegulatoryReportsService) Create(ctx context.Context, caseUUID string, params CasesRegulatoryReportsCreateParams, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
Create: Create report from case.
Create a draft FIU report for the case: DRAFT status, auto-populated from the optional template plus the case's subject, linked transactions, and narrative. Validate then finalize to produce the goAML XML and PDF.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/
func (*CasesRegulatoryReportsService) List ¶
func (r *CasesRegulatoryReportsService) List(ctx context.Context, caseUUID string, params CasesRegulatoryReportsListParams, opts ...option.RequestOption) (*Page[RegulatoryReportDetail], error)
List: List reports for case.
List FIU reports generated for the case.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/regulatory-reports/
func (*CasesRegulatoryReportsService) ListAutoPaging ¶
func (r *CasesRegulatoryReportsService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesRegulatoryReportsListParams, opts ...option.RequestOption) *PageIterator[RegulatoryReportDetail]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type CasesRejectResolutionParams ¶
CasesRejectResolutionParams holds the parameters of Client.Cases.RejectResolution.
func (CasesRejectResolutionParams) MarshalJSON ¶
func (r CasesRejectResolutionParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRequestsListParams ¶
type CasesRequestsListParams struct {
// Which field to use when ordering the results.
Ordering Opt[string] `json:"-" query:"ordering"`
// Number of results to return per page.
Limit Opt[int64] `json:"-" query:"limit"`
// The initial index from which to return the results.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesRequestsListParams holds the parameters of Client.Cases.Requests.List.
func (CasesRequestsListParams) MarshalJSON ¶
func (r CasesRequestsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRequestsRemindResponse ¶
type CasesRequestsRemindResponse struct {
Request CustomerMessagingCaseRequest `json:"request"`
// When this reminder was recorded.
RemindedAt time.Time `json:"reminded_at"`
// How this reminder's delivery ended. SIMULATED: the email was not sent.
// UNKNOWN: the email might have been accepted; it is not sent again
// automatically.
DeliveryStatus CasesRequestsRemindResponseDeliveryStatus `json:"delivery_status"`
// When you can remind this request again: `reminded_at` plus 24 hours.
NextReminderAt time.Time `json:"next_reminder_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRequestsRemindResponse is a response object.
func (*CasesRequestsRemindResponse) UnmarshalJSON ¶
func (r *CasesRequestsRemindResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRequestsRemindResponse leniently.
type CasesRequestsRemindResponseDeliveryStatus ¶
type CasesRequestsRemindResponseDeliveryStatus string
CasesRequestsRemindResponseDeliveryStatus: How this reminder's delivery ended. SIMULATED: the email was not sent. UNKNOWN: the email might have been accepted; it is not sent again automatically.
CasesRequestsRemindResponseDeliveryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRequestsRemindResponseDeliveryStatusSent CasesRequestsRemindResponseDeliveryStatus = "SENT" CasesRequestsRemindResponseDeliveryStatusSimulated CasesRequestsRemindResponseDeliveryStatus = "SIMULATED" CasesRequestsRemindResponseDeliveryStatusUnknown CasesRequestsRemindResponseDeliveryStatus = "UNKNOWN" )
Known values of CasesRequestsRemindResponseDeliveryStatus.
type CasesRequestsService ¶
type CasesRequestsService struct {
// contains filtered or unexported fields
}
CasesRequestsService holds the cases requests operations. Use it through Client.Cases.Requests.
func (*CasesRequestsService) Cancel ¶
func (r *CasesRequestsService) Cancel(ctx context.Context, caseUUID string, requestUUID string, opts ...option.RequestOption) (*CustomerMessagingCaseRequest, error)
Cancel
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/{request_uuid}/cancel/
func (*CasesRequestsService) Create ¶
func (r *CasesRequestsService) Create(ctx context.Context, caseUUID string, params CustomerMessagingCaseRequestConfirmRequest, opts ...option.RequestOption) (*CustomerMessagingCaseRequest, error)
Create
Confirm the exact signed preview within 15 minutes. Only fixed templates and an OTP-verified contact belonging to the case subject are accepted. The request ID makes retries idempotent. Delivery is queued; SENT, SIMULATED and UNKNOWN are distinct outcomes. An actionable request sets the case to Awaiting user. A review update leaves its status unchanged.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/
func (*CasesRequestsService) List ¶
func (r *CasesRequestsService) List(ctx context.Context, caseUUID string, params CasesRequestsListParams, opts ...option.RequestOption) (*Page[CustomerMessagingCaseRequest], error)
List
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/
func (*CasesRequestsService) ListAutoPaging ¶
func (r *CasesRequestsService) ListAutoPaging(ctx context.Context, caseUUID string, params CasesRequestsListParams, opts ...option.RequestOption) *PageIterator[CustomerMessagingCaseRequest]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesRequestsService) Preview ¶
func (r *CasesRequestsService) Preview(ctx context.Context, caseUUID string, params CustomerMessagingCaseRequestPreviewRequest, opts ...option.RequestOption) (*CustomerMessagingCaseRequestPreviewResponse, error)
Preview
Render the production email without sending or changing the case. Returns the exact recipient, sender, subject, body and a signed preview_token. Send the same contact_id, purpose, language, request_id, expires_at and preview_token to confirm within 15 minutes.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/preview/
func (*CasesRequestsService) Remind ¶
func (r *CasesRequestsService) Remind(ctx context.Context, caseUUID string, requestUUID string, opts ...option.RequestOption) (*CasesRequestsRemindResponse, error)
Remind: Remind the customer of a request.
Send a waiting customer request's email again, to the same verified recipient, with the same content. You can remind a request at most once every 24 hours. A reminder changes nothing else: the request keeps its deadline and the case keeps its status. Each reminder is logged on the case as a CUSTOMER_REQUEST event with action `reminded`. The response's `delivery_status` is how this reminder's delivery ended: SENT, SIMULATED (the email was not sent), or UNKNOWN (the email might have been accepted; it is not sent again automatically). `next_reminder_at` is when you can remind this request again. Returns 409 with a `reason` when the customer no longer has the request to answer, and 429 with `retry_at` and a `Retry-After` header when the request was reminded in the last 24 hours. Requires `write:cases`.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/{request_uuid}/remind/
func (*CasesRequestsService) RetrieveAttachment ¶
func (r *CasesRequestsService) RetrieveAttachment(ctx context.Context, caseUUID string, requestUUID string, opts ...option.RequestOption) (*http.Response, error)
RetrieveAttachment
The response is a file (image/jpeg). Read it from the returned response's body and close it.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/{request_uuid}/attachment/
func (*CasesRequestsService) RetrieveOptions ¶
func (r *CasesRequestsService) RetrieveOptions(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CustomerMessagingCaseRequestOptions, error)
RetrieveOptions
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/requests/options/
type CasesResolveParams ¶
type CasesResolveParams struct {
// Required.
Resolution CasesResolveParamsResolution `json:"resolution"`
// Required when the blueprint sets require_resolution_note.
Note Opt[string] `json:"note"`
// Four-eyes blueprints only. The user uuid of the member who must approve this
// resolution (the same id as `assigned_to.uuid` on a case, or
// `members[].user_id` on a review team). The member must have case access to
// this application and cannot be the officer who submits the resolution. Omit
// it or send null to leave the resolution to the checker queue.
Checker Opt[string] `json:"checker"`
}
CasesResolveParams holds the parameters of Client.Cases.Resolve.
func (CasesResolveParams) MarshalJSON ¶
func (r CasesResolveParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesResolveParamsResolution ¶
type CasesResolveParamsResolution string
CasesResolveParamsResolution is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesResolveParamsResolutionFalsePositive CasesResolveParamsResolution = "FALSE_POSITIVE" CasesResolveParamsResolutionValidThreat CasesResolveParamsResolution = "VALID_THREAT" CasesResolveParamsResolutionInconclusive CasesResolveParamsResolution = "INCONCLUSIVE" CasesResolveParamsResolutionRequirementsNotMet CasesResolveParamsResolution = "REQUIREMENTS_NOT_MET" CasesResolveParamsResolutionRequirementsSatisfied CasesResolveParamsResolution = "REQUIREMENTS_SATISFIED" )
Known values of CasesResolveParamsResolution.
type CasesRetrieveStatisticsParams ¶
type CasesRetrieveStatisticsParams struct {
// Range start (inclusive). Defaults to 30 days ago.
DateFrom Opt[string] `json:"-" query:"date_from"`
// Range end (inclusive). Defaults to today.
DateTo Opt[string] `json:"-" query:"date_to"`
// Filter by the current blueprint UUID.
Blueprint Opt[string] `json:"-" query:"blueprint"`
// Filter by the current assigned reviewer user UUID.
AssignedTo Opt[string] `json:"-" query:"assigned_to"`
// Filter by current case priority.
Priority Opt[CasesRetrieveStatisticsParamsPriority] `json:"-" query:"priority"`
// Filter by case creation source.
Source Opt[CasesRetrieveStatisticsParamsSource] `json:"-" query:"source"`
// Filter by current case status.
Status Opt[CasesRetrieveStatisticsParamsStatus] `json:"-" query:"status"`
}
CasesRetrieveStatisticsParams holds the parameters of Client.Cases.RetrieveStatistics.
func (CasesRetrieveStatisticsParams) MarshalJSON ¶
func (r CasesRetrieveStatisticsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRetrieveStatisticsParamsPriority ¶
type CasesRetrieveStatisticsParamsPriority string
CasesRetrieveStatisticsParamsPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRetrieveStatisticsParamsPriorityLow CasesRetrieveStatisticsParamsPriority = "LOW" CasesRetrieveStatisticsParamsPriorityMedium CasesRetrieveStatisticsParamsPriority = "MEDIUM" CasesRetrieveStatisticsParamsPriorityHigh CasesRetrieveStatisticsParamsPriority = "HIGH" )
Known values of CasesRetrieveStatisticsParamsPriority.
type CasesRetrieveStatisticsParamsSource ¶
type CasesRetrieveStatisticsParamsSource string
CasesRetrieveStatisticsParamsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRetrieveStatisticsParamsSourceManual CasesRetrieveStatisticsParamsSource = "MANUAL" CasesRetrieveStatisticsParamsSourceAMLScreening CasesRetrieveStatisticsParamsSource = "AML_SCREENING" CasesRetrieveStatisticsParamsSourceTransactionRule CasesRetrieveStatisticsParamsSource = "TRANSACTION_RULE" CasesRetrieveStatisticsParamsSourceWorkflowBuilder CasesRetrieveStatisticsParamsSource = "WORKFLOW_BUILDER" )
Known values of CasesRetrieveStatisticsParamsSource.
type CasesRetrieveStatisticsParamsStatus ¶
type CasesRetrieveStatisticsParamsStatus string
CasesRetrieveStatisticsParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesRetrieveStatisticsParamsStatusOpen CasesRetrieveStatisticsParamsStatus = "OPEN" CasesRetrieveStatisticsParamsStatusAwaitingUser CasesRetrieveStatisticsParamsStatus = "AWAITING_USER" CasesRetrieveStatisticsParamsStatusResolved CasesRetrieveStatisticsParamsStatus = "RESOLVED" )
Known values of CasesRetrieveStatisticsParamsStatus.
type CasesRetrieveStatisticsResponse ¶
type CasesRetrieveStatisticsResponse struct {
Series []CasesRetrieveStatisticsResponseSeries `json:"series"`
Tables CasesRetrieveStatisticsResponseTables `json:"tables"`
Totals CasesRetrieveStatisticsResponseTotals `json:"totals"`
// Live snapshot, not scoped to the date range.
Queue CasesRetrieveStatisticsResponseQueue `json:"queue"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponse is a response object.
func (*CasesRetrieveStatisticsResponse) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponse leniently.
type CasesRetrieveStatisticsResponseQueue ¶
type CasesRetrieveStatisticsResponseQueue struct {
Open int64 `json:"open"`
Overdue int64 `json:"overdue"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseQueue: Live snapshot, not scoped to the date range.
func (*CasesRetrieveStatisticsResponseQueue) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseQueue) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseQueue leniently.
type CasesRetrieveStatisticsResponseSeries ¶
type CasesRetrieveStatisticsResponseSeries struct {
Date string `json:"date"`
Created int64 `json:"created"`
Reviewed int64 `json:"reviewed"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseSeries is a response object.
func (*CasesRetrieveStatisticsResponseSeries) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseSeries) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseSeries leniently.
type CasesRetrieveStatisticsResponseTables ¶
type CasesRetrieveStatisticsResponseTables struct {
Officer []CasesRetrieveStatisticsResponseTablesOfficer `json:"officer"`
Blueprint []CasesRetrieveStatisticsResponseTablesBlueprint `json:"blueprint"`
Source []CasesRetrieveStatisticsResponseTablesSource `json:"source"`
Status []CasesRetrieveStatisticsResponseTablesStatus `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTables is a response object.
func (*CasesRetrieveStatisticsResponseTables) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTables) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTables leniently.
type CasesRetrieveStatisticsResponseTablesBlueprint ¶
type CasesRetrieveStatisticsResponseTablesBlueprint struct {
// Dimension value: officer email, "blueprint_name:uuid", source, or status.
// "unassigned"/"none" for missing dimensions.
Key string `json:"key"`
Created int64 `json:"created"`
Assigned int64 `json:"assigned"`
Resolved int64 `json:"resolved"`
ThreatRate float64 `json:"threat_rate"`
FalsePositiveRate float64 `json:"false_positive_rate"`
Unresolved int64 `json:"unresolved"`
ReassignmentRate float64 `json:"reassignment_rate"`
EscalationRate float64 `json:"escalation_rate"`
AvgAssignHours float64 `json:"avg_assign_hours"`
AvgResolveHours float64 `json:"avg_resolve_hours"`
AvgHandlingHours float64 `json:"avg_handling_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTablesBlueprint is a response object.
func (*CasesRetrieveStatisticsResponseTablesBlueprint) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTablesBlueprint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTablesBlueprint leniently.
type CasesRetrieveStatisticsResponseTablesOfficer ¶
type CasesRetrieveStatisticsResponseTablesOfficer struct {
// Dimension value: officer email, "blueprint_name:uuid", source, or status.
// "unassigned"/"none" for missing dimensions.
Key string `json:"key"`
Created int64 `json:"created"`
Assigned int64 `json:"assigned"`
Resolved int64 `json:"resolved"`
ThreatRate float64 `json:"threat_rate"`
FalsePositiveRate float64 `json:"false_positive_rate"`
Unresolved int64 `json:"unresolved"`
ReassignmentRate float64 `json:"reassignment_rate"`
EscalationRate float64 `json:"escalation_rate"`
AvgAssignHours float64 `json:"avg_assign_hours"`
AvgResolveHours float64 `json:"avg_resolve_hours"`
AvgHandlingHours float64 `json:"avg_handling_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTablesOfficer is a response object.
func (*CasesRetrieveStatisticsResponseTablesOfficer) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTablesOfficer) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTablesOfficer leniently.
type CasesRetrieveStatisticsResponseTablesSource ¶
type CasesRetrieveStatisticsResponseTablesSource struct {
// Dimension value: officer email, "blueprint_name:uuid", source, or status.
// "unassigned"/"none" for missing dimensions.
Key string `json:"key"`
Created int64 `json:"created"`
Assigned int64 `json:"assigned"`
Resolved int64 `json:"resolved"`
ThreatRate float64 `json:"threat_rate"`
FalsePositiveRate float64 `json:"false_positive_rate"`
Unresolved int64 `json:"unresolved"`
ReassignmentRate float64 `json:"reassignment_rate"`
EscalationRate float64 `json:"escalation_rate"`
AvgAssignHours float64 `json:"avg_assign_hours"`
AvgResolveHours float64 `json:"avg_resolve_hours"`
AvgHandlingHours float64 `json:"avg_handling_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTablesSource is a response object.
func (*CasesRetrieveStatisticsResponseTablesSource) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTablesSource) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTablesSource leniently.
type CasesRetrieveStatisticsResponseTablesStatus ¶
type CasesRetrieveStatisticsResponseTablesStatus struct {
// Dimension value: officer email, "blueprint_name:uuid", source, or status.
// "unassigned"/"none" for missing dimensions.
Key string `json:"key"`
Created int64 `json:"created"`
Assigned int64 `json:"assigned"`
Resolved int64 `json:"resolved"`
ThreatRate float64 `json:"threat_rate"`
FalsePositiveRate float64 `json:"false_positive_rate"`
Unresolved int64 `json:"unresolved"`
ReassignmentRate float64 `json:"reassignment_rate"`
EscalationRate float64 `json:"escalation_rate"`
AvgAssignHours float64 `json:"avg_assign_hours"`
AvgResolveHours float64 `json:"avg_resolve_hours"`
AvgHandlingHours float64 `json:"avg_handling_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTablesStatus is a response object.
func (*CasesRetrieveStatisticsResponseTablesStatus) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTablesStatus) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTablesStatus leniently.
type CasesRetrieveStatisticsResponseTotals ¶
type CasesRetrieveStatisticsResponseTotals struct {
Created int64 `json:"created"`
Assigned int64 `json:"assigned"`
Resolved int64 `json:"resolved"`
ThreatRate float64 `json:"threat_rate"`
FalsePositiveRate float64 `json:"false_positive_rate"`
Unresolved int64 `json:"unresolved"`
ReassignmentRate float64 `json:"reassignment_rate"`
EscalationRate float64 `json:"escalation_rate"`
AvgAssignHours float64 `json:"avg_assign_hours"`
AvgResolveHours float64 `json:"avg_resolve_hours"`
AvgHandlingHours float64 `json:"avg_handling_hours"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CasesRetrieveStatisticsResponseTotals is a response object.
func (*CasesRetrieveStatisticsResponseTotals) UnmarshalJSON ¶
func (r *CasesRetrieveStatisticsResponseTotals) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CasesRetrieveStatisticsResponseTotals leniently.
type CasesRoutingRulesListHistoryParams ¶
type CasesRoutingRulesListHistoryParams struct {
// Which field to use when ordering the results.
Ordering Opt[string] `json:"-" query:"ordering"`
// Number of results to return per page.
Limit Opt[int64] `json:"-" query:"limit"`
// The initial index from which to return the results.
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesRoutingRulesListHistoryParams holds the parameters of Client.Cases.RoutingRules.ListHistory.
func (CasesRoutingRulesListHistoryParams) MarshalJSON ¶
func (r CasesRoutingRulesListHistoryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRoutingRulesListParams ¶
type CasesRoutingRulesListParams struct {
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesRoutingRulesListParams holds the parameters of Client.Cases.RoutingRules.List.
func (CasesRoutingRulesListParams) MarshalJSON ¶
func (r CasesRoutingRulesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesRoutingRulesService ¶
type CasesRoutingRulesService struct {
// contains filtered or unexported fields
}
CasesRoutingRulesService holds the cases routing_rules operations. Use it through Client.Cases.RoutingRules.
func (*CasesRoutingRulesService) Create ¶
func (r *CasesRoutingRulesService) Create(ctx context.Context, params CaseRoutingRuleCreate, opts ...option.RequestOption) (*CaseRoutingRule, error)
Create: Create routing rule.
Requires `write:cases` for the requested application. Set publish=false to create an unpublished draft; Publish creates its first live version. Discarding a never-published draft deletes it.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/
func (*CasesRoutingRulesService) DiscardDraft ¶
func (r *CasesRoutingRulesService) DiscardDraft(ctx context.Context, recordUUID string, params RoutingPublicationPolicyDraftPreconditionRequest, opts ...option.RequestOption) error
DiscardDraft
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/draft/
func (*CasesRoutingRulesService) List ¶
func (r *CasesRoutingRulesService) List(ctx context.Context, params CasesRoutingRulesListParams, opts ...option.RequestOption) (*Page[CaseRoutingRule], error)
List: List routing rules.
Requires `list:cases` for the requested application.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/
func (*CasesRoutingRulesService) ListAutoPaging ¶
func (r *CasesRoutingRulesService) ListAutoPaging(ctx context.Context, params CasesRoutingRulesListParams, opts ...option.RequestOption) *PageIterator[CaseRoutingRule]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesRoutingRulesService) ListHistory ¶
func (r *CasesRoutingRulesService) ListHistory(ctx context.Context, recordUUID string, params CasesRoutingRulesListHistoryParams, opts ...option.RequestOption) (*Page[RoutingPublicationPolicyRevision], error)
ListHistory
It returns one page; ListHistoryAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/history/
func (*CasesRoutingRulesService) ListHistoryAutoPaging ¶
func (r *CasesRoutingRulesService) ListHistoryAutoPaging(ctx context.Context, recordUUID string, params CasesRoutingRulesListHistoryParams, opts ...option.RequestOption) *PageIterator[RoutingPublicationPolicyRevision]
ListHistoryAutoPaging iterates over every item of every page of ListHistory, fetching pages as needed.
func (*CasesRoutingRulesService) Preview ¶
func (r *CasesRoutingRulesService) Preview(ctx context.Context, params CaseRoutingPreviewRequest, opts ...option.RequestOption) (*CaseRoutingPreview, error)
Preview: Test case routing.
Requires `read:cases` for the requested application. Evaluates current rules or a supplied draft against current reviewer access, availability, skills and capacity. It does not save the draft or reserve reviewer capacity.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/preview/
func (*CasesRoutingRulesService) Publish ¶
func (r *CasesRoutingRulesService) Publish(ctx context.Context, recordUUID string, params RoutingPublicationPolicyDraftPreconditionRequest, opts ...option.RequestOption) (*RoutingPublicationCaseRoutingRule, error)
Publish
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/publish/
func (*CasesRoutingRulesService) Retrieve ¶
func (r *CasesRoutingRulesService) Retrieve(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*CaseRoutingRule, error)
Retrieve: Retrieve routing rule.
Requires `read:cases` for the requested application.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/
func (*CasesRoutingRulesService) RetrieveDraft ¶
func (r *CasesRoutingRulesService) RetrieveDraft(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*RoutingPublicationPolicyDraftResponse, error)
RetrieveDraft
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/draft/
func (*CasesRoutingRulesService) SaveDraft ¶
func (r *CasesRoutingRulesService) SaveDraft(ctx context.Context, recordUUID string, params RoutingPublicationPolicyDraftWriteRequest, opts ...option.RequestOption) (*RoutingPublicationPolicyDraft, error)
SaveDraft
The organization and application ids come from the client options.
PUT /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/draft/
func (*CasesRoutingRulesService) Update ¶
func (r *CasesRoutingRulesService) Update(ctx context.Context, recordUUID string, params CaseRoutingRuleUpdate, opts ...option.RequestOption) (*CaseRoutingRule, error)
Update: Update routing rule.
Requires `write:cases` for the requested application.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/routing-rules/{record_uuid}/
type CasesService ¶
type CasesService struct {
Blueprints *CasesBlueprintsService
Checklist *CasesChecklistService
Links *CasesLinksService
Notes *CasesNotesService
RegulatoryReports *CasesRegulatoryReportsService
Requests *CasesRequestsService
RoutingRules *CasesRoutingRulesService
Teams *CasesTeamsService
// contains filtered or unexported fields
}
CasesService holds the cases operations. Use it through Client.Cases.
func (*CasesService) ApplyEntityAction ¶
func (r *CasesService) ApplyEntityAction(ctx context.Context, caseUUID string, params CaseActionCaseEntityActionRequest, opts ...option.RequestOption) (*CaseActionCaseEntityActionResult, error)
ApplyEntityAction
Apply one explicit action to the case subject. Supply a unique client_reference to obtain an action receipt and make retries idempotent. Reusing that reference with a different payload returns 409. With a reference, inspect receipt.status even when HTTP status is 200: FAILED means no action was applied. Repeating a failed request does not execute it again unless retry is true. Omitting client_reference preserves the legacy response.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/entity-actions/
func (*CasesService) ApproveResolution ¶
func (r *CasesService) ApproveResolution(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
ApproveResolution: Approve staged resolution (4-eyes).
Apply a resolution staged by resolve on a four-eyes blueprint. The caller must be a different officer than the one who submitted it, otherwise 403. When the resolution names a checker (the case's `checker`), only that member can approve it: any other caller, including an API key, gets 403.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/approve/
func (*CasesService) Assign ¶
func (r *CasesService) Assign(ctx context.Context, caseUUID string, params CasesAssignParams, opts ...option.RequestOption) (*CaseDetail, error)
Assign: Assign or unassign case.
Assign the case to a user, or unassign it by sending assignee_user_id: null. assignee_email/assignee_name auto-provision a User row when the assignee does not exist yet.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/assign/
func (*CasesService) BulkAssign ¶
func (r *CasesService) BulkAssign(ctx context.Context, params CasesBulkAssignParams, opts ...option.RequestOption) (*CaseBulkUpdateResult, error)
BulkAssign: Bulk assign cases.
Assign (or unassign, with assignee_user_id: null) several cases at once. All cases must share the same blueprint; mismatches are reported per case without aborting the batch.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/assign/
func (*CasesService) BulkUpdateStatus ¶
func (r *CasesService) BulkUpdateStatus(ctx context.Context, params CasesBulkUpdateStatusParams, opts ...option.RequestOption) (*CaseBulkUpdateResult, error)
BulkUpdateStatus: Bulk update case status.
Apply the same status transition to several cases in one call: OPEN reopens, AWAITING_USER requests info, RESOLVED resolves (resolution required). Each case is evaluated independently; gate failures (incomplete checklist, missing required note) are reported per case without aborting the batch.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/bulk/status/
func (*CasesService) Create ¶
func (r *CasesService) Create(ctx context.Context, params CasesCreateParams, opts ...option.RequestOption) (*CaseDetail, error)
Create: Create case.
Create a case anchored to exactly one subject (a user or a business), directly or by deriving the subject from an attached session/transaction link. Source is always `MANUAL` for API-created cases.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/
func (*CasesService) Delete ¶
func (r *CasesService) Delete(ctx context.Context, caseUUID string, opts ...option.RequestOption) error
Delete: Delete case.
Delete a case. There is no undelete endpoint.
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/
func (*CasesService) Escalate ¶
func (r *CasesService) Escalate(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
Escalate: Escalate case.
Move the case to its blueprint's configured escalation_blueprint. Requires the current blueprint to have escalation_enabled and an escalation_blueprint set, otherwise 400.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/escalate/
func (*CasesService) FindDuplicates ¶
func (r *CasesService) FindDuplicates(ctx context.Context, params CaseDuplicateCaseDuplicateQueryRequest, opts ...option.RequestOption) (*CaseDuplicateCaseDuplicatePage, error)
FindDuplicates
Review existing cases for a subject or owned source record before manual case creation. Both open and resolved investigations are returned. Each page contains at most 20 cases; use next_offset to request another page.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/duplicates/
func (*CasesService) List ¶
func (r *CasesService) List(ctx context.Context, params CasesListParams, opts ...option.RequestOption) (*Page[CaseListItem], error)
List: List cases.
List cases for the application, newest first. Supports filtering, search, and sorting; see query parameters. Paginated with `limit`/`offset`.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/
func (*CasesService) ListAMLHits ¶
func (r *CasesService) ListAMLHits(ctx context.Context, caseUUID string, opts ...option.RequestOption) ([]AMLScreening, error)
ListAMLHits: List case AML hits.
List AML screening hits for the case's subject. Same shape as the hits returned by POST /v3/aml/.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/aml/
func (*CasesService) ListActionReceipts ¶
func (r *CasesService) ListActionReceipts(ctx context.Context, caseUUID string, params CasesListActionReceiptsParams, opts ...option.RequestOption) (*CaseActionCaseActionReceiptPage, error)
ListActionReceipts
List subject-action receipts, newest first, with at most 20 results per page. Use next_offset for the next page. Input note text is not exposed in the history.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/action-receipts/
func (*CasesService) ListAutoPaging ¶
func (r *CasesService) ListAutoPaging(ctx context.Context, params CasesListParams, opts ...option.RequestOption) *PageIterator[CaseListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesService) ListEvents ¶
func (r *CasesService) ListEvents(ctx context.Context, caseUUID string, params CasesListEventsParams, opts ...option.RequestOption) (*Page[CaseEvent], error)
ListEvents: List case events.
Read-only audit timeline of the case (created, status changes, assignment, resolution, escalation, transfers, tag/priority/due-date changes, entity actions, and more).
It returns one page; ListEventsAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/events/
func (*CasesService) ListEventsAutoPaging ¶
func (r *CasesService) ListEventsAutoPaging(ctx context.Context, caseUUID string, params CasesListEventsParams, opts ...option.RequestOption) *PageIterator[CaseEvent]
ListEventsAutoPaging iterates over every item of every page of ListEvents, fetching pages as needed.
func (*CasesService) ListReviewers ¶
func (r *CasesService) ListReviewers(ctx context.Context, opts ...option.RequestOption) (*CasesListReviewersResponse, error)
ListReviewers: List eligible case reviewers.
Requires `list:cases` for the requested application.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/reviewers/
func (*CasesService) Print ¶
func (r *CasesService) Print(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CasesPrintResponse, error)
Print: Print case (PDF).
Render the full case (summary, subject, checklist state, notes, attached sessions/transactions, events, FIU report list) as a PDF and return a presigned download URL.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/print/
func (*CasesService) RejectResolution ¶
func (r *CasesService) RejectResolution(ctx context.Context, caseUUID string, params CasesRejectResolutionParams, opts ...option.RequestOption) (*CaseDetail, error)
RejectResolution: Reject staged resolution (4-eyes).
Reject a resolution staged by resolve and return the case to its maker blueprint. The caller must be a different officer than the one who submitted it, otherwise 403. When the resolution names a checker (the case's `checker`), only that member can reject it: any other caller, including an API key, gets 403.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/reject-approval/
func (*CasesService) Reopen ¶
func (r *CasesService) Reopen(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
Reopen: Reopen case.
Move an awaiting-user or resolved case back to open, clearing resolution, resolution_notes, resolved_at, and resolved_by_email.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/reopen/
func (*CasesService) RequestInfo ¶
func (r *CasesService) RequestInfo(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
RequestInfo: Request info (awaiting user).
Move an open case to awaiting_user while more information is collected from the verified user. Fails with 400 if a resolution is currently pending 4-eyes approval.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/request-info/
func (*CasesService) Resolve ¶
func (r *CasesService) Resolve(ctx context.Context, caseUUID string, params CasesResolveParams, opts ...option.RequestOption) (*CaseDetail, error)
Resolve: Resolve case.
Resolve the case with one of five resolutions: FALSE_POSITIVE (no concern found), VALID_THREAT (concern confirmed), INCONCLUSIVE, REQUIREMENTS_NOT_MET or REQUIREMENTS_SATISFIED. Blocked with 400 if the blueprint's checklist is not optional and items remain incomplete, or if the blueprint requires a resolution note and none is given. When the case's blueprint has a four-eyes checker step (four_eyes_checker_blueprint), the resolution is staged (case.pending_resolution) and the case moves to the checker blueprint instead of resolving immediately; a different officer must call approve or reject-approval. Submit a four-eyes resolution as a console member: a resolution an API key submits has no recorded maker, so approve and reject-approval return 403 for every caller. On a four-eyes blueprint you can name the member who must approve with `checker`: then only that member can approve or reject the resolution, and the response's `checker` names them. Without `checker`, the resolution waits on the checker blueprint's queue. Sending `checker` for a blueprint without a checker step returns 400.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/resolve/
func (*CasesService) Retrieve ¶
func (r *CasesService) Retrieve(ctx context.Context, caseUUID string, opts ...option.RequestOption) (*CaseDetail, error)
Retrieve: Get case.
Retrieve a case with its subject, blueprint, notes, events, links, and checklist.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/
func (*CasesService) RetrieveStatistics ¶
func (r *CasesService) RetrieveStatistics(ctx context.Context, params CasesRetrieveStatisticsParams, opts ...option.RequestOption) (*CasesRetrieveStatisticsResponse, error)
RetrieveStatistics: Case analytics.
Aggregate case analytics for the date range (defaults to the last 30 days; max 731 days). Charts, tables, totals, assignment events, and current queue counts use the same application-scoped filters. Filters use current case values. Dates apply to each metric event, so older cases assigned or resolved during the period remain included. Queue depth is independent of the date range. Invalid filters return 400; an unknown blueprint or assignee returns an empty result.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/statistics/
func (*CasesService) RetryActionReceipt ¶
func (r *CasesService) RetryActionReceipt(ctx context.Context, caseUUID string, receiptUUID string, opts ...option.RequestOption) (*CaseActionCaseActionReceipt, error)
RetryActionReceipt
Retry only this failed subject action using its saved inputs. Current write permission is checked. Applied actions return their receipt without executing again. Case closure is independent.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/action-receipts/{receipt_uuid}/retry/
func (*CasesService) Transfer ¶
func (r *CasesService) Transfer(ctx context.Context, caseUUID string, params CasesTransferParams, opts ...option.RequestOption) (*CaseDetail, error)
Transfer: Transfer case.
Move the case to a different, active blueprint of the same application. Requires the current blueprint to have transfer_enabled, otherwise 400.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/transfer/
func (*CasesService) Update ¶
func (r *CasesService) Update(ctx context.Context, caseUUID string, params CasesUpdateParams, opts ...option.RequestOption) (*CaseDetail, error)
Update: Update case.
Update the case's title, priority, due date, tags, or owning review team. Send only the fields you want to change; fields you omit keep their value. `tags` replaces the whole tag list. `team` takes the uuid of an active review team of this application (list them with `GET .../cases/teams/`), or null to clear the team. Requires a full-access API key, or `write:cases` for a console member: a key with restricted access gets 403. Logs PRIORITY_CHANGED, DUE_DATE_CHANGED, TAG_ADDED, TAG_REMOVED and TEAM_CHANGED events as applicable; a title change is saved without a timeline event. Returns the updated case.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/{case_uuid}/
type CasesTeamsListParams ¶
type CasesTeamsListParams struct {
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
CasesTeamsListParams holds the parameters of Client.Cases.Teams.List.
func (CasesTeamsListParams) MarshalJSON ¶
func (r CasesTeamsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesTeamsService ¶
type CasesTeamsService struct {
// contains filtered or unexported fields
}
CasesTeamsService holds the cases teams operations. Use it through Client.Cases.Teams.
func (*CasesTeamsService) Create ¶
func (r *CasesTeamsService) Create(ctx context.Context, params CaseReviewTeamCreate, opts ...option.RequestOption) (*CaseReviewTeam, error)
Create: Create review team.
Requires `write:cases` for the requested application.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/cases/teams/
func (*CasesTeamsService) List ¶
func (r *CasesTeamsService) List(ctx context.Context, params CasesTeamsListParams, opts ...option.RequestOption) (*Page[CaseReviewTeam], error)
List: List review teams.
Requires `list:cases` for the requested application.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/teams/
func (*CasesTeamsService) ListAutoPaging ¶
func (r *CasesTeamsService) ListAutoPaging(ctx context.Context, params CasesTeamsListParams, opts ...option.RequestOption) *PageIterator[CaseReviewTeam]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*CasesTeamsService) Retrieve ¶
func (r *CasesTeamsService) Retrieve(ctx context.Context, recordUUID string, opts ...option.RequestOption) (*CaseReviewTeam, error)
Retrieve: Retrieve review team.
Requires `read:cases` for the requested application.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/cases/teams/{record_uuid}/
func (*CasesTeamsService) Update ¶
func (r *CasesTeamsService) Update(ctx context.Context, recordUUID string, params CaseReviewTeamUpdate, opts ...option.RequestOption) (*CaseReviewTeam, error)
Update: Update review team.
Requires `write:cases` for the requested application.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/cases/teams/{record_uuid}/
type CasesTransferParams ¶
type CasesTransferParams struct {
// Required.
TargetBlueprint string `json:"target_blueprint"`
}
CasesTransferParams holds the parameters of Client.Cases.Transfer.
func (CasesTransferParams) MarshalJSON ¶
func (r CasesTransferParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesUpdateParams ¶
type CasesUpdateParams struct {
// New case title.
Title Opt[string] `json:"title"`
Priority Opt[CasesUpdateParamsPriority] `json:"priority"`
// New deadline. Send null to clear it.
DueAt Opt[time.Time] `json:"due_at"`
// The complete tag list. It replaces the current tags.
Tags Opt[[]string] `json:"tags"`
// UUID of the review team that owns the case. It must be an active team of this
// application. Send null to clear the team.
Team Opt[string] `json:"team"`
}
CasesUpdateParams holds the parameters of Client.Cases.Update.
func (CasesUpdateParams) MarshalJSON ¶
func (r CasesUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CasesUpdateParamsPriority ¶
type CasesUpdateParamsPriority string
CasesUpdateParamsPriority is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CasesUpdateParamsPriorityLow CasesUpdateParamsPriority = "LOW" CasesUpdateParamsPriorityMedium CasesUpdateParamsPriority = "MEDIUM" CasesUpdateParamsPriorityHigh CasesUpdateParamsPriority = "HIGH" )
Known values of CasesUpdateParamsPriority.
type Client ¶
type Client struct {
Account *AccountService
AgeEstimation *AgeEstimationService
AML *AMLService
AMLMonitoring *AMLMonitoringService
Analytics *AnalyticsService
Bank *BankService
Billing *BillingService
BiometricTemplates *BiometricTemplatesService
Blocklist *BlocklistService
BusinessSessions *BusinessSessionsService
Businesses *BusinessesService
Cases *CasesService
Customization *CustomizationService
DatabaseValidation *DatabaseValidationService
DocumentAi *DocumentAiService
Email *EmailService
FaceMatch *FaceMatchService
FaceSearch *FaceSearchService
FraudChecks *FraudChecksService
IDVerification *IDVerificationService
IDWallets *IDWalletsService
Investigator *InvestigatorService
IP *IPService
KYB *KYBService
Lists *ListsService
MonitoringEvents *MonitoringEventsService
Networks *NetworksService
PassiveLiveness *PassiveLivenessService
Phone *PhoneService
Pricing *PricingService
ProofOfAddress *ProofOfAddressService
Questionnaires *QuestionnairesService
RegulatoryReports *RegulatoryReportsService
ReportTemplates *ReportTemplatesService
Sessions *SessionsService
Transactions *TransactionsService
TravelRule *TravelRuleService
Users *UsersService
WalletScreening *WalletScreeningService
Webhooks *WebhooksService
Workflows *WorkflowsService
// contains filtered or unexported fields
}
Client is the Didit API client. Create it with NewClient; it is safe for concurrent use. Each field is a resource of the API.
func NewClient ¶
func NewClient(opts ...option.RequestOption) *Client
NewClient returns a client for the Didit API. It is safe for concurrent use; create one per process and reuse it.
Without options it reads the API key from DIDIT_API_KEY and the organization and application ids from DIDIT_ORGANIZATION_ID and DIDIT_APPLICATION_ID; DIDIT_LOG=debug enables debug logging. Options passed here override the environment, and options passed to a method override both.
client := didit.NewClient(option.WithAPIKey(os.Getenv("DIDIT_API_KEY")))
func (*Client) WithOptions ¶
func (c *Client) WithOptions(opts ...option.RequestOption) *Client
WithOptions returns a copy of the client with more options applied. The receiver is not changed.
type ComplianceList ¶
type ComplianceList struct {
// List identifier. Use it as `list_uuid` in the list and entry endpoints, and
// as the value of a workflow or transaction rule condition with `value_type:
// "list"`.
UUID string `json:"uuid"`
// List name, unique among the application's lists.
Name string `json:"name"`
// Free-text description. Empty string when not set.
Description string `json:"description"`
// `blocklist`: a match declines the session or transaction (system lists only,
// one per entry type). `allowlist`: matching items are trusted, for example a
// face allowlist skips the duplicated-face action; never overrides a blocklist
// match. `custom`: used in workflow and transaction rule conditions
// (`value_type: "list"`).
ListType ComplianceListListType `json:"list_type"`
// What the list holds: `face`, `document` (document number), `phone`, `email`,
// `ip_address` (IP address or CIDR range), `device_fingerprint`,
// `wallet_address`, `bank_account`, `country` (ISO 3166-1 alpha-3), `user` or
// `business` (your `vendor_data`), or `key` (any string). It decides how entry
// values are validated and matched.
EntryType ComplianceListEntryType `json:"entry_type"`
// `true` for the lists Didit provisions: one blocklist per entry type (`face`,
// `document`, `phone`, `email`, `ip_address`, `device_fingerprint`,
// `wallet_address`, `bank_account`, `user`, `business`), the **High Risk
// Countries** custom list, and system allowlists. System lists cannot be
// renamed, edited or deleted; you can add and delete their entries.
IsSystem bool `json:"is_system"`
// Number of entries currently in the list.
EntryCount int64 `json:"entry_count"`
// When the newest current entry was added. `null` for an empty list.
LastEntryAddedAt time.Time `json:"last_entry_added_at"`
// When the list was created.
CreatedAt time.Time `json:"created_at"`
// When the list was last updated.
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ComplianceList: A blocklist, allowlist or custom list of one application.
func (*ComplianceList) UnmarshalJSON ¶
func (r *ComplianceList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ComplianceList leniently.
type ComplianceListEntry ¶
type ComplianceListEntry struct {
// Entry identifier. Use it as `entry_uuid` in Delete a list entry.
UUID string `json:"uuid"`
// The listed value: a phone number in E.164, an email address, a document
// number, an IP address or CIDR range, a device fingerprint, a wallet address,
// a bank account, an ISO 3166-1 alpha-3 country code, a `vendor_data`, any
// string on a `key` list, or the UUID of the stored face on a face list. Values
// you send are stored in lower case, except phone numbers and country codes.
// Matching is case-insensitive.
Value string `json:"value"`
// Human-readable label. Didit fills it for entries taken from a session (for
// example the holder's name and document number) when you send none.
DisplayLabel string `json:"display_label"`
// Free-text note. Empty string when not set.
Comment string `json:"comment"`
// Who added the entry: `api` (an API key), a console user's email address or
// `console`, `system` or `migration` (entries Didit created), or `rule` (a
// transaction or monitoring rule action).
AddedBy string `json:"added_by"`
// Verification session the entry was taken from. `null` when the entry was
// added by value.
ReferenceSessionID string `json:"reference_session_id"`
// Application-scoped number of that session, as shown in the console.
ReferenceSessionNumber int64 `json:"reference_session_number"`
// `kyc` for a person verification session, `kyb` for a business verification
// session, `null` when there is no session.
ReferenceSessionType ComplianceListEntryReferenceSessionType `json:"reference_session_type"`
// The record the entry stands for: the face, document, phone or email record
// read from a session, the face created by Upload a face to a list, or the UUID
// you sent (for example a transaction UUID or a user's `didit_internal_id`).
ReferenceObjectUUID string `json:"reference_object_uuid"`
// Extra context. Holds the keys Didit sets (listed here) merged with any
// `metadata` you sent when creating the entry, returned as stored. `null` when
// there is none.
Metadata ComplianceListEntryMetadata `json:"metadata"`
// When the entry was added.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ComplianceListEntry: One value in a list.
func (*ComplianceListEntry) UnmarshalJSON ¶
func (r *ComplianceListEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ComplianceListEntry leniently.
type ComplianceListEntryMetadata ¶
type ComplianceListEntryMetadata struct {
// Face entries: short-lived signed URL, issued again on every call; `null` for
// a scoped API key without `media: read`. Absent when no image belongs to the
// entry.
ReferenceImageURL string `json:"reference_image_url"`
// Document entries that carry a document front image: short-lived signed URL,
// issued again on every call; `null` for a scoped API key without `media:
// read`.
FrontImageURL string `json:"front_image_url"`
// Document entries taken from a session: holder's full name.
FullName string `json:"full_name"`
// Document entries taken from a session: ISO 3166-1 alpha-3 issuing country.
IssuingState string `json:"issuing_state"`
// Document entries taken from a session: document type code, for example `P`,
// `ID` or `DL`.
DocumentType string `json:"document_type"`
// Document entries taken from a session: issuing state or province of a
// regionally issued document, empty when not applicable. Not set by Add session
// items to the blocklist.
Region string `json:"region"`
// Document entries taken from a session: the document number.
DocumentNumber string `json:"document_number"`
// Face entries taken from a document-capture selfie: which selfie. Absent for
// liveness faces.
FaceImageSource ComplianceListEntryMetadataFaceImageSource `json:"face_image_source"`
// Face entries taken from a document-capture selfie: the ID verification node
// the selfie came from.
ReferenceNodeID string `json:"reference_node_id"`
// Device fingerprint entries taken from a session: how the fingerprint was
// derived. `persistent_id` identifies one device; `composite_hash` and
// `legacy_fp` can be shared by devices of the same model.
FingerprintTier ComplianceListEntryMetadataFingerprintTier `json:"fingerprint_tier"`
// `true` on a face entry uploaded in a sandbox application; such an entry
// matches nothing.
Sandbox bool `json:"sandbox"`
// Set by you: what `reference_object_uuid` points to, so the console links back
// to it.
ReferenceType ComplianceListEntryMetadataReferenceType `json:"reference_type"`
// Set by you: identifier of the source record.
ReferenceID string `json:"reference_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ComplianceListEntryMetadata: Extra context. Holds the keys Didit sets (listed here) merged with any `metadata` you sent when creating the entry, returned as stored. `null` when there is none.
func (*ComplianceListEntryMetadata) UnmarshalJSON ¶
func (r *ComplianceListEntryMetadata) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ComplianceListEntryMetadata leniently.
type ComplianceListEntryMetadataFaceImageSource ¶
type ComplianceListEntryMetadataFaceImageSource string
ComplianceListEntryMetadataFaceImageSource: Face entries taken from a document-capture selfie: which selfie. Absent for liveness faces.
ComplianceListEntryMetadataFaceImageSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListEntryMetadataFaceImageSourceFrontImageCameraFront ComplianceListEntryMetadataFaceImageSource = "front_image_camera_front" ComplianceListEntryMetadataFaceImageSourceBackImageCameraFront ComplianceListEntryMetadataFaceImageSource = "back_image_camera_front" )
Known values of ComplianceListEntryMetadataFaceImageSource.
type ComplianceListEntryMetadataFingerprintTier ¶
type ComplianceListEntryMetadataFingerprintTier string
ComplianceListEntryMetadataFingerprintTier: Device fingerprint entries taken from a session: how the fingerprint was derived. `persistent_id` identifies one device; `composite_hash` and `legacy_fp` can be shared by devices of the same model.
ComplianceListEntryMetadataFingerprintTier is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListEntryMetadataFingerprintTierPersistentID ComplianceListEntryMetadataFingerprintTier = "persistent_id" ComplianceListEntryMetadataFingerprintTierCompositeHash ComplianceListEntryMetadataFingerprintTier = "composite_hash" ComplianceListEntryMetadataFingerprintTierLegacyFp ComplianceListEntryMetadataFingerprintTier = "legacy_fp" ComplianceListEntryMetadataFingerprintTierUnknown ComplianceListEntryMetadataFingerprintTier = "unknown" )
Known values of ComplianceListEntryMetadataFingerprintTier.
type ComplianceListEntryMetadataReferenceType ¶
type ComplianceListEntryMetadataReferenceType string
ComplianceListEntryMetadataReferenceType: Set by you: what `reference_object_uuid` points to, so the console links back to it.
ComplianceListEntryMetadataReferenceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListEntryMetadataReferenceTypeTransaction ComplianceListEntryMetadataReferenceType = "transaction" ComplianceListEntryMetadataReferenceTypeVendorUser ComplianceListEntryMetadataReferenceType = "vendor_user" ComplianceListEntryMetadataReferenceTypeVendorBusiness ComplianceListEntryMetadataReferenceType = "vendor_business" )
Known values of ComplianceListEntryMetadataReferenceType.
type ComplianceListEntryReferenceSessionType ¶
type ComplianceListEntryReferenceSessionType string
ComplianceListEntryReferenceSessionType: `kyc` for a person verification session, `kyb` for a business verification session, `null` when there is no session.
ComplianceListEntryReferenceSessionType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListEntryReferenceSessionTypeKYC ComplianceListEntryReferenceSessionType = "kyc" ComplianceListEntryReferenceSessionTypeKYB ComplianceListEntryReferenceSessionType = "kyb" )
Known values of ComplianceListEntryReferenceSessionType.
type ComplianceListEntryType ¶
type ComplianceListEntryType string
ComplianceListEntryType: What the list holds: `face`, `document` (document number), `phone`, `email`, `ip_address` (IP address or CIDR range), `device_fingerprint`, `wallet_address`, `bank_account`, `country` (ISO 3166-1 alpha-3), `user` or `business` (your `vendor_data`), or `key` (any string). It decides how entry values are validated and matched.
ComplianceListEntryType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListEntryTypeFace ComplianceListEntryType = "face" ComplianceListEntryTypeDocument ComplianceListEntryType = "document" ComplianceListEntryTypePhone ComplianceListEntryType = "phone" ComplianceListEntryTypeEmail ComplianceListEntryType = "email" ComplianceListEntryTypeIPAddress ComplianceListEntryType = "ip_address" ComplianceListEntryTypeDeviceFingerprint ComplianceListEntryType = "device_fingerprint" ComplianceListEntryTypeWalletAddress ComplianceListEntryType = "wallet_address" ComplianceListEntryTypeBankAccount ComplianceListEntryType = "bank_account" ComplianceListEntryTypeCountry ComplianceListEntryType = "country" ComplianceListEntryTypeUser ComplianceListEntryType = "user" ComplianceListEntryTypeBusiness ComplianceListEntryType = "business" ComplianceListEntryTypeKey ComplianceListEntryType = "key" )
Known values of ComplianceListEntryType.
type ComplianceListListType ¶
type ComplianceListListType string
ComplianceListListType: `blocklist`: a match declines the session or transaction (system lists only, one per entry type). `allowlist`: matching items are trusted, for example a face allowlist skips the duplicated-face action; never overrides a blocklist match. `custom`: used in workflow and transaction rule conditions (`value_type: "list"`).
ComplianceListListType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ComplianceListListTypeBlocklist ComplianceListListType = "blocklist" ComplianceListListTypeAllowlist ComplianceListListType = "allowlist" ComplianceListListTypeCustom ComplianceListListType = "custom" )
Known values of ComplianceListListType.
type ConfigurationError ¶
type ConfigurationError struct {
Message string
}
ConfigurationError reports a missing or invalid setting, such as a missing API key or a missing organization or application id. It is returned before any request is sent.
func (*ConfigurationError) Error ¶
func (e *ConfigurationError) Error() string
type ConflictError ¶
type ConflictError struct{ *APIStatusError }
ConflictError is an *APIStatusError with status 409.
func (*ConflictError) Unwrap ¶
func (e *ConflictError) Unwrap() error
type CustomerMessagingCaseRequest ¶
type CustomerMessagingCaseRequest struct {
UUID string `json:"uuid"`
Purpose string `json:"purpose"`
Language string `json:"language"`
Recipient string `json:"recipient"`
ExpiresAt time.Time `json:"expires_at"`
ActorEmail string `json:"actor_email"`
DeliveryStatus string `json:"delivery_status"`
DeliveredAt time.Time `json:"delivered_at"`
CancelledAt time.Time `json:"cancelled_at"`
RespondedAt time.Time `json:"responded_at"`
Response any `json:"response"`
HasAttachment bool `json:"has_attachment"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CustomerMessagingCaseRequest is a response object.
func (*CustomerMessagingCaseRequest) UnmarshalJSON ¶
func (r *CustomerMessagingCaseRequest) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CustomerMessagingCaseRequest leniently.
type CustomerMessagingCaseRequestConfirmRequest ¶
type CustomerMessagingCaseRequestConfirmRequest struct {
// Required.
ContactID string `json:"contact_id"`
// Required.
Purpose CustomerMessagingPurposeEnum `json:"purpose"`
Language Opt[CustomerMessagingLanguageEnum] `json:"language"`
// Required.
RequestID string `json:"request_id"`
// Required.
ExpiresAt time.Time `json:"expires_at"`
// Required.
PreviewToken string `json:"preview_token"`
}
CustomerMessagingCaseRequestConfirmRequest is a request object.
func (CustomerMessagingCaseRequestConfirmRequest) MarshalJSON ¶
func (r CustomerMessagingCaseRequestConfirmRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CustomerMessagingCaseRequestContact ¶
type CustomerMessagingCaseRequestContact struct {
UUID string `json:"uuid"`
Email string `json:"email"`
VerifiedAt time.Time `json:"verified_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CustomerMessagingCaseRequestContact is a response object.
func (*CustomerMessagingCaseRequestContact) UnmarshalJSON ¶
func (r *CustomerMessagingCaseRequestContact) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CustomerMessagingCaseRequestContact leniently.
type CustomerMessagingCaseRequestOptions ¶
type CustomerMessagingCaseRequestOptions struct {
Contacts []CustomerMessagingCaseRequestContact `json:"contacts"`
Purposes []CustomerMessagingPurposesEnum `json:"purposes"`
Languages []CustomerMessagingLanguagesEnum `json:"languages"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CustomerMessagingCaseRequestOptions is a response object.
func (*CustomerMessagingCaseRequestOptions) UnmarshalJSON ¶
func (r *CustomerMessagingCaseRequestOptions) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CustomerMessagingCaseRequestOptions leniently.
type CustomerMessagingCaseRequestPreviewRequest ¶
type CustomerMessagingCaseRequestPreviewRequest struct {
// Required.
ContactID string `json:"contact_id"`
// Required.
Purpose CustomerMessagingPurposeEnum `json:"purpose"`
Language Opt[CustomerMessagingLanguageEnum] `json:"language"`
}
CustomerMessagingCaseRequestPreviewRequest is a request object.
func (CustomerMessagingCaseRequestPreviewRequest) MarshalJSON ¶
func (r CustomerMessagingCaseRequestPreviewRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type CustomerMessagingCaseRequestPreviewResponse ¶
type CustomerMessagingCaseRequestPreviewResponse struct {
RequestID string `json:"request_id"`
ExpiresAt time.Time `json:"expires_at"`
Recipient string `json:"recipient"`
Sender string `json:"sender"`
Subject string `json:"subject"`
HTML string `json:"html"`
RequiresUserAction bool `json:"requires_user_action"`
PreviewToken string `json:"preview_token"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
CustomerMessagingCaseRequestPreviewResponse is a response object.
func (*CustomerMessagingCaseRequestPreviewResponse) UnmarshalJSON ¶
func (r *CustomerMessagingCaseRequestPreviewResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes CustomerMessagingCaseRequestPreviewResponse leniently.
type CustomerMessagingLanguageEnum ¶
type CustomerMessagingLanguageEnum string
CustomerMessagingLanguageEnum: * `en` - en
- `es` - es
- `pt` - pt
CustomerMessagingLanguageEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CustomerMessagingLanguageEnumEn CustomerMessagingLanguageEnum = "en" CustomerMessagingLanguageEnumEs CustomerMessagingLanguageEnum = "es" CustomerMessagingLanguageEnumPt CustomerMessagingLanguageEnum = "pt" )
Known values of CustomerMessagingLanguageEnum.
type CustomerMessagingLanguagesEnum ¶
type CustomerMessagingLanguagesEnum string
CustomerMessagingLanguagesEnum: * `en` - en
- `es` - es
- `pt` - pt
CustomerMessagingLanguagesEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CustomerMessagingLanguagesEnumEn CustomerMessagingLanguagesEnum = "en" CustomerMessagingLanguagesEnumEs CustomerMessagingLanguagesEnum = "es" CustomerMessagingLanguagesEnumPt CustomerMessagingLanguagesEnum = "pt" )
Known values of CustomerMessagingLanguagesEnum.
type CustomerMessagingPurposeEnum ¶
type CustomerMessagingPurposeEnum string
CustomerMessagingPurposeEnum: * `identity_document` - identity_document
- `proof_of_address` - proof_of_address
- `business_document` - business_document
- `confirm_details` - confirm_details
- `review_in_progress` - review_in_progress
CustomerMessagingPurposeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CustomerMessagingPurposeEnumIdentityDocument CustomerMessagingPurposeEnum = "identity_document" CustomerMessagingPurposeEnumProofOfAddress CustomerMessagingPurposeEnum = "proof_of_address" CustomerMessagingPurposeEnumBusinessDocument CustomerMessagingPurposeEnum = "business_document" CustomerMessagingPurposeEnumConfirmDetails CustomerMessagingPurposeEnum = "confirm_details" CustomerMessagingPurposeEnumReviewInProgress CustomerMessagingPurposeEnum = "review_in_progress" )
Known values of CustomerMessagingPurposeEnum.
type CustomerMessagingPurposesEnum ¶
type CustomerMessagingPurposesEnum string
CustomerMessagingPurposesEnum: * `identity_document` - identity_document
- `proof_of_address` - proof_of_address
- `business_document` - business_document
- `confirm_details` - confirm_details
- `review_in_progress` - review_in_progress
CustomerMessagingPurposesEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( CustomerMessagingPurposesEnumIdentityDocument CustomerMessagingPurposesEnum = "identity_document" CustomerMessagingPurposesEnumProofOfAddress CustomerMessagingPurposesEnum = "proof_of_address" CustomerMessagingPurposesEnumBusinessDocument CustomerMessagingPurposesEnum = "business_document" CustomerMessagingPurposesEnumConfirmDetails CustomerMessagingPurposesEnum = "confirm_details" CustomerMessagingPurposesEnumReviewInProgress CustomerMessagingPurposesEnum = "review_in_progress" )
Known values of CustomerMessagingPurposesEnum.
type CustomizationService ¶
type CustomizationService struct {
// contains filtered or unexported fields
}
CustomizationService holds the customization operations. Use it through Client.Customization.
func (*CustomizationService) Retrieve ¶
func (r *CustomizationService) Retrieve(ctx context.Context, opts ...option.RequestOption) (*BrandingCustomization, error)
Retrieve: Get branding customization.
Returns the white-label branding for the application resolved from the API key: colors, fonts, border radii, logo URLs and UI/UX options. Custom domain and white-label email settings are managed only in the Business Console and are not part of this response.
GET /v3/customization/
func (*CustomizationService) Update ¶
func (r *CustomizationService) Update(ctx context.Context, params CustomizationUpdateParams, opts ...option.RequestOption) (*BrandingCustomization, error)
Update: Update branding customization.
Partial update of the application's white-label branding. Send `application/json` to change colors, fonts, radii and UI options, or `multipart/form-data` to upload logo images. Only the fields you include are changed. Custom domain and white-label email cannot be set through this endpoint - use the Business Console for those.
PATCH /v3/customization/
type CustomizationUpdateParams ¶
type CustomizationUpdateParams struct {
// Headers / primary text color.
ColorPrimary Opt[string] `json:"color_primary"`
// Paragraph / secondary text color.
ColorSecondary Opt[string] `json:"color_secondary"`
// Page background color.
ColorBackground Opt[string] `json:"color_background"`
// Panel / accent color.
ColorPanel Opt[string] `json:"color_panel"`
// Panel color at 10% opacity.
ColorPanel10 Opt[string] `json:"color_panel_10"`
// Support text color on panels.
ColorOnPanel1 Opt[string] `json:"color_on_panel_1"`
// Pill / badge color on panels.
ColorOnPanel2 Opt[string] `json:"color_on_panel_2"`
// Text color on background.
ColorOnBackground Opt[string] `json:"color_on_background"`
// Primary button color.
ColorButton1 Opt[string] `json:"color_button_1"`
// Secondary button color.
ColorButton2 Opt[string] `json:"color_button_2"`
// Primary button text color.
ColorButtonText1 Opt[string] `json:"color_button_text_1"`
// Secondary button text color.
ColorButtonText2 Opt[string] `json:"color_button_text_2"`
// Text color for pills, inputs and selectors.
ColorPillText Opt[string] `json:"color_pill_text"`
// Panel corner radius in pixels.
BorderRadiusPanel Opt[int64] `json:"border_radius_panel"`
// Button corner radius in pixels.
BorderRadiusButtons Opt[int64] `json:"border_radius_buttons"`
// Google Font family name (e.g. `Inter`, `AR One Sans`).
FontFamily Opt[string] `json:"font_family"`
// Font weight available for the selected family (e.g. `regular`, `500`, `700`).
FontWeight Opt[string] `json:"font_weight"`
// Public name shown in the verification flow.
AppPublicName Opt[string] `json:"app_public_name"`
// Privacy policy URL shown to the end user.
PrivacyPolicyURL Opt[string] `json:"privacy_policy_url"`
// Skip the initial welcome screen.
SkipWelcomeScreen Opt[bool] `json:"skip_welcome_screen"`
// Continue as guest instead of showing the login-with-Didit screen. Cannot be
// set back to `false` while a custom domain is configured (400).
DisableLoginWithDidit Opt[bool] `json:"disable_login_with_didit"`
// Hide the progress bar during the flow.
HideProgressBar Opt[bool] `json:"hide_progress_bar"`
// Delay (seconds) before redirecting to the callback URL.
CallbackSeconds Opt[int64] `json:"callback_seconds"`
// When `true`, removes the current square logo.
DeleteLogoSquare Opt[bool] `json:"delete_logo_square"`
// When `true`, removes the current rectangular logo.
DeleteLogoRectangular Opt[bool] `json:"delete_logo_rectangular"`
// When `true`, removes the current dark-mode logo, and `logo_rectangular_dark`
// then reads `null`. If the same multipart request also uploads
// `image_rectangular_dark`, the upload wins.
DeleteLogoRectangularDark Opt[bool] `json:"delete_logo_rectangular_dark"`
// When `true`, removes the current favicon.
DeleteFavicon Opt[bool] `json:"delete_favicon"`
// Square logo (1:1 aspect ratio). PNG, JPG or WebP, at least 512 px on the long
// side, at most **1 MB**.
ImageSquare Opt[File] `json:"-" form:"image_square"`
// Rectangular logo (2:1 aspect ratio). PNG, JPG or WebP, at least 512 px on the
// long side, at most **1 MB**.
ImageRectangular Opt[File] `json:"-" form:"image_rectangular"`
// Rectangular logo for dark mode (2:1 aspect ratio), shown on a dark
// background. PNG, JPG or WebP, at least 512 px on the long side, at most **1
// MB**. Returned as `logo_rectangular_dark`.
ImageRectangularDark Opt[File] `json:"-" form:"image_rectangular_dark"`
// Favicon image. Max **500 KB**.
ImageFavicon Opt[File] `json:"-" form:"image_favicon"`
}
CustomizationUpdateParams holds the parameters of Client.Customization.Update.
func (CustomizationUpdateParams) MarshalJSON ¶
func (r CustomizationUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DatabaseValidationService ¶
type DatabaseValidationService struct {
// contains filtered or unexported fields
}
DatabaseValidationService holds the database_validation operations. Use it through Client.DatabaseValidation.
func (*DatabaseValidationService) Validate ¶
func (r *DatabaseValidationService) Validate(ctx context.Context, params DatabaseValidationValidateParams, opts ...option.RequestOption) (*DatabaseValidationValidateResponse, error)
Validate: Database Validation (standalone).
Validate a person's identity data against official government and registry sources - CPF in Brazil, RENAPER in Argentina, DNI registries in Spain and Peru, INE in Mexico, and 100+ more services across 60+ countries.
**Service selection.** Each country exposes one or more catalog services identified by a `service_id` (e.g. `bra_cpf`, `arg_renaper`, `pan_cedula_sib`). Pin the services you want with the `services` array - if you omit it, exactly **one** default service runs (the longest-established live service for the country). Sending `services` also switches the response to the extended shape with `services_used` and `match_score`. Discover services, their required fields, and prices via `GET /v1/organization/database-validation-countries/` (a catalog endpoint not documented in this spec) or the Business Console workflow editor. Some services are flagged `requires_consent=true` in the catalog and demand `consent=true`; others require onboarding for your organization before they can be called.
**Input fields.** `identification_number` is a universal field that maps to the right country-specific field automatically (see its description). Country format rules are enforced before any provider is called (e.g. BRA CPF must be exactly 11 digits) and format failures are never billed. Biometric services need a `selfie` upload (multipart only); Argentina RENAPER additionally requires `gender`.
**Results.** Each service returns a field-by-field `validation` map plus a vendor-neutral `outcome_code` (`MATCH`, `PARTIAL_MATCH`, `NO_MATCH`, `DOCUMENT_NOT_FOUND`, `INVALID_DOCUMENT_FORMAT`, `INVALID_INPUT`, `MINOR_BLOCKED`, `DECEASED`, `BIOMETRIC_NO_MATCH`, `BIOMETRIC_IMAGE_UNUSABLE`, `INCONCLUSIVE`, `DOCUMENT_SUPERSEDED`, `REGISTRY_UNAVAILABLE`, `REGISTRY_ERROR`). Note the distinctions: `NO_MATCH` is a definitive mismatch, `INCONCLUSIVE` means the registry could not confirm either way (review, not decline), and `BIOMETRIC_IMAGE_UNUSABLE` is a technical selfie problem (retake), unlike the definitive `BIOMETRIC_NO_MATCH`. The overall `match_type` aggregates across services (any full → `full_match`, else any partial → `partial_match`, else `no_match`) and `no_match_action`/`partial_match_action` translate it into the final `status`. `validation_type` is derived: `two_by_two` when two or more distinct services produced a full match (on the identification number, on full name + date of birth together, or on the address without contradictions), else `one_by_one`.
**Persistence.** `save_api_request` defaults to **true**: the result is stored as a session (`request_id` works with `GET /v3/session/{sessionId}/decision/`), appears in the console, and fires a `status.updated` webhook. It also controls the `validations` shape - per-service objects when saved, a merged `{field: match}` map when not.
**Billing.** Per-service: each service that returns a billable result is charged its own catalog price. Failed or skipped services are not billed, and requests rejected with `400` cost nothing. The pre-flight balance check covers the sum of the selected services' prices (`403` when short).
**Failures.** When no selected service returns a usable result, the API returns `400` with `validation_errors` if every unanswered attempt explicitly refused the input (`provider_rejected_input`, `retryable: false`). Correct the input before trying again. Otherwise it returns `502` with `validation_errors` (`empty_provider_response`, `retryable: true`), including mixed input rejection and unavailable fallback attempts; nothing is billed (a session is still recorded with status `Not Finished` when `save_api_request=true`). When only some services fail, the `200` response carries their failures in `database_validation.errors`.
**Sandbox.** Keys from sandbox applications skip the registry calls and billing and return a static `full_match` response - the sandbox payload always includes `services_used` and `match_score: 100` regardless of how `services` was sent, so don't validate the live extended-shape gating or the 0.0-1.0 `match_score` fraction against sandbox responses.
Send the request as `application/json`, or as `multipart/form-data` when uploading a `selfie`.
POST /v3/database-validation/
type DatabaseValidationValidateParams ¶
type DatabaseValidationValidateParams struct {
// ISO 3166-1 **alpha-3** country code of the registry to validate against (e.g.
// `BRA`, `ESP`, `COL`). Determines which services are available. Unsupported
// codes return `400` with the full list of valid options. Required.
IssuingState string `json:"issuing_state"`
// Catalog `service_id`s to run for this country (e.g. `["bra_cpf"]`). Also
// accepts a single string or a comma-separated/JSON-encoded string. **If
// omitted or empty, exactly one default service runs** - the
// longest-established live service for the country; newer, biometric, and
// pay-as-you-go services must be named explicitly. Sending `services` switches
// the response to the extended shape (adds `services_used` and `match_score`).
// Every id must exist and be live for the `issuing_state`; services that
// require onboarding return `400` until activated for your organization.
// Discover available services per country via `GET
// /v1/organization/database-validation-countries/` (a catalog endpoint not
// documented in this spec) or the Business Console workflow editor.
Services Opt[[]string] `json:"services"`
// DEPRECATED. Accepted for backward compatibility but ignored - the response
// `validation_type` is now derived from how many services full-matched. Use
// `services` to pin specific services.
ValidationType Opt[string] `json:"validation_type"`
// Set to `true` when the end user has explicitly consented to the selected
// validation services. Required for services flagged `requires_consent=true` in
// the catalog - without it those services return `400` with
// `services_requiring_consent`.
Consent Opt[bool] `json:"consent"`
// Universal identification number - automatically mapped to the correct
// country-specific field, so you can use it instead of
// `personal_number`/`tax_number`/`document_number`: ARG→document_number (DNI),
// BOL→document_number (CI), BRA→tax_number (CPF, 11 digits),
// CHL→personal_number (RUT), COL→personal_number (Cédula), CRI→personal_number
// (Cédula), DOM→personal_number (Cédula, 11 digits), ECU→personal_number
// (Cédula, 10 digits), ESP→personal_number (DNI/NIE), GTM→document_number
// (DPI), HND→document_number (DNI), MEX→personal_number (CURP, 18 chars),
// PAN→personal_number (Cédula), PER→personal_number (DNI, 8 digits),
// PRY→document_number (CI), SLV→document_number (DUI), URY→personal_number
// (CI), VEN→document_number (Cédula). It never overrides an explicitly provided
// country-specific field.
IdentificationNumber Opt[string] `json:"identification_number"`
// The individual's first name. Required by some services/countries.
FirstName Opt[string] `json:"first_name"`
// The individual's last name. Required by some services/countries.
LastName Opt[string] `json:"last_name"`
// Middle name, used by some country services (AUS, NZL, …).
MiddleName Opt[string] `json:"middle_name"`
// Full name - some services accept this in lieu of first/last name (e.g. CHN
// services, which match the native-script name).
FullName Opt[string] `json:"full_name"`
// Date of birth, `YYYY-MM-DD`. Required by many services.
DateOfBirth Opt[string] `json:"date_of_birth"`
// Government-issued unique personal identifier. Used by: CHL (RUT), COL
// (Cédula), CRI, DOM, ECU, ESP (DNI/NIE), MEX (CURP), PAN (Cédula), PER (DNI),
// URY. Consider `identification_number` instead.
PersonalNumber Opt[string] `json:"personal_number"`
// Tax identification number. Used by: BRA (CPF, 11 digits). Consider
// `identification_number` instead.
TaxNumber Opt[string] `json:"tax_number"`
// Document number. Used by: ARG (DNI), BOL (CI), GTM (DPI), HND (DNI), PRY
// (CI), SLV (DUI), VEN (Cédula). Consider `identification_number` instead.
DocumentNumber Opt[string] `json:"document_number"`
// Type of document being validated: `P` passport, `DL` driver license, `ID`
// national ID, `RP` residence permit (plus `SSC`, `HIC`, `WP`, `TC`, `VISA`,
// `PSC`, `BC`, `OTHER`). Required by some services (e.g. ESP).
DocumentType Opt[DatabaseValidationValidateParamsDocumentType] `json:"document_type"`
// Document expiration date, `YYYY-MM-DD`. Required for ESP (Spain) validation.
ExpirationDate Opt[string] `json:"expiration_date"`
// Document issue date, `YYYY-MM-DD` (fecha de expedición). Required for COL
// (Colombia) cédula validation.
DateOfIssue Opt[string] `json:"date_of_issue"`
// Nationality as ISO 3166-1 alpha-3. Required by some services.
Nationality Opt[string] `json:"nationality"`
// Gender: `M`, `F`, or `X` (other/unknown). Required for Argentina's RENAPER
// validation (`arg_renaper`).
Gender Opt[DatabaseValidationValidateParamsGender] `json:"gender"`
// Residential address. Prefer the structured object `{"street_1":"123 Main
// St","street_2":"Apt
// 4B","city":"Springfield","region":"IL","postal_code":"62701","country":"US"}`;
// a complete single-line string is still accepted. Required by
// address-verification services; when a service defines address requirements,
// missing parts return `400` with `address_fields_required_by`.
Address Opt[any] `json:"address"`
// Street address including street number and type. If omitted, derived from
// `address`.
AddressElement1 Opt[string] `json:"address_element_1"`
// Apartment, unit, building, floor, or extra address line. Only send when you
// have it explicitly.
AddressElement2 Opt[string] `json:"address_element_2"`
// City, suburb, district, locality, or neighborhood. If omitted, derived from
// `address`.
AddressElement3 Opt[string] `json:"address_element_3"`
// State, province, region, or town. If omitted, derived from `address`.
AddressElement4 Opt[string] `json:"address_element_4"`
// Postcode or postal code. `postal_code` is accepted as an alias.
AddressElement5 Opt[string] `json:"address_element_5"`
// Postal code for address-based services (alias of `address_element_5`).
PostalCode Opt[string] `json:"postal_code"`
// Driver licence number for government document-verification services (AUS,
// NZL, IND).
DriverLicenseNumber Opt[string] `json:"driver_license_number"`
// Physical driver licence card number, where required separately from the
// licence number (AUS).
DriverLicenseCardNumber Opt[string] `json:"driver_license_card_number"`
// Driver licence state or territory of issue (AUS).
DriverLicenseState Opt[string] `json:"driver_license_state"`
// Driver licence version code (NZL).
DriverLicenseVersion Opt[string] `json:"driver_license_version"`
// Passport number for government passport-verification services (AUS, NZL, IND,
// CHN).
PassportNumber Opt[string] `json:"passport_number"`
// Passport expiry date, `YYYY-MM-DD`, for passport-verification services.
PassportExpirationDate Opt[string] `json:"passport_expiration_date"`
// Passport file number (IND).
PassportFileNumber Opt[string] `json:"passport_file_number"`
// Issuing country of the passport (ISO 3166-1 alpha-3) for
// passport-verification services.
PassportIssueCountry Opt[string] `json:"passport_issue_country"`
// Medicare card number (AUS).
MedicareCardNumber Opt[string] `json:"medicare_card_number"`
// Australian ImmiCard number.
ImmiCardNumber Opt[string] `json:"immi_card_number"`
// Australian ImmiCard expiry date.
ImmiCardExpiryDate Opt[string] `json:"immi_card_expiry_date"`
// Citizenship certificate number (AUS).
CitizenshipCertificateNumber Opt[string] `json:"citizenship_certificate_number"`
// Birth-certificate registration number (AUS).
BirthRegistrationNumber Opt[string] `json:"birth_registration_number"`
// Birth-certificate registration date (AUS).
BirthRegistrationDate Opt[string] `json:"birth_registration_date"`
// Birth-certificate registration state (AUS).
BirthRegistrationState Opt[string] `json:"birth_registration_state"`
// Marriage certificate number (AUS).
MarriageCertificateNumber Opt[string] `json:"marriage_certificate_number"`
// Change-of-name certificate number (AUS).
ChangeOfNameCertificateNumber Opt[string] `json:"change_of_name_certificate_number"`
// First name of the partner on a marriage certificate (AUS).
FirstPartnerName Opt[string] `json:"first_partner_name"`
// Last name of the partner on a marriage certificate (AUS).
LastPartnerName Opt[string] `json:"last_partner_name"`
// Voter registration number (IND EPIC, IRL).
VoterID Opt[string] `json:"voter_id"`
// India EPIC voter card number.
EpicCard Opt[string] `json:"epic_card"`
// India PAN (Permanent Account Number).
Pan Opt[string] `json:"pan"`
// National ID number (CHN, MYS, KEN, KHM, NGA, ZAF, …).
NationalID Opt[string] `json:"national_id"`
// Mexican INE/IFE Código de Identificación de Credencial (CIC), 9 digits. Used
// by the MEX INE credential-validity service (`mex_ine_vigencia`).
Cic Opt[string] `json:"cic"`
// Mexican INE Identificador del Ciudadano (9 digits). Used with `cic` for
// modern INE models (E/F/G/H) in `mex_ine_vigencia`.
IdentificadorCiudadano Opt[string] `json:"identificador_ciudadano"`
// Mexican INE OCR number (13 digits, back of card). Used with `cic` for Model D
// in `mex_ine_vigencia`.
OCR Opt[string] `json:"ocr"`
// Mexican INE Clave de Elector (18 chars). Used with `emission_number` for
// legacy IFE models (A/B/C) in `mex_ine_vigencia`.
VoterNumber Opt[string] `json:"voter_number"`
// Mexican INE Número de Emisión. Used with `voter_number` for legacy IFE models
// (A/B/C) in `mex_ine_vigencia`.
EmissionNumber Opt[string] `json:"emission_number"`
// Nigerian Bank Verification Number.
Bvn Opt[string] `json:"bvn"`
// Bank card number (CHN bank-card verification).
BankCardNumber Opt[string] `json:"bank_card_number"`
// Social Security Number (USA).
SSN Opt[string] `json:"ssn"`
// Phone number for phone-verification services.
Phone Opt[string] `json:"phone"`
// Landline number for phone-verification services.
Landline Opt[string] `json:"landline"`
// Email address for identity-verification services.
Email Opt[string] `json:"email"`
// ISO 3166-1 alpha-2 country of residence. Used by global identity-enrichment
// services (e.g. `glb_identity_enrichment`) to focus the lookup.
CountryOfResidence Opt[string] `json:"country_of_residence"`
// What a `partial_match` does to `database_validation.status`. Defaults to
// `NO_ACTION` (status stays `Approved`, with a warning).
PartialMatchAction Opt[DatabaseValidationValidateParamsPartialMatchAction] `json:"partial_match_action"`
// What a `no_match` does to `database_validation.status`. Defaults to
// `DECLINE`.
NoMatchAction Opt[DatabaseValidationValidateParamsNoMatchAction] `json:"no_match_action"`
// Persist the validation as a session (console visibility, decision endpoint,
// `status.updated` webhook). Also changes the `validations` response shape:
// per-service objects when `true` (default), a merged field map when `false`.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Your identifier for the validated user; echoed back and stored with the
// session.
VendorData Opt[string] `json:"vendor_data"`
// Free-form JSON stored with the request and echoed back.
Metadata Opt[map[string]any] `json:"metadata"`
// Selfie image (`jpg`, `jpeg`, `png`, `webp`; max 2 MB - images are compressed
// to ~1.5 MB before upload to the registry) for biometric validation services,
// e.g. Argentina RENAPER (`arg_renaper`) and Panama SIB (`pan_cedula_sib`,
// `pan_cedula_sib_plus`). Required whenever a selected service lists it as a
// required field. Only available via `multipart/form-data`.
Selfie Opt[File] `json:"-" form:"selfie"`
}
DatabaseValidationValidateParams holds the parameters of Client.DatabaseValidation.Validate.
func (DatabaseValidationValidateParams) MarshalJSON ¶
func (r DatabaseValidationValidateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DatabaseValidationValidateParamsDocumentType ¶
type DatabaseValidationValidateParamsDocumentType string
DatabaseValidationValidateParamsDocumentType: Type of document being validated: `P` passport, `DL` driver license, `ID` national ID, `RP` residence permit (plus `SSC`, `HIC`, `WP`, `TC`, `VISA`, `PSC`, `BC`, `OTHER`). Required by some services (e.g. ESP).
DatabaseValidationValidateParamsDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateParamsDocumentTypeP DatabaseValidationValidateParamsDocumentType = "P" DatabaseValidationValidateParamsDocumentTypeDl DatabaseValidationValidateParamsDocumentType = "DL" DatabaseValidationValidateParamsDocumentTypeID DatabaseValidationValidateParamsDocumentType = "ID" DatabaseValidationValidateParamsDocumentTypeRp DatabaseValidationValidateParamsDocumentType = "RP" DatabaseValidationValidateParamsDocumentTypeSsc DatabaseValidationValidateParamsDocumentType = "SSC" DatabaseValidationValidateParamsDocumentTypeHic DatabaseValidationValidateParamsDocumentType = "HIC" DatabaseValidationValidateParamsDocumentTypeWp DatabaseValidationValidateParamsDocumentType = "WP" DatabaseValidationValidateParamsDocumentTypeTc DatabaseValidationValidateParamsDocumentType = "TC" DatabaseValidationValidateParamsDocumentTypeVisa DatabaseValidationValidateParamsDocumentType = "VISA" DatabaseValidationValidateParamsDocumentTypePsc DatabaseValidationValidateParamsDocumentType = "PSC" DatabaseValidationValidateParamsDocumentTypeBc DatabaseValidationValidateParamsDocumentType = "BC" DatabaseValidationValidateParamsDocumentTypeOther DatabaseValidationValidateParamsDocumentType = "OTHER" )
Known values of DatabaseValidationValidateParamsDocumentType.
type DatabaseValidationValidateParamsGender ¶
type DatabaseValidationValidateParamsGender string
DatabaseValidationValidateParamsGender: Gender: `M`, `F`, or `X` (other/unknown). Required for Argentina's RENAPER validation (`arg_renaper`).
DatabaseValidationValidateParamsGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateParamsGenderM DatabaseValidationValidateParamsGender = "M" DatabaseValidationValidateParamsGenderF DatabaseValidationValidateParamsGender = "F" DatabaseValidationValidateParamsGenderX DatabaseValidationValidateParamsGender = "X" )
Known values of DatabaseValidationValidateParamsGender.
type DatabaseValidationValidateParamsNoMatchAction ¶
type DatabaseValidationValidateParamsNoMatchAction string
DatabaseValidationValidateParamsNoMatchAction: What a `no_match` does to `database_validation.status`. Defaults to `DECLINE`.
DatabaseValidationValidateParamsNoMatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateParamsNoMatchActionDecline DatabaseValidationValidateParamsNoMatchAction = "DECLINE" DatabaseValidationValidateParamsNoMatchActionNoAction DatabaseValidationValidateParamsNoMatchAction = "NO_ACTION" )
Known values of DatabaseValidationValidateParamsNoMatchAction.
type DatabaseValidationValidateParamsPartialMatchAction ¶
type DatabaseValidationValidateParamsPartialMatchAction string
DatabaseValidationValidateParamsPartialMatchAction: What a `partial_match` does to `database_validation.status`. Defaults to `NO_ACTION` (status stays `Approved`, with a warning).
DatabaseValidationValidateParamsPartialMatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateParamsPartialMatchActionDecline DatabaseValidationValidateParamsPartialMatchAction = "DECLINE" DatabaseValidationValidateParamsPartialMatchActionNoAction DatabaseValidationValidateParamsPartialMatchAction = "NO_ACTION" )
Known values of DatabaseValidationValidateParamsPartialMatchAction.
type DatabaseValidationValidateResponse ¶
type DatabaseValidationValidateResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
DatabaseValidation DatabaseValidationValidateResponseDatabaseValidation `json:"database_validation"`
// Echo of the `vendor_data` you sent.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DatabaseValidationValidateResponse is a response object.
func (*DatabaseValidationValidateResponse) UnmarshalJSON ¶
func (r *DatabaseValidationValidateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DatabaseValidationValidateResponse leniently.
type DatabaseValidationValidateResponseDatabaseValidation ¶
type DatabaseValidationValidateResponseDatabaseValidation struct {
// `Declined` when the overall `match_type` triggers a `DECLINE` action
// (`no_match_action` defaults to `DECLINE`, `partial_match_action` to
// `NO_ACTION`); `In Review` when no service produced a usable comparison, for
// example when the only selected service came back `REGISTRY_UNAVAILABLE` or
// `INCONCLUSIVE`; `Approved` otherwise. A request that selected several
// services can be `Approved` on one service's match while another was
// unavailable, so check `errors` and the per-service `outcome_code`s too.
Status DatabaseValidationValidateResponseDatabaseValidationStatus `json:"status"`
// Echo of the ISO 3166-1 alpha-3 country validated against.
IssuingState string `json:"issuing_state"`
// Derived from the results: `two_by_two` when ≥2 distinct services produced a
// full match (on the identification number, on full name + date of birth
// together, or on the address without contradictions); `one_by_one` otherwise.
// (The request field of the same name is deprecated and ignored.)
ValidationType DatabaseValidationValidateResponseDatabaseValidationValidationType `json:"validation_type"`
// Echo of the input fields that were sent to the selected services (dates
// normalized to `YYYY-MM-DD`; a `selfie`, when sent, is returned as a
// pre-signed URL; `consent_obtained: true` is added when consent was given).
ScreenedData map[string]any `json:"screened_data"`
// Overall result aggregated across services with field-level comparisons: any
// `full_match` → `full_match`; else any `partial_match` → `partial_match`; else
// `no_match`. Outcome-only services, such as biometric criminal screening, can
// return `null`; inspect each item in `validations` for its `outcome_code`.
MatchType DatabaseValidationValidateResponseDatabaseValidationMatchType `json:"match_type"`
// Shape depends on `save_api_request`. **`true` (default):** an array of
// per-service objects (`service_id`, `service_name`, `validation`,
// `outcome_code`, `outcome_detail`, `source_data`). **`false`:** a single flat
// object merging the field-level results of all services (`{"full_name":
// "full_match", ...}`).
Validations any `json:"validations"`
// `DATABASE_VALIDATION_NO_MATCH` or `DATABASE_VALIDATION_PARTIAL_MATCH` when
// applicable; empty on a full match.
Warnings []DatabaseValidationValidateResponseDatabaseValidationWarnings `json:"warnings"`
// Present only when some (but not all) selected services failed. Each entry
// carries `service_id`, `code`, `message`, and `retryable`. A service reported
// here is absent from `validations` and `services_used`, and is not billed.
// This array is the only place it appears, so inspect it even when `status` is
// `Approved`.
Errors []DatabaseValidationValidateResponseDatabaseValidationErrors `json:"errors"`
// Catalog ids of the services that returned a billable result. **Only present
// when the request explicitly sent `services`.**
ServicesUsed []string `json:"services_used"`
// Fraction (0.0-1.0) of attempted services that produced a full match (on the
// identification number, on full name + date of birth together, or on the
// address without contradictions). **Only present when the request explicitly
// sent `services`.**
MatchScore float64 `json:"match_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DatabaseValidationValidateResponseDatabaseValidation is a response object.
func (*DatabaseValidationValidateResponseDatabaseValidation) UnmarshalJSON ¶
func (r *DatabaseValidationValidateResponseDatabaseValidation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DatabaseValidationValidateResponseDatabaseValidation leniently.
type DatabaseValidationValidateResponseDatabaseValidationErrors ¶
type DatabaseValidationValidateResponseDatabaseValidationErrors struct {
ServiceID string `json:"service_id"`
Code string `json:"code"`
Message string `json:"message"`
// `true` when the service produced no answer and retrying it later can succeed;
// `false` when the source refused the data it was sent and the input must be
// corrected first.
Retryable bool `json:"retryable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DatabaseValidationValidateResponseDatabaseValidationErrors is a response object.
func (*DatabaseValidationValidateResponseDatabaseValidationErrors) UnmarshalJSON ¶
func (r *DatabaseValidationValidateResponseDatabaseValidationErrors) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DatabaseValidationValidateResponseDatabaseValidationErrors leniently.
type DatabaseValidationValidateResponseDatabaseValidationMatchType ¶
type DatabaseValidationValidateResponseDatabaseValidationMatchType string
DatabaseValidationValidateResponseDatabaseValidationMatchType: Overall result aggregated across services with field-level comparisons: any `full_match` → `full_match`; else any `partial_match` → `partial_match`; else `no_match`. Outcome-only services, such as biometric criminal screening, can return `null`; inspect each item in `validations` for its `outcome_code`.
DatabaseValidationValidateResponseDatabaseValidationMatchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateResponseDatabaseValidationMatchTypeFullMatch DatabaseValidationValidateResponseDatabaseValidationMatchType = "full_match" DatabaseValidationValidateResponseDatabaseValidationMatchTypePartialMatch DatabaseValidationValidateResponseDatabaseValidationMatchType = "partial_match" DatabaseValidationValidateResponseDatabaseValidationMatchTypeNoMatch DatabaseValidationValidateResponseDatabaseValidationMatchType = "no_match" )
Known values of DatabaseValidationValidateResponseDatabaseValidationMatchType.
type DatabaseValidationValidateResponseDatabaseValidationStatus ¶
type DatabaseValidationValidateResponseDatabaseValidationStatus string
DatabaseValidationValidateResponseDatabaseValidationStatus: `Declined` when the overall `match_type` triggers a `DECLINE` action (`no_match_action` defaults to `DECLINE`, `partial_match_action` to `NO_ACTION`); `In Review` when no service produced a usable comparison, for example when the only selected service came back `REGISTRY_UNAVAILABLE` or `INCONCLUSIVE`; `Approved` otherwise. A request that selected several services can be `Approved` on one service's match while another was unavailable, so check `errors` and the per-service `outcome_code`s too.
DatabaseValidationValidateResponseDatabaseValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateResponseDatabaseValidationStatusApproved DatabaseValidationValidateResponseDatabaseValidationStatus = "Approved" DatabaseValidationValidateResponseDatabaseValidationStatusDeclined DatabaseValidationValidateResponseDatabaseValidationStatus = "Declined" DatabaseValidationValidateResponseDatabaseValidationStatusInReview DatabaseValidationValidateResponseDatabaseValidationStatus = "In Review" )
Known values of DatabaseValidationValidateResponseDatabaseValidationStatus.
type DatabaseValidationValidateResponseDatabaseValidationValidationType ¶
type DatabaseValidationValidateResponseDatabaseValidationValidationType string
DatabaseValidationValidateResponseDatabaseValidationValidationType: Derived from the results: `two_by_two` when ≥2 distinct services produced a full match (on the identification number, on full name + date of birth together, or on the address without contradictions); `one_by_one` otherwise. (The request field of the same name is deprecated and ignored.)
DatabaseValidationValidateResponseDatabaseValidationValidationType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DatabaseValidationValidateResponseDatabaseValidationValidationTypeOneByOne DatabaseValidationValidateResponseDatabaseValidationValidationType = "one_by_one" DatabaseValidationValidateResponseDatabaseValidationValidationTypeTwoByTwo DatabaseValidationValidateResponseDatabaseValidationValidationType = "two_by_two" )
Known values of DatabaseValidationValidateResponseDatabaseValidationValidationType.
type DatabaseValidationValidateResponseDatabaseValidationWarnings ¶
type DatabaseValidationValidateResponseDatabaseValidationWarnings struct {
// Feature that raised the warning.
Feature string `json:"feature"`
// Machine-readable risk identifier.
Risk string `json:"risk"`
// Extra context for the warning, when available.
AdditionalData map[string]any `json:"additional_data"`
// `warning`, `information`, or `error` - how the risk affected the outcome.
LogType string `json:"log_type"`
// One-line human-readable summary.
ShortDescription string `json:"short_description"`
// Full human-readable explanation.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DatabaseValidationValidateResponseDatabaseValidationWarnings is a response object.
func (*DatabaseValidationValidateResponseDatabaseValidationWarnings) UnmarshalJSON ¶
func (r *DatabaseValidationValidateResponseDatabaseValidationWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DatabaseValidationValidateResponseDatabaseValidationWarnings leniently.
type DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum string
DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum: * `ISL` - ISL
DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnumIsl DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum = "ISL"
)
Known values of DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIAudkenniWalletVerificationStartRequest ¶
type DigitalIDWalletAPIAudkenniWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Auðkenni identity. Defaults to ISL, the
// only country it serves.
//
// - `ISL` - ISL
Country Opt[DigitalIDWalletAPIAudkenniWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIAudkenniWalletVerificationStartRequest: Start a Auðkenni verification (ISL).
func (DigitalIDWalletAPIAudkenniWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIAudkenniWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIBankidCzWalletVerificationStartRequest ¶
type DigitalIDWalletAPIBankidCzWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Bank iD identity. Defaults to CZE, the only
// country it serves.
//
// - `CZE` - CZE
Country Opt[DigitalIDWalletAPICountryE2dEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIBankidCzWalletVerificationStartRequest: Start a Bank iD verification (CZE).
func (DigitalIDWalletAPIBankidCzWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIBankidCzWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIBankidNoWalletVerificationStartRequest ¶
type DigitalIDWalletAPIBankidNoWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the BankID identity. Defaults to NOR, the only
// country it serves.
//
// - `NOR` - NOR
Country Opt[DigitalIDWalletAPICountryAfcEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIBankidNoWalletVerificationStartRequest: Start a BankID verification (NOR).
func (DigitalIDWalletAPIBankidNoWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIBankidNoWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIBankidSeWalletVerificationStartRequest ¶
type DigitalIDWalletAPIBankidSeWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the BankID identity. Defaults to SWE, the only
// country it serves.
//
// - `SWE` - SWE
Country Opt[DigitalIDWalletAPICountryEe9enum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIBankidSeWalletVerificationStartRequest: Start a BankID verification (SWE).
func (DigitalIDWalletAPIBankidSeWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIBankidSeWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIBuypassWalletVerificationStartRequest ¶
type DigitalIDWalletAPIBuypassWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Buypass ID identity. Defaults to NOR, the
// only country it serves.
//
// - `NOR` - NOR
Country Opt[DigitalIDWalletAPICountryAfcEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIBuypassWalletVerificationStartRequest: Start a Buypass ID verification (NOR).
func (DigitalIDWalletAPIBuypassWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIBuypassWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum string
DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum: * `AUS` - AUS
DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnumAus DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum = "AUS"
)
Known values of DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIConnectidWalletVerificationStartRequest ¶
type DigitalIDWalletAPIConnectidWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the ConnectID identity. Defaults to AUS, the
// only country it serves.
//
// - `AUS` - AUS
Country Opt[DigitalIDWalletAPIConnectidWalletVerificationStartCountryEnum] `json:"country"`
// Authorisation server ID selected with ConnectID's bank selector. Sandbox
// defaults to Mock Bank A.
AuthorisationServerID Opt[string] `json:"authorisation_server_id"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIConnectidWalletVerificationStartRequest: Start a ConnectID verification (AUS).
func (DigitalIDWalletAPIConnectidWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIConnectidWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPICountry520enum ¶
type DigitalIDWalletAPICountry520enum string
DigitalIDWalletAPICountry520enum: * `GBR` - GBR
DigitalIDWalletAPICountry520enum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPICountry520enumGbr DigitalIDWalletAPICountry520enum = "GBR"
)
Known values of DigitalIDWalletAPICountry520enum.
type DigitalIDWalletAPICountryAfcEnum ¶
type DigitalIDWalletAPICountryAfcEnum string
DigitalIDWalletAPICountryAfcEnum: * `NOR` - NOR
DigitalIDWalletAPICountryAfcEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPICountryAfcEnumNor DigitalIDWalletAPICountryAfcEnum = "NOR"
)
Known values of DigitalIDWalletAPICountryAfcEnum.
type DigitalIDWalletAPICountryE2dEnum ¶
type DigitalIDWalletAPICountryE2dEnum string
DigitalIDWalletAPICountryE2dEnum: * `CZE` - CZE
DigitalIDWalletAPICountryE2dEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPICountryE2dEnumCze DigitalIDWalletAPICountryE2dEnum = "CZE"
)
Known values of DigitalIDWalletAPICountryE2dEnum.
type DigitalIDWalletAPICountryEe9enum ¶
type DigitalIDWalletAPICountryEe9enum string
DigitalIDWalletAPICountryEe9enum: * `SWE` - SWE
DigitalIDWalletAPICountryEe9enum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPICountryEe9enumSwe DigitalIDWalletAPICountryEe9enum = "SWE"
)
Known values of DigitalIDWalletAPICountryEe9enum.
type DigitalIDWalletAPIDeviceEnum ¶
type DigitalIDWalletAPIDeviceEnum string
DigitalIDWalletAPIDeviceEnum: * `same_device` - same_device
- `cross_device` - cross_device
DigitalIDWalletAPIDeviceEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIDeviceEnumSameDevice DigitalIDWalletAPIDeviceEnum = "same_device" DigitalIDWalletAPIDeviceEnumCrossDevice DigitalIDWalletAPIDeviceEnum = "cross_device" )
Known values of DigitalIDWalletAPIDeviceEnum.
type DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum string
DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum: * `UKR` - UKR
DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnumUkr DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum = "UKR"
)
Known values of DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIDiiaWalletVerificationStartRequest ¶
type DigitalIDWalletAPIDiiaWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Diia identity. Defaults to UKR, the only
// country it serves.
//
// - `UKR` - UKR
Country Opt[DigitalIDWalletAPIDiiaWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIDiiaWalletVerificationStartRequest: Start a Diia verification (UKR).
func (DigitalIDWalletAPIDiiaWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIDiiaWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum string
DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum: * `LVA` - LVA
DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnumLva DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum = "LVA"
)
Known values of DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest ¶
type DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the eParaksts mobile identity. Defaults to LVA,
// the only country it serves.
//
// - `LVA` - LVA
Country Opt[DigitalIDWalletAPIEparakstsMobileWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest: Start a eParaksts mobile verification (LVA).
func (DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum string
DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum: * `AUT` - AUT
- `BEL` - BEL
- `BGR` - BGR
- `HRV` - HRV
- `CYP` - CYP
- `CZE` - CZE
- `DNK` - DNK
- `EST` - EST
- `FIN` - FIN
- `FRA` - FRA
- `DEU` - DEU
- `GRC` - GRC
- `HUN` - HUN
- `IRL` - IRL
- `ITA` - ITA
- `LVA` - LVA
- `LTU` - LTU
- `LUX` - LUX
- `MLT` - MLT
- `NLD` - NLD
- `POL` - POL
- `PRT` - PRT
- `ROU` - ROU
- `SVK` - SVK
- `SVN` - SVN
- `ESP` - ESP
- `SWE` - SWE
- `ISL` - ISL
- `LIE` - LIE
- `NOR` - NOR
DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumAut DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "AUT" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumBel DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "BEL" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumBgr DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "BGR" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumHrv DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "HRV" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumCyp DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "CYP" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumCze DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "CZE" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumDnk DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "DNK" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumEst DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "EST" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumFin DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "FIN" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumFra DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "FRA" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumDeu DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "DEU" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumGrc DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "GRC" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumHun DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "HUN" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumIrl DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "IRL" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumIta DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "ITA" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumLva DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "LVA" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumLtu DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "LTU" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumLux DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "LUX" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumMlt DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "MLT" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumNld DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "NLD" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumPol DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "POL" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumPrt DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "PRT" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumRou DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "ROU" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumSvk DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "SVK" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumSvn DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "SVN" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumEsp DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "ESP" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumSwe DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "SWE" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumIsl DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "ISL" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumLie DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "LIE" DigitalIDWalletAPIEudiWalletVerificationStartCountryEnumNor DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum = "NOR" )
Known values of DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIEudiWalletVerificationStartRequest ¶
type DigitalIDWalletAPIEudiWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the EUDI Wallet identity.
//
// - `AUT` - AUT
// - `BEL` - BEL
// - `BGR` - BGR
// - `HRV` - HRV
// - `CYP` - CYP
// - `CZE` - CZE
// - `DNK` - DNK
// - `EST` - EST
// - `FIN` - FIN
// - `FRA` - FRA
// - `DEU` - DEU
// - `GRC` - GRC
// - `HUN` - HUN
// - `IRL` - IRL
// - `ITA` - ITA
// - `LVA` - LVA
// - `LTU` - LTU
// - `LUX` - LUX
// - `MLT` - MLT
// - `NLD` - NLD
// - `POL` - POL
// - `PRT` - PRT
// - `ROU` - ROU
// - `SVK` - SVK
// - `SVN` - SVN
// - `ESP` - ESP
// - `SWE` - SWE
// - `ISL` - ISL
// - `LIE` - LIE
// - `NOR` - NOR Required.
Country DigitalIDWalletAPIEudiWalletVerificationStartCountryEnum `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIEudiWalletVerificationStartRequest: Start a EUDI Wallet verification (AUT, BEL, BGR, HRV, CYP, CZE, DNK, EST, FIN, FRA, DEU, GRC, HUN, IRL, ITA, LVA, LTU, LUX, MLT, NLD, POL, PRT, ROU, SVK, SVN, ESP, SWE, ISL, LIE, NOR).
func (DigitalIDWalletAPIEudiWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIEudiWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum string
DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum: * `FRA` - FRA
DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnumFra DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum = "FRA"
)
Known values of DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest ¶
type DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the FranceConnect identity. Defaults to FRA,
// the only country it serves.
//
// - `FRA` - FRA
Country Opt[DigitalIDWalletAPIFranceconnectWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest: Start a FranceConnect verification (FRA).
func (DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIFrejaidWalletVerificationStartRequest ¶
type DigitalIDWalletAPIFrejaidWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Freja eID identity. Defaults to SWE, the
// only country it serves.
//
// - `SWE` - SWE
Country Opt[DigitalIDWalletAPICountryEe9enum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIFrejaidWalletVerificationStartRequest: Start a Freja eID verification (SWE).
func (DigitalIDWalletAPIFrejaidWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIFrejaidWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum string
DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum: * `FIN` - FIN
DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIFtnWalletVerificationStartCountryEnumFin DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum = "FIN"
)
Known values of DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIFtnWalletVerificationStartRequest ¶
type DigitalIDWalletAPIFtnWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Finnish Trust Network identity. Defaults to
// FIN, the only country it serves.
//
// - `FIN` - FIN
Country Opt[DigitalIDWalletAPIFtnWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIFtnWalletVerificationStartRequest: Start a Finnish Trust Network verification (FIN).
func (DigitalIDWalletAPIFtnWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIFtnWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum string
DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum: * `BRA` - BRA
DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnumBra DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum = "BRA"
)
Known values of DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIGovbrWalletVerificationStartRequest ¶
type DigitalIDWalletAPIGovbrWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the gov.br identity. Defaults to BRA, the only
// country it serves.
//
// - `BRA` - BRA
Country Opt[DigitalIDWalletAPIGovbrWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIGovbrWalletVerificationStartRequest: Start a gov.br verification (BRA).
func (DigitalIDWalletAPIGovbrWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIGovbrWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest ¶
type DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the GOV.UK Wallet identity. Defaults to GBR,
// the only country it serves.
//
// - `GBR` - GBR
Country Opt[DigitalIDWalletAPICountry520enum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest: Start a GOV.UK Wallet verification (GBR).
func (DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum string
DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum: * `EST` - EST
DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnumEst DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum = "EST"
)
Known values of DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest ¶
type DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Estonian ID-card identity. Defaults to EST,
// the only country it serves.
//
// - `EST` - EST
Country Opt[DigitalIDWalletAPIIdcardEeWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest: Start a Estonian ID-card verification (EST).
func (DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum string
DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum: * `NLD` - NLD
DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIIdinWalletVerificationStartCountryEnumNld DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum = "NLD"
)
Known values of DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIIdinWalletVerificationStartRequest ¶
type DigitalIDWalletAPIIdinWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the iDIN identity. Defaults to NLD, the only
// country it serves.
//
// - `NLD` - NLD
Country Opt[DigitalIDWalletAPIIdinWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIIdinWalletVerificationStartRequest: Start a iDIN verification (NLD).
func (DigitalIDWalletAPIIdinWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIIdinWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIInteractionEnum ¶
type DigitalIDWalletAPIInteractionEnum string
DigitalIDWalletAPIInteractionEnum: * `redirect` - redirect
- `in_app` - in_app
DigitalIDWalletAPIInteractionEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIInteractionEnumRedirect DigitalIDWalletAPIInteractionEnum = "redirect" DigitalIDWalletAPIInteractionEnumInApp DigitalIDWalletAPIInteractionEnum = "in_app" )
Known values of DigitalIDWalletAPIInteractionEnum.
type DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum string
DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum: * `BEL` - BEL
- `LUX` - LUX
- `NLD` - NLD
DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnumBel DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum = "BEL" DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnumLux DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum = "LUX" DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnumNld DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum = "NLD" )
Known values of DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIItsmeWalletVerificationStartRequest ¶
type DigitalIDWalletAPIItsmeWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the itsme identity.
//
// - `BEL` - BEL
// - `LUX` - LUX
// - `NLD` - NLD Required.
Country DigitalIDWalletAPIItsmeWalletVerificationStartCountryEnum `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIItsmeWalletVerificationStartRequest: Start a itsme verification (BEL, LUX, NLD).
func (DigitalIDWalletAPIItsmeWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIItsmeWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum string
DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum: * `DNK` - DNK
DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIMitidWalletVerificationStartCountryEnumDnk DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum = "DNK"
)
Known values of DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIMitidWalletVerificationStartRequest ¶
type DigitalIDWalletAPIMitidWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the MitID identity. Defaults to DNK, the only
// country it serves.
//
// - `DNK` - DNK
Country Opt[DigitalIDWalletAPIMitidWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIMitidWalletVerificationStartRequest: Start a MitID verification (DNK).
func (DigitalIDWalletAPIMitidWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIMitidWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum string
DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum: * `EST` - EST
- `LTU` - LTU
DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnumEst DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum = "EST" DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnumLtu DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum = "LTU" )
Known values of DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIMobileIDWalletVerificationStartRequest ¶
type DigitalIDWalletAPIMobileIDWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Mobile-ID identity.
//
// - `EST` - EST
// - `LTU` - LTU Required.
Country DigitalIDWalletAPIMobileIDWalletVerificationStartCountryEnum `json:"country"`
// The user's national personal identification code. It addresses the user's
// Mobile-ID app; the user confirms the comparison code and enters their PIN in
// the app. Never collect the PIN. Required.
PersonalCode string `json:"personal_code"`
// The Mobile-ID phone number in E.164 format (+372... or +370...). Required.
PhoneNumber string `json:"phone_number"`
}
DigitalIDWalletAPIMobileIDWalletVerificationStartRequest: Start a Mobile-ID verification (EST, LTU).
func (DigitalIDWalletAPIMobileIDWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIMobileIDWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIMojeidWalletVerificationStartRequest ¶
type DigitalIDWalletAPIMojeidWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the MojeID identity. Defaults to CZE, the only
// country it serves.
//
// - `CZE` - CZE
Country Opt[DigitalIDWalletAPICountryE2dEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIMojeidWalletVerificationStartRequest: Start a MojeID verification (CZE).
func (DigitalIDWalletAPIMojeidWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIMojeidWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIOneidWalletVerificationStartRequest ¶
type DigitalIDWalletAPIOneidWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the OneID identity. Defaults to GBR, the only
// country it serves.
//
// - `GBR` - GBR
Country Opt[DigitalIDWalletAPICountry520enum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIOneidWalletVerificationStartRequest: Start a OneID verification (GBR).
func (DigitalIDWalletAPIOneidWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIOneidWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum string
DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum: * `DEU` - DEU
DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnumDeu DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum = "DEU"
)
Known values of DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest ¶
type DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Personalausweis identity. Defaults to DEU,
// the only country it serves.
//
// - `DEU` - DEU
Country Opt[DigitalIDWalletAPIPersonalausweisWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest: Start a Personalausweis verification (DEU).
func (DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum string
DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum: * `EST` - EST
- `LVA` - LVA
- `LTU` - LTU
- `BEL` - BEL
DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnumEst DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum = "EST" DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnumLva DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum = "LVA" DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnumLtu DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum = "LTU" DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnumBel DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum = "BEL" )
Known values of DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum.
type DigitalIDWalletAPISmartIDWalletVerificationStartRequest ¶
type DigitalIDWalletAPISmartIDWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Smart-ID identity.
//
// - `EST` - EST
// - `LVA` - LVA
// - `LTU` - LTU
// - `BEL` - BEL Required.
Country DigitalIDWalletAPISmartIDWalletVerificationStartCountryEnum `json:"country"`
// The user's national personal identification code. It addresses the user's
// Smart-ID app; the user confirms the comparison code and enters their PIN in
// the app. Never collect the PIN. Required.
PersonalCode string `json:"personal_code"`
}
DigitalIDWalletAPISmartIDWalletVerificationStartRequest: Start a Smart-ID verification (EST, LVA, LTU, BEL).
func (DigitalIDWalletAPISmartIDWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPISmartIDWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum ¶
type DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum string
DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum: * `ARE` - ARE
DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnumAre DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum = "ARE"
)
Known values of DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum.
type DigitalIDWalletAPIUaePassWalletVerificationStartRequest ¶
type DigitalIDWalletAPIUaePassWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the UAE PASS identity. Defaults to ARE, the
// only country it serves.
//
// - `ARE` - ARE
Country Opt[DigitalIDWalletAPIUaePassWalletVerificationStartCountryEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIUaePassWalletVerificationStartRequest: Start a UAE PASS verification (ARE).
func (DigitalIDWalletAPIUaePassWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIUaePassWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIVippsWalletVerificationStartRequest ¶
type DigitalIDWalletAPIVippsWalletVerificationStartRequest struct {
// Your own reference for this verification (e.g. your user id). Returned in
// results and webhooks.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the verification and returned in results and
// webhooks.
Metadata Opt[map[string]any] `json:"metadata"`
// Sandbox applications only: the simulated outcome - 'wallet_cancelled',
// 'wallet_timeout' or 'wallet_provider_error'; any other scenario (or none)
// verifies. Rejected on live applications. The full catalog is available at GET
// /v1/sandbox/scenarios/.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// ISO 3166-1 alpha-3 country of the Vipps identity. Defaults to NOR, the only
// country it serves.
//
// - `NOR` - NOR
Country Opt[DigitalIDWalletAPICountryAfcEnum] `json:"country"`
// https URL the user's browser returns to after the wallet, with request_id and
// result appended. Its host must be registered in the application's
// allowed_return_hosts (or be its white-label domain). Never trust result on
// its own: read the outcome with GET .../verifications/{request_id}/ or the
// webhook. Required.
ReturnURL string `json:"return_url"`
// same_device when the user signs in on the device showing your page,
// cross_device when they use another one (e.g. BankID's QR code).
//
// - `same_device` - same_device
// - `cross_device` - cross_device
Device Opt[DigitalIDWalletAPIDeviceEnum] `json:"device"`
}
DigitalIDWalletAPIVippsWalletVerificationStartRequest: Start a Vipps verification (NOR).
func (DigitalIDWalletAPIVippsWalletVerificationStartRequest) MarshalJSON ¶
func (r DigitalIDWalletAPIVippsWalletVerificationStartRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DigitalIDWalletAPIWallet ¶
type DigitalIDWalletAPIWallet struct {
// Catalog id of the wallet, e.g. bankid_se.
ID string `json:"id"`
Name string `json:"name"`
IssuingAuthority string `json:"issuing_authority"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWallet is a response object.
func (*DigitalIDWalletAPIWallet) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWallet) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWallet leniently.
type DigitalIDWalletAPIWalletCatalogEntry ¶
type DigitalIDWalletAPIWalletCatalogEntry struct {
ID string `json:"id"`
Name string `json:"name"`
// The wallet's own start endpoint.
Path string `json:"path"`
Countries []string `json:"countries"`
IssuingAuthority string `json:"issuing_authority"`
LevelOfAssurance string `json:"level_of_assurance"`
Interaction DigitalIDWalletAPIInteractionEnum `json:"interaction"`
RequiredFields []string `json:"required_fields"`
// Whether this application can start it in this environment now. Listed does
// not mean live.
Available bool `json:"available"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletCatalogEntry is a response object.
func (*DigitalIDWalletAPIWalletCatalogEntry) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletCatalogEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletCatalogEntry leniently.
type DigitalIDWalletAPIWalletCatalogResponse ¶
type DigitalIDWalletAPIWalletCatalogResponse struct {
Wallets []DigitalIDWalletAPIWalletCatalogEntry `json:"wallets"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletCatalogResponse is a response object.
func (*DigitalIDWalletAPIWalletCatalogResponse) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletCatalogResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletCatalogResponse leniently.
type DigitalIDWalletAPIWalletIdentity ¶
type DigitalIDWalletAPIWalletIdentity struct {
FullName string `json:"full_name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
DateOfBirth string `json:"date_of_birth"`
// ISO3 nationality, only when the wallet asserts one (never inferred).
Nationality string `json:"nationality"`
// ISO3 country whose scheme issued the identity.
IssuingState string `json:"issuing_state"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletIdentity is a response object.
func (*DigitalIDWalletAPIWalletIdentity) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletIdentity) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletIdentity leniently.
type DigitalIDWalletAPIWalletNextAction ¶
type DigitalIDWalletAPIWalletNextAction struct {
// redirect: send the user's browser to url. confirm_in_app: show
// verification_code to the user, who checks it matches the code in their wallet
// app and confirms there; then poll.
//
// - `redirect` - redirect
// - `confirm_in_app` - confirm_in_app
Type DigitalIDWalletAPIWalletNextActionTypeEnum `json:"type"`
// redirect only: where the user signs in with the wallet.
URL string `json:"url"`
// confirm_in_app only: the 4-digit comparison code the wallet app shows too.
VerificationCode string `json:"verification_code"`
// confirm_in_app only: how often to call POST
// .../verifications/{request_id}/poll/ for prompt feedback. Didit also polls
// pending sign-ins in the background, so the webhook reports the outcome even
// when you do not poll.
PollIntervalSeconds int64 `json:"poll_interval_seconds"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletNextAction is a response object.
func (*DigitalIDWalletAPIWalletNextAction) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletNextAction) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletNextAction leniently.
type DigitalIDWalletAPIWalletNextActionTypeEnum ¶
type DigitalIDWalletAPIWalletNextActionTypeEnum string
DigitalIDWalletAPIWalletNextActionTypeEnum: * `redirect` - redirect
- `confirm_in_app` - confirm_in_app
DigitalIDWalletAPIWalletNextActionTypeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIWalletNextActionTypeEnumRedirect DigitalIDWalletAPIWalletNextActionTypeEnum = "redirect" DigitalIDWalletAPIWalletNextActionTypeEnumConfirmInApp DigitalIDWalletAPIWalletNextActionTypeEnum = "confirm_in_app" )
Known values of DigitalIDWalletAPIWalletNextActionTypeEnum.
type DigitalIDWalletAPIWalletVerificationResponse ¶
type DigitalIDWalletAPIWalletVerificationResponse struct {
RequestID string `json:"request_id"`
WalletVerification DigitalIDWalletAPIWalletVerificationResult `json:"wallet_verification"`
VendorData string `json:"vendor_data"`
// The metadata object sent at start, or null.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletVerificationResponse: One standalone wallet verification, as every wallet endpoint answers it.
func (*DigitalIDWalletAPIWalletVerificationResponse) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletVerificationResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletVerificationResponse leniently.
type DigitalIDWalletAPIWalletVerificationResult ¶
type DigitalIDWalletAPIWalletVerificationResult struct {
Wallet DigitalIDWalletAPIWallet `json:"wallet"`
Country string `json:"country"`
// Not Finished while pending, then Approved (verified) or Declined.
Status string `json:"status"`
Outcome DigitalIDWalletAPIWalletVerificationResultOutcomeEnum `json:"outcome"`
Error string `json:"error"`
Interaction DigitalIDWalletAPIInteractionEnum `json:"interaction"`
Simulated bool `json:"simulated"`
ExpiresAt time.Time `json:"expires_at"`
NextAction DigitalIDWalletAPIWalletNextAction `json:"next_action"`
Identity DigitalIDWalletAPIWalletIdentity `json:"identity"`
Attributes map[string]any `json:"attributes"`
LevelOfAssurance string `json:"level_of_assurance"`
VerifiedAt time.Time `json:"verified_at"`
// True once the credential's signature was verified; null for a simulated one.
SignatureValid bool `json:"signature_valid"`
CredentialType string `json:"credential_type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DigitalIDWalletAPIWalletVerificationResult is a response object.
func (*DigitalIDWalletAPIWalletVerificationResult) UnmarshalJSON ¶
func (r *DigitalIDWalletAPIWalletVerificationResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DigitalIDWalletAPIWalletVerificationResult leniently.
type DigitalIDWalletAPIWalletVerificationResultOutcomeEnum ¶
type DigitalIDWalletAPIWalletVerificationResultOutcomeEnum string
DigitalIDWalletAPIWalletVerificationResultOutcomeEnum: * `pending` - Pending
- `verified` - Verified
- `cancelled` - Cancelled by the user
- `timeout` - Timed out
- `failed` - Failed
DigitalIDWalletAPIWalletVerificationResultOutcomeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DigitalIDWalletAPIWalletVerificationResultOutcomeEnumPending DigitalIDWalletAPIWalletVerificationResultOutcomeEnum = "pending" DigitalIDWalletAPIWalletVerificationResultOutcomeEnumVerified DigitalIDWalletAPIWalletVerificationResultOutcomeEnum = "verified" DigitalIDWalletAPIWalletVerificationResultOutcomeEnumCancelled DigitalIDWalletAPIWalletVerificationResultOutcomeEnum = "cancelled" DigitalIDWalletAPIWalletVerificationResultOutcomeEnumTimeout DigitalIDWalletAPIWalletVerificationResultOutcomeEnum = "timeout" DigitalIDWalletAPIWalletVerificationResultOutcomeEnumFailed DigitalIDWalletAPIWalletVerificationResultOutcomeEnum = "failed" )
Known values of DigitalIDWalletAPIWalletVerificationResultOutcomeEnum.
type DocumentAiAnalyzeParams ¶
type DocumentAiAnalyzeParams struct {
// The document to read. Allowed extensions: `tiff`, `jpg`, `jpeg`, `png`,
// `pdf`, `webp`, `zip`. Maximum upload size: **30 MB** (larger files are
// rejected with `400`). Multi-page PDFs are supported (expect higher latency);
// encrypted PDFs are rejected with `400`. Images are automatically compressed
// before processing. Required.
Document File `json:"-" form:"document"`
// One JSON-encoded array string with **1-30** field definitions (maximum 16
// KB). Each item: `key` (required, `^[a-z0-9_]{1,64}$`, unique - the key
// returned in `extracted_data`), `name` (≤100 chars, shown in messages),
// `instruction` (≤500 chars, what the model should read), `type` (`text`
// default | `number` | `date`), `required` (boolean, default `false`),
// `is_full_name` (boolean, default `false`, at most one per request).
// Bracket-style form arrays, invalid JSON, duplicate keys, or more than one
// `is_full_name` return `400` before any processing or billing. Required.
Fields string `json:"fields"`
// First name to verify against the document's name field (fuzzy match,
// transliteration-aware). Use together with `expected_last_name`; cannot be
// combined with `expected_company_name`.
ExpectedFirstName Opt[string] `json:"expected_first_name"`
// Last name to verify against the document's name field, combined with
// `expected_first_name` for `name_match_score`.
ExpectedLastName Opt[string] `json:"expected_last_name"`
// Company name to verify against the document's name field (for business
// documents). Cannot be combined with `expected_first_name` /
// `expected_last_name` (no example value on purpose - the generated request
// sample uses the person fields; swap them for this one when verifying a
// business document).
ExpectedCompanyName Opt[string] `json:"expected_company_name"`
// Optional ISO 3166-1 alpha-2 country code (two ASCII letters, e.g. `FR`) that
// tunes company-name normalization for `expected_company_name`. Only used with
// `expected_company_name`.
ExpectedCompanyCountry Opt[string] `json:"expected_company_country"`
// Minimum `name_match_score` (0-100) to consider the name matched. A lower
// score adds `DOCUMENT_AI_NAME_MISMATCH`, governed by
// `document_ai_name_mismatch_action`.
DocumentAiNameMatchScoreThreshold Opt[int64] `json:"document_ai_name_match_score_threshold"`
// What to do when no field could be read from the document
// (`DOCUMENT_AI_UNREADABLE_DOCUMENT`).
DocumentAiUnreadableDocumentAction Opt[DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction] `json:"document_ai_unreadable_document_action"`
// What to do when at least one `required` field could not be read
// (`DOCUMENT_AI_MISSING_REQUIRED_FIELDS`; `additional_data.missing_fields`
// lists them).
DocumentAiMissingRequiredFieldsAction Opt[DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction] `json:"document_ai_missing_required_fields_action"`
// What to do when PDF/EXIF forensics suspect manipulation - modified after
// digital signing, known PDF editor, overlay-text manipulation, suspicious
// re-export, image anomalies (`DOCUMENT_AI_SUSPECTED_MANIPULATION`).
DocumentAiDocumentTamperingAction Opt[DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction] `json:"document_ai_document_tampering_action"`
// What to do when `name_match_score` is below the threshold
// (`DOCUMENT_AI_NAME_MISMATCH`).
DocumentAiNameMismatchAction Opt[DocumentAiAnalyzeParamsDocumentAiNameMismatchAction] `json:"document_ai_name_mismatch_action"`
// What to do when the upload is empty or not a processable file
// (`DOCUMENT_AI_UNSUPPORTED_FILE`).
DocumentAiUnsupportedFileAction Opt[DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction] `json:"document_ai_unsupported_file_action"`
// When `true` (default), persists the call as an API-type session - visible in
// the Business Console, retrievable via `GET /v3/session/{sessionId}/decision/`
// using the returned `request_id`, with the uploaded document, the extracted
// values, the field definitions and the name-match snapshot stored. When
// `false`, nothing is stored and `request_id` is a transient UUID for response
// correlation only; the call is still billed.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque string (your internal user id, email, UUID…) stored on the
// persisted session and echoed back in the response. Use it to correlate API
// calls with your own records and to filter sessions later.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back in the response. In multipart requests, send it as a
// JSON-encoded string field (e.g. `metadata={"flow":"onboarding"}`) - it is
// parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
DocumentAiAnalyzeParams holds the parameters of Client.DocumentAi.Analyze.
func (DocumentAiAnalyzeParams) MarshalJSON ¶
func (r DocumentAiAnalyzeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction ¶
type DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction string
DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction: What to do when PDF/EXIF forensics suspect manipulation - modified after digital signing, known PDF editor, overlay-text manipulation, suspicious re-export, image anomalies (`DOCUMENT_AI_SUSPECTED_MANIPULATION`).
DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeParamsDocumentAiDocumentTamperingActionDecline DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction = "DECLINE" DocumentAiAnalyzeParamsDocumentAiDocumentTamperingActionReview DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction = "REVIEW" DocumentAiAnalyzeParamsDocumentAiDocumentTamperingActionNoAction DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction = "NO_ACTION" )
Known values of DocumentAiAnalyzeParamsDocumentAiDocumentTamperingAction.
type DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction ¶
type DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction string
DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction: What to do when at least one `required` field could not be read (`DOCUMENT_AI_MISSING_REQUIRED_FIELDS`; `additional_data.missing_fields` lists them).
DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsActionDecline DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction = "DECLINE" DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsActionReview DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction = "REVIEW" DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsActionNoAction DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction = "NO_ACTION" )
Known values of DocumentAiAnalyzeParamsDocumentAiMissingRequiredFieldsAction.
type DocumentAiAnalyzeParamsDocumentAiNameMismatchAction ¶
type DocumentAiAnalyzeParamsDocumentAiNameMismatchAction string
DocumentAiAnalyzeParamsDocumentAiNameMismatchAction: What to do when `name_match_score` is below the threshold (`DOCUMENT_AI_NAME_MISMATCH`).
DocumentAiAnalyzeParamsDocumentAiNameMismatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeParamsDocumentAiNameMismatchActionDecline DocumentAiAnalyzeParamsDocumentAiNameMismatchAction = "DECLINE" DocumentAiAnalyzeParamsDocumentAiNameMismatchActionReview DocumentAiAnalyzeParamsDocumentAiNameMismatchAction = "REVIEW" DocumentAiAnalyzeParamsDocumentAiNameMismatchActionNoAction DocumentAiAnalyzeParamsDocumentAiNameMismatchAction = "NO_ACTION" )
Known values of DocumentAiAnalyzeParamsDocumentAiNameMismatchAction.
type DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction ¶
type DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction string
DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction: What to do when no field could be read from the document (`DOCUMENT_AI_UNREADABLE_DOCUMENT`).
DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentActionDecline DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction = "DECLINE" DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentActionReview DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction = "REVIEW" DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentActionNoAction DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction = "NO_ACTION" )
Known values of DocumentAiAnalyzeParamsDocumentAiUnreadableDocumentAction.
type DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction ¶
type DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction string
DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction: What to do when the upload is empty or not a processable file (`DOCUMENT_AI_UNSUPPORTED_FILE`).
DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeParamsDocumentAiUnsupportedFileActionDecline DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction = "DECLINE" DocumentAiAnalyzeParamsDocumentAiUnsupportedFileActionReview DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction = "REVIEW" DocumentAiAnalyzeParamsDocumentAiUnsupportedFileActionNoAction DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction = "NO_ACTION" )
Known values of DocumentAiAnalyzeParamsDocumentAiUnsupportedFileAction.
type DocumentAiAnalyzeResponse ¶
type DocumentAiAnalyzeResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
DocumentAi DocumentAiAnalyzeResponseDocumentAi `json:"document_ai"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// When the request was processed (UTC, ISO 8601).
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DocumentAiAnalyzeResponse is a response object.
func (*DocumentAiAnalyzeResponse) UnmarshalJSON ¶
func (r *DocumentAiAnalyzeResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DocumentAiAnalyzeResponse leniently.
type DocumentAiAnalyzeResponseDocumentAi ¶
type DocumentAiAnalyzeResponseDocumentAi struct {
// `Approved` when no warning resolves to a decline or review; `Declined` when
// at least one risk maps to `DECLINE`; otherwise `In Review` when at least one
// maps to `REVIEW`. The `warnings` list explains why.
Status DocumentAiAnalyzeResponseDocumentAiStatus `json:"status"`
// One entry per requested field key. Values are typed per the field `type` -
// strings for `text`, numbers for `number`, `YYYY-MM-DD` strings for `date` -
// or `null` when the value could not be read.
ExtractedData map[string]any `json:"extracted_data"`
// QR codes and barcodes detected across every processed page. Empty when none
// are found. A located but undecodable QR code has `parsed_payload: null`.
DetectedCodes []DocumentAiDetectedCode `json:"detected_codes"`
// The normalized field definitions that were used for this extraction, echoed
// back (also stored with the session when `save_api_request=true`).
Fields []DocumentAiAnalyzeResponseDocumentAiFields `json:"fields"`
// Fuzzy similarity (0-100) between `name_on_document` and the expected
// person/company name. Returned whenever both a name value and an expected name
// exist - on matches **and** mismatches; `null` otherwise.
NameMatchScore float64 `json:"name_match_score"`
// The name value taken from the document (the `is_full_name` field, or the
// first name-like text field) that was compared against the expected name.
// `null` when no name value was available.
NameOnDocument string `json:"name_on_document"`
// Empty on a clean approval. Every entry explains one detected risk; entries
// with `log_type: "error"` set `status` to `Declined`, entries with `log_type:
// "warning"` set it to `In Review`.
Warnings []DocumentAiAnalyzeResponseDocumentAiWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DocumentAiAnalyzeResponseDocumentAi is a response object.
func (*DocumentAiAnalyzeResponseDocumentAi) UnmarshalJSON ¶
func (r *DocumentAiAnalyzeResponseDocumentAi) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DocumentAiAnalyzeResponseDocumentAi leniently.
type DocumentAiAnalyzeResponseDocumentAiFields ¶
type DocumentAiAnalyzeResponseDocumentAiFields struct {
Key string `json:"key"`
Name string `json:"name"`
Instruction string `json:"instruction"`
Type DocumentAiAnalyzeResponseDocumentAiFieldsType `json:"type"`
Required bool `json:"required"`
IsFullName bool `json:"is_full_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DocumentAiAnalyzeResponseDocumentAiFields is a response object.
func (*DocumentAiAnalyzeResponseDocumentAiFields) UnmarshalJSON ¶
func (r *DocumentAiAnalyzeResponseDocumentAiFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DocumentAiAnalyzeResponseDocumentAiFields leniently.
type DocumentAiAnalyzeResponseDocumentAiFieldsType ¶
type DocumentAiAnalyzeResponseDocumentAiFieldsType string
DocumentAiAnalyzeResponseDocumentAiFieldsType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeResponseDocumentAiFieldsTypeText DocumentAiAnalyzeResponseDocumentAiFieldsType = "text" DocumentAiAnalyzeResponseDocumentAiFieldsTypeNumber DocumentAiAnalyzeResponseDocumentAiFieldsType = "number" DocumentAiAnalyzeResponseDocumentAiFieldsTypeDate DocumentAiAnalyzeResponseDocumentAiFieldsType = "date" )
Known values of DocumentAiAnalyzeResponseDocumentAiFieldsType.
type DocumentAiAnalyzeResponseDocumentAiStatus ¶
type DocumentAiAnalyzeResponseDocumentAiStatus string
DocumentAiAnalyzeResponseDocumentAiStatus: `Approved` when no warning resolves to a decline or review; `Declined` when at least one risk maps to `DECLINE`; otherwise `In Review` when at least one maps to `REVIEW`. The `warnings` list explains why.
DocumentAiAnalyzeResponseDocumentAiStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeResponseDocumentAiStatusApproved DocumentAiAnalyzeResponseDocumentAiStatus = "Approved" DocumentAiAnalyzeResponseDocumentAiStatusDeclined DocumentAiAnalyzeResponseDocumentAiStatus = "Declined" DocumentAiAnalyzeResponseDocumentAiStatusInReview DocumentAiAnalyzeResponseDocumentAiStatus = "In Review" )
Known values of DocumentAiAnalyzeResponseDocumentAiStatus.
type DocumentAiAnalyzeResponseDocumentAiWarnings ¶
type DocumentAiAnalyzeResponseDocumentAiWarnings struct {
// Machine-readable risk code. Each one is governed by the matching
// `document_ai_*_action` request option.
Risk DocumentAiAnalyzeResponseDocumentAiWarningsRisk `json:"risk"`
// Feature that raised the warning. Always `DOCUMENT_AI` on this endpoint.
Feature DocumentAiAnalyzeResponseDocumentAiWarningsFeature `json:"feature"`
// Extra context for the risk: `{"missing_fields": ["Net pay"]}` for missing
// required fields, `{"name_on_document", "score", "threshold"}` for a name
// mismatch, and the forensic finding (`detection_method`, producer/editor
// details) for suspected manipulation. `null` when there is nothing to add.
AdditionalData map[string]any `json:"additional_data"`
// Severity derived from the configured action: `error` (DECLINE), `warning`
// (REVIEW), `information` (NO_ACTION).
LogType DocumentAiAnalyzeResponseDocumentAiWarningsLogType `json:"log_type"`
// Human-readable one-liner for the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation, interpolated with `additional_data` where
// relevant.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DocumentAiAnalyzeResponseDocumentAiWarnings is a response object.
func (*DocumentAiAnalyzeResponseDocumentAiWarnings) UnmarshalJSON ¶
func (r *DocumentAiAnalyzeResponseDocumentAiWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DocumentAiAnalyzeResponseDocumentAiWarnings leniently.
type DocumentAiAnalyzeResponseDocumentAiWarningsFeature ¶
type DocumentAiAnalyzeResponseDocumentAiWarningsFeature string
DocumentAiAnalyzeResponseDocumentAiWarningsFeature: Feature that raised the warning. Always `DOCUMENT_AI` on this endpoint.
DocumentAiAnalyzeResponseDocumentAiWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
DocumentAiAnalyzeResponseDocumentAiWarningsFeatureDocumentAi DocumentAiAnalyzeResponseDocumentAiWarningsFeature = "DOCUMENT_AI"
)
Known values of DocumentAiAnalyzeResponseDocumentAiWarningsFeature.
type DocumentAiAnalyzeResponseDocumentAiWarningsLogType ¶
type DocumentAiAnalyzeResponseDocumentAiWarningsLogType string
DocumentAiAnalyzeResponseDocumentAiWarningsLogType: Severity derived from the configured action: `error` (DECLINE), `warning` (REVIEW), `information` (NO_ACTION).
DocumentAiAnalyzeResponseDocumentAiWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeResponseDocumentAiWarningsLogTypeError DocumentAiAnalyzeResponseDocumentAiWarningsLogType = "error" DocumentAiAnalyzeResponseDocumentAiWarningsLogTypeWarning DocumentAiAnalyzeResponseDocumentAiWarningsLogType = "warning" DocumentAiAnalyzeResponseDocumentAiWarningsLogTypeInformation DocumentAiAnalyzeResponseDocumentAiWarningsLogType = "information" )
Known values of DocumentAiAnalyzeResponseDocumentAiWarningsLogType.
type DocumentAiAnalyzeResponseDocumentAiWarningsRisk ¶
type DocumentAiAnalyzeResponseDocumentAiWarningsRisk string
DocumentAiAnalyzeResponseDocumentAiWarningsRisk: Machine-readable risk code. Each one is governed by the matching `document_ai_*_action` request option.
DocumentAiAnalyzeResponseDocumentAiWarningsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( DocumentAiAnalyzeResponseDocumentAiWarningsRiskDocumentAiUnreadableDocument DocumentAiAnalyzeResponseDocumentAiWarningsRisk = "DOCUMENT_AI_UNREADABLE_DOCUMENT" DocumentAiAnalyzeResponseDocumentAiWarningsRiskDocumentAiMissingRequiredFields DocumentAiAnalyzeResponseDocumentAiWarningsRisk = "DOCUMENT_AI_MISSING_REQUIRED_FIELDS" DocumentAiAnalyzeResponseDocumentAiWarningsRiskDocumentAiSuspectedManipulation DocumentAiAnalyzeResponseDocumentAiWarningsRisk = "DOCUMENT_AI_SUSPECTED_MANIPULATION" DocumentAiAnalyzeResponseDocumentAiWarningsRiskDocumentAiNameMismatch DocumentAiAnalyzeResponseDocumentAiWarningsRisk = "DOCUMENT_AI_NAME_MISMATCH" DocumentAiAnalyzeResponseDocumentAiWarningsRiskDocumentAiUnsupportedFile DocumentAiAnalyzeResponseDocumentAiWarningsRisk = "DOCUMENT_AI_UNSUPPORTED_FILE" )
Known values of DocumentAiAnalyzeResponseDocumentAiWarningsRisk.
type DocumentAiDetectedCode ¶
type DocumentAiDetectedCode struct {
// Detected symbology, for example `QR_CODE`, `CODE_128`, `EAN_13`,
// `DATA_MATRIX`, or `PDF_417`.
Type string `json:"type"`
// 1-based page number.
PageNumber int64 `json:"page_number"`
// Detected polygon in rendered-page pixel coordinates. `null` when no reliable
// location is available.
Position [][]int64 `json:"position"`
// Left edge of the bounding box in rendered-page pixels.
X int64 `json:"x"`
// Top edge of the bounding box in rendered-page pixels.
Y int64 `json:"y"`
// Bounding-box width in rendered-page pixels.
Width int64 `json:"width"`
// Bounding-box height in rendered-page pixels.
Height int64 `json:"height"`
// Rendered page width in pixels.
PageWidth int64 `json:"page_width"`
// Rendered page height in pixels.
PageHeight int64 `json:"page_height"`
// Raw decoder payload as a base64 string when available; otherwise an empty
// string.
RawPayload string `json:"raw_payload"`
// Decoded string or structured value. `null` when the code was located but
// could not be decoded.
ParsedPayload any `json:"parsed_payload"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
DocumentAiDetectedCode is a response object.
func (*DocumentAiDetectedCode) UnmarshalJSON ¶
func (r *DocumentAiDetectedCode) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes DocumentAiDetectedCode leniently.
type DocumentAiService ¶
type DocumentAiService struct {
// contains filtered or unexported fields
}
DocumentAiService holds the document_ai operations. Use it through Client.DocumentAi.
func (*DocumentAiService) Analyze ¶
func (r *DocumentAiService) Analyze(ctx context.Context, params DocumentAiAnalyzeParams, opts ...option.RequestOption) (*DocumentAiAnalyzeResponse, error)
Analyze: Document AI (custom field extraction + tamper checks).
Extract the fields **you** define from any supporting document - payslips, proof of funds, source-of-wealth letters, tax statements, contracts, invoices - in one call. Send the file plus a `fields` definition (key, name, extraction instruction, type) and get back typed values (`text`, `number`, `date` as `YYYY-MM-DD`), an optional name-match score against the expected person or company, PDF/EXIF tamper signals, an `Approved`/`Declined`/`In Review` `status`, and a `warnings` list explaining every issue found. This is the server-to-server counterpart of the hosted Document AI workflow step (see `/core-technology/document-ai/overview`); it uses Didit's default extraction model and does not expose provider selection.
**Latency.** Extraction is LLM-based: typical calls take **5-15 seconds**, multi-page PDFs up to **~30 seconds**. Configure a client timeout of **at least 45 seconds** and do not retry before the call completes.
**Request format.** `multipart/form-data` only. `fields` is **one JSON-encoded array string** (1-30 items, at most 16 KB); bracket-style form arrays are rejected with `400`. Each item is `{key, name, instruction, type, required, is_full_name}` - `key` is the JSON key you get back (`^[a-z0-9_]{1,64}$`, unique), `instruction` tells the model what to read, `type` is `text` (default) | `number` | `date`, `required` raises `DOCUMENT_AI_MISSING_REQUIRED_FIELDS` when the value cannot be read, and at most one field may set `is_full_name: true` to mark the value compared against the expected name.
**Name matching.** Pass `expected_first_name` + `expected_last_name` (person) **or** `expected_company_name` (+ optional `expected_company_country`) - not both. The value of the `is_full_name` field (or, when none is marked, the first text field whose key looks like a name) is compared fuzzily; `name_match_score` (0-100) and `name_on_document` are always returned when both sides exist, and a score below `document_ai_name_match_score_threshold` (default 80) adds `DOCUMENT_AI_NAME_MISMATCH`, governed by `document_ai_name_mismatch_action`.
**Decision logic.** Each risk maps to a configurable action: `DECLINE` → `status: "Declined"`, `REVIEW` → `status: "In Review"`, `NO_ACTION` → informational only. Defaults mirror the workflow step: unreadable document `REVIEW`, missing required fields `REVIEW`, suspected manipulation `DECLINE`, name mismatch `NO_ACTION`, unsupported file `REVIEW`. A document that cannot be processed at all returns `400`; a readable but problematic document returns `200` with `Declined`/`In Review` - always inspect `document_ai.status` and `document_ai.warnings`, not just the HTTP code.
**Billing.** Each `200` response consumes one Document AI API credit - **$0.20 per document, no free tier** (standalone APIs never have one). When the organization's balance cannot cover the call, the endpoint returns `403` before any processing. Sandbox API keys return a deterministic mock response and are not charged.
**Persistence.** With `save_api_request=true` (default) the call is stored as an API-type session: the document, the extracted values, the field definitions and the name-match snapshot are kept, the session shows up in the Business Console, and `request_id` works with `GET /v3/session/{sessionId}/decision/`.
POST /v3/document-ai/
type EmailCheckCodeParams ¶
type EmailCheckCodeParams struct {
// The same email address used in the matching [`POST
// /v3/email/send/`](/standalone-apis/email-send) call. This is what links the
// check to the send. Required.
Email string `json:"email"`
// The OTP the end user received: 4-8 digits, or 4-8 letters/digits when
// `alphanumeric_code: true` was used at send time. Comparison is
// case-insensitive. Required.
Code string `json:"code"`
// What to do when the same address was already used and approved by a different
// user (only previously Approved verifications count) (different `vendor_data`)
// of your application. `DECLINE` flips the final `status` to `Declined`;
// `NO_ACTION` records the risk in `email.warnings` and fills `email.matches`.
DuplicatedEmailAction Opt[EmailCheckCodeParamsDuplicatedEmailAction] `json:"duplicated_email_action"`
// What to do when the address appears in known data breaches
// (`email.is_breached`). `DECLINE` flips the final `status` to `Declined`;
// `NO_ACTION` records the risk in `email.warnings`.
BreachedEmailAction Opt[EmailCheckCodeParamsBreachedEmailAction] `json:"breached_email_action"`
// What to do when the domain belongs to a disposable/temporary-mail provider
// (`email.is_disposable`). `DECLINE` flips the final `status` to `Declined`;
// `NO_ACTION` records the risk in `email.warnings`.
DisposableEmailAction Opt[EmailCheckCodeParamsDisposableEmailAction] `json:"disposable_email_action"`
// When true, also look up the social footprint of the address - the email,
// social, professional, e-commerce and entertainment platforms it is registered
// on. Billed as one `email_social` unit per request in addition to this
// endpoint's own price.
EnableSocial Opt[bool] `json:"enable_social"`
// Action when the social footprint check finds the address registered on none
// of the platforms it covers. Only NO_ACTION and DECLINE are accepted on this
// endpoint; REVIEW is available on the workflow configuration key of the same
// name.
EmailNoSocialPresenceAction Opt[EmailCheckCodeParamsEmailNoSocialPresenceAction] `json:"email_no_social_presence_action"`
}
EmailCheckCodeParams holds the parameters of Client.Email.CheckCode.
func (EmailCheckCodeParams) MarshalJSON ¶
func (r EmailCheckCodeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type EmailCheckCodeParamsBreachedEmailAction ¶
type EmailCheckCodeParamsBreachedEmailAction string
EmailCheckCodeParamsBreachedEmailAction: What to do when the address appears in known data breaches (`email.is_breached`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `email.warnings`.
EmailCheckCodeParamsBreachedEmailAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailCheckCodeParamsBreachedEmailActionNoAction EmailCheckCodeParamsBreachedEmailAction = "NO_ACTION" EmailCheckCodeParamsBreachedEmailActionDecline EmailCheckCodeParamsBreachedEmailAction = "DECLINE" )
Known values of EmailCheckCodeParamsBreachedEmailAction.
type EmailCheckCodeParamsDisposableEmailAction ¶
type EmailCheckCodeParamsDisposableEmailAction string
EmailCheckCodeParamsDisposableEmailAction: What to do when the domain belongs to a disposable/temporary-mail provider (`email.is_disposable`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `email.warnings`.
EmailCheckCodeParamsDisposableEmailAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailCheckCodeParamsDisposableEmailActionNoAction EmailCheckCodeParamsDisposableEmailAction = "NO_ACTION" EmailCheckCodeParamsDisposableEmailActionDecline EmailCheckCodeParamsDisposableEmailAction = "DECLINE" )
Known values of EmailCheckCodeParamsDisposableEmailAction.
type EmailCheckCodeParamsDuplicatedEmailAction ¶
type EmailCheckCodeParamsDuplicatedEmailAction string
EmailCheckCodeParamsDuplicatedEmailAction: What to do when the same address was already used and approved by a different user (only previously Approved verifications count) (different `vendor_data`) of your application. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `email.warnings` and fills `email.matches`.
EmailCheckCodeParamsDuplicatedEmailAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailCheckCodeParamsDuplicatedEmailActionNoAction EmailCheckCodeParamsDuplicatedEmailAction = "NO_ACTION" EmailCheckCodeParamsDuplicatedEmailActionDecline EmailCheckCodeParamsDuplicatedEmailAction = "DECLINE" )
Known values of EmailCheckCodeParamsDuplicatedEmailAction.
type EmailCheckCodeParamsEmailNoSocialPresenceAction ¶
type EmailCheckCodeParamsEmailNoSocialPresenceAction string
EmailCheckCodeParamsEmailNoSocialPresenceAction: Action when the social footprint check finds the address registered on none of the platforms it covers. Only NO_ACTION and DECLINE are accepted on this endpoint; REVIEW is available on the workflow configuration key of the same name.
EmailCheckCodeParamsEmailNoSocialPresenceAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailCheckCodeParamsEmailNoSocialPresenceActionNoAction EmailCheckCodeParamsEmailNoSocialPresenceAction = "NO_ACTION" EmailCheckCodeParamsEmailNoSocialPresenceActionDecline EmailCheckCodeParamsEmailNoSocialPresenceAction = "DECLINE" )
Known values of EmailCheckCodeParamsEmailNoSocialPresenceAction.
type EmailIntelligence ¶
type EmailIntelligence struct {
// Normalized 0-100 risk score. Higher is riskier.
Score float64 `json:"score"`
// Deliverability band (e.g., `high`).
Deliverable string `json:"deliverable"`
// `Low`, `Medium` or `High`.
BreachRiskLevel string `json:"breach_risk_level"`
// Numeric breach-risk index.
BreachRiskIndex float64 `json:"breach_risk_index"`
// `true` when the address appears in a recent breach.
IsRecentBreach bool `json:"is_recent_breach"`
// `true` when the address appears in many breaches.
IsFrequentBreached bool `json:"is_frequent_breached"`
// `true` when the domain is a throwaway provider.
IsDisposable bool `json:"is_disposable"`
// `true` when the domain is a free mail provider.
IsFreeDomain bool `json:"is_free_domain"`
// `true` when the address appears in known breaches.
IsBreached bool `json:"is_breached"`
// Number of known breaches containing the address.
NoOfBreaches float64 `json:"no_of_breaches"`
// Machine-readable codes explaining the score. Values can grow over time, so do
// not reject unknown codes.
ReasonCodes []string `json:"reason_codes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailIntelligence: Normalized email-intelligence block. Present only when the intelligence add-on ran for this email; when present it is also exposed as the `enrichment` alias with identical values.
func (*EmailIntelligence) UnmarshalJSON ¶
func (r *EmailIntelligence) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailIntelligence leniently.
type EmailMatchItem ¶
type EmailMatchItem struct {
// Session id of the other verification that used this email address.
SessionID string `json:"session_id"`
// Human-friendly sequential number of that session.
SessionNumber int64 `json:"session_number"`
// `vendor_data` of that session.
VendorData string `json:"vendor_data"`
// When that session was created (`YYYY-MM-DDTHH:MM:SSZ`).
VerificationDate string `json:"verification_date"`
// The matched email address.
Email string `json:"email"`
// Status of that session (e.g., `Approved`, `Declined`, `In Progress`).
Status string `json:"status"`
// Whether the email address is on your application's blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// For API-type sessions, the standalone API that created it; `null` for regular
// verification sessions.
APIService string `json:"api_service"`
// Where the match was found. Usually `session`; a blocklist hit via an
// organization list entry uses `list_entry`.
Source string `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailMatchItem: Another session of your application that used the same email address with a different `vendor_data`.
func (*EmailMatchItem) UnmarshalJSON ¶
func (r *EmailMatchItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailMatchItem leniently.
type EmailRiskRequest ¶
type EmailRiskRequest struct {
// Email address to score. Required.
Email string `json:"email"`
// Optional ISO 3166-1 alpha-2 or alpha-3 country hint for intelligence
// coverage.
CountryCode Opt[string] `json:"country_code"`
Signals Opt[RiskSignals] `json:"signals"`
// Your stable reference for this request. Stored on the API session and echoed
// in the response.
VendorData Opt[string] `json:"vendor_data"`
// Your non-sensitive JSON metadata. Stored on the API session and echoed in the
// response.
Metadata Opt[map[string]any] `json:"metadata"`
// When true, also look up the social footprint of the address - the email,
// social, professional, e-commerce and entertainment platforms it is registered
// on. Billed as one `email_social` unit per request in addition to this
// endpoint's own price.
EnableSocial Opt[bool] `json:"enable_social"`
}
EmailRiskRequest is a request object.
func (EmailRiskRequest) MarshalJSON ¶
func (r EmailRiskRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type EmailRiskResponse ¶
type EmailRiskResponse struct {
// Id of the API session created for this request. Store it with `vendor_data`
// if you need to correlate the result with later webhooks or console activity.
RequestID string `json:"request_id"`
// Final decision for this API session. Normally `Approved`; the risk evaluation
// can produce `In Review` or `Declined`.
Status EmailRiskResponseStatus `json:"status"`
// Echo of the `vendor_data` you sent, `null` when you did not send one.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent, `null` when you did not send one.
Metadata map[string]any `json:"metadata"`
// Timestamp of this response.
CreatedAt time.Time `json:"created_at"`
// Normalized email report, the same block used by Email Verification responses.
Email EmailRiskResponseEmail `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailRiskResponse is a response object.
func (*EmailRiskResponse) UnmarshalJSON ¶
func (r *EmailRiskResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailRiskResponse leniently.
type EmailRiskResponseEmail ¶
type EmailRiskResponseEmail struct {
// Decision for this email address. Mirrors the top-level `status`.
Status EmailRiskResponseEmailStatus `json:"status"`
// The scored address.
Email string `json:"email"`
// Whether the address appears in a known credential breach.
IsBreached bool `json:"is_breached"`
// Up to 5 most recent known breaches containing this address. Empty array when
// `is_breached` is `false`.
Breaches []EmailRiskResponseEmailBreaches `json:"breaches"`
// Whether the domain belongs to a throwaway provider.
IsDisposable bool `json:"is_disposable"`
// Whether the address was found undeliverable.
IsUndeliverable bool `json:"is_undeliverable"`
// OTP sends for this address. `0` for risk lookups.
VerificationAttempts int64 `json:"verification_attempts"`
// When the address was last verified by an OTP. `null` for risk lookups.
VerifiedAt time.Time `json:"verified_at"`
// Risk warnings recorded for this request. Empty array when there are none.
Warnings []RiskWarning `json:"warnings"`
// Chronological audit trail of the request. Empty array for risk lookups
// without sends.
Lifecycle []RiskLifecycleEvent `json:"lifecycle"`
// Other sessions of your application where the same email address was used by a
// different user (different `vendor_data`). Up to 5 entries. Empty array when
// there are no matches.
Matches []EmailMatchItem `json:"matches"`
EmailIntelligence EmailIntelligence `json:"email_intelligence"`
Enrichment EmailIntelligence `json:"enrichment"`
EmailSocial EmailSocialFootprint `json:"email_social"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailRiskResponseEmail: Normalized email report, the same block used by Email Verification responses.
func (*EmailRiskResponseEmail) UnmarshalJSON ¶
func (r *EmailRiskResponseEmail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailRiskResponseEmail leniently.
type EmailRiskResponseEmailBreaches ¶
type EmailRiskResponseEmailBreaches struct {
// Breach identifier.
Name string `json:"name"`
// Domain of the breached service.
Domain string `json:"domain"`
// Date the breach occurred.
BreachDate string `json:"breach_date"`
// Total number of accounts exposed in the breach.
BreachEmailsCount int64 `json:"breach_emails_count"`
// Human-readable description of the breach (may contain HTML markup).
Description string `json:"description"`
// URL of the breached service's logo.
LogoPath string `json:"logo_path"`
// Categories of data exposed, in snake_case (e.g., `email_addresses`,
// `passwords`).
DataClasses []string `json:"data_classes"`
// Whether the breach has been verified as legitimate.
IsVerified bool `json:"is_verified"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailRiskResponseEmailBreaches is a response object.
func (*EmailRiskResponseEmailBreaches) UnmarshalJSON ¶
func (r *EmailRiskResponseEmailBreaches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailRiskResponseEmailBreaches leniently.
type EmailRiskResponseEmailStatus ¶
type EmailRiskResponseEmailStatus string
EmailRiskResponseEmailStatus: Decision for this email address. Mirrors the top-level `status`.
EmailRiskResponseEmailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailRiskResponseEmailStatusApproved EmailRiskResponseEmailStatus = "Approved" EmailRiskResponseEmailStatusInReview EmailRiskResponseEmailStatus = "In Review" EmailRiskResponseEmailStatusDeclined EmailRiskResponseEmailStatus = "Declined" )
Known values of EmailRiskResponseEmailStatus.
type EmailRiskResponseStatus ¶
type EmailRiskResponseStatus string
EmailRiskResponseStatus: Final decision for this API session. Normally `Approved`; the risk evaluation can produce `In Review` or `Declined`.
EmailRiskResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailRiskResponseStatusApproved EmailRiskResponseStatus = "Approved" EmailRiskResponseStatusInReview EmailRiskResponseStatus = "In Review" EmailRiskResponseStatusDeclined EmailRiskResponseStatus = "Declined" )
Known values of EmailRiskResponseStatus.
type EmailSendCodeParams ¶
type EmailSendCodeParams struct {
// Recipient email address. Malformed addresses return `400`; syntactically
// valid addresses that cannot receive mail (failed DNS/MX validation) return
// `200` with `status: "Undeliverable"`. Required.
Email string `json:"email"`
// OTP format, localization, and branding options. All fields are optional.
Options Opt[EmailSendCodeParamsOptions] `json:"options"`
// Optional device and network signals about the end user, forwarded to the
// anti-fraud layer to improve detection of abusive or automated traffic. All
// fields are optional.
Signals Opt[EmailSendCodeParamsSignals] `json:"signals"`
// Optional caller-controlled identifier (your internal user id, an email, a
// UUID, etc.) persisted on the session and echoed back in the send response,
// the matching check response, webhooks, and the Business Console. Use it to
// correlate Didit's `request_id` with your user record.
VendorData Opt[string] `json:"vendor_data"`
// Optional free-form JSON object persisted on the session and echoed back in
// the send response, the matching check response, webhooks, and the Business
// Console.
Metadata Opt[map[string]any] `json:"metadata"`
}
EmailSendCodeParams holds the parameters of Client.Email.SendCode.
func (EmailSendCodeParams) MarshalJSON ¶
func (r EmailSendCodeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type EmailSendCodeParamsOptions ¶
type EmailSendCodeParamsOptions struct {
// Number of characters in the OTP (digits by default; uppercase letters and
// digits when `alphanumeric_code` is `true`).
CodeSize Opt[int64] `json:"code_size"`
// When `true`, the OTP is composed of uppercase letters `A-Z` and digits `0-9`
// instead of digits only. The `/v3/email/check/` comparison is
// case-insensitive.
AlphanumericCode Opt[bool] `json:"alphanumeric_code"`
// Language of the OTP email template. Defaults to `en`. Unsupported values
// return `400` listing all supported locales.
Locale Opt[EmailSendCodeParamsOptionsLocale] `json:"locale"`
// When `true`, the OTP email uses your application's white-label customization
// (logo, colors, sender branding) instead of the default Didit template.
UseWhiteLabelCustomization Opt[bool] `json:"use_white_label_customization"`
}
EmailSendCodeParamsOptions: OTP format, localization, and branding options. All fields are optional.
func (EmailSendCodeParamsOptions) MarshalJSON ¶
func (r EmailSendCodeParamsOptions) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type EmailSendCodeParamsOptionsLocale ¶
type EmailSendCodeParamsOptionsLocale string
EmailSendCodeParamsOptionsLocale: Language of the OTP email template. Defaults to `en`. Unsupported values return `400` listing all supported locales.
EmailSendCodeParamsOptionsLocale is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailSendCodeParamsOptionsLocaleEn EmailSendCodeParamsOptionsLocale = "en" EmailSendCodeParamsOptionsLocaleAr EmailSendCodeParamsOptionsLocale = "ar" EmailSendCodeParamsOptionsLocaleBn EmailSendCodeParamsOptionsLocale = "bn" EmailSendCodeParamsOptionsLocaleBg EmailSendCodeParamsOptionsLocale = "bg" EmailSendCodeParamsOptionsLocaleBs EmailSendCodeParamsOptionsLocale = "bs" EmailSendCodeParamsOptionsLocaleCa EmailSendCodeParamsOptionsLocale = "ca" EmailSendCodeParamsOptionsLocaleCs EmailSendCodeParamsOptionsLocale = "cs" EmailSendCodeParamsOptionsLocaleDa EmailSendCodeParamsOptionsLocale = "da" EmailSendCodeParamsOptionsLocaleDe EmailSendCodeParamsOptionsLocale = "de" EmailSendCodeParamsOptionsLocaleEl EmailSendCodeParamsOptionsLocale = "el" EmailSendCodeParamsOptionsLocaleEs EmailSendCodeParamsOptionsLocale = "es" EmailSendCodeParamsOptionsLocaleEt EmailSendCodeParamsOptionsLocale = "et" EmailSendCodeParamsOptionsLocaleFa EmailSendCodeParamsOptionsLocale = "fa" EmailSendCodeParamsOptionsLocaleFi EmailSendCodeParamsOptionsLocale = "fi" EmailSendCodeParamsOptionsLocaleFr EmailSendCodeParamsOptionsLocale = "fr" EmailSendCodeParamsOptionsLocaleHe EmailSendCodeParamsOptionsLocale = "he" EmailSendCodeParamsOptionsLocaleHi EmailSendCodeParamsOptionsLocale = "hi" EmailSendCodeParamsOptionsLocaleHr EmailSendCodeParamsOptionsLocale = "hr" EmailSendCodeParamsOptionsLocaleHu EmailSendCodeParamsOptionsLocale = "hu" EmailSendCodeParamsOptionsLocaleHy EmailSendCodeParamsOptionsLocale = "hy" EmailSendCodeParamsOptionsLocaleID EmailSendCodeParamsOptionsLocale = "id" EmailSendCodeParamsOptionsLocaleIt EmailSendCodeParamsOptionsLocale = "it" EmailSendCodeParamsOptionsLocaleJa EmailSendCodeParamsOptionsLocale = "ja" EmailSendCodeParamsOptionsLocaleKa EmailSendCodeParamsOptionsLocale = "ka" EmailSendCodeParamsOptionsLocaleKk EmailSendCodeParamsOptionsLocale = "kk" EmailSendCodeParamsOptionsLocaleKo EmailSendCodeParamsOptionsLocale = "ko" EmailSendCodeParamsOptionsLocaleKy EmailSendCodeParamsOptionsLocale = "ky" EmailSendCodeParamsOptionsLocaleLt EmailSendCodeParamsOptionsLocale = "lt" EmailSendCodeParamsOptionsLocaleLv EmailSendCodeParamsOptionsLocale = "lv" EmailSendCodeParamsOptionsLocaleCnr EmailSendCodeParamsOptionsLocale = "cnr" EmailSendCodeParamsOptionsLocaleMk EmailSendCodeParamsOptionsLocale = "mk" EmailSendCodeParamsOptionsLocaleMn EmailSendCodeParamsOptionsLocale = "mn" EmailSendCodeParamsOptionsLocaleMs EmailSendCodeParamsOptionsLocale = "ms" EmailSendCodeParamsOptionsLocaleNl EmailSendCodeParamsOptionsLocale = "nl" EmailSendCodeParamsOptionsLocaleNo EmailSendCodeParamsOptionsLocale = "no" EmailSendCodeParamsOptionsLocalePl EmailSendCodeParamsOptionsLocale = "pl" EmailSendCodeParamsOptionsLocalePtBr EmailSendCodeParamsOptionsLocale = "pt-BR" EmailSendCodeParamsOptionsLocalePt EmailSendCodeParamsOptionsLocale = "pt" EmailSendCodeParamsOptionsLocaleRo EmailSendCodeParamsOptionsLocale = "ro" EmailSendCodeParamsOptionsLocaleRu EmailSendCodeParamsOptionsLocale = "ru" EmailSendCodeParamsOptionsLocaleSk EmailSendCodeParamsOptionsLocale = "sk" EmailSendCodeParamsOptionsLocaleSl EmailSendCodeParamsOptionsLocale = "sl" EmailSendCodeParamsOptionsLocaleSo EmailSendCodeParamsOptionsLocale = "so" EmailSendCodeParamsOptionsLocaleSq EmailSendCodeParamsOptionsLocale = "sq" EmailSendCodeParamsOptionsLocaleSr EmailSendCodeParamsOptionsLocale = "sr" EmailSendCodeParamsOptionsLocaleSv EmailSendCodeParamsOptionsLocale = "sv" EmailSendCodeParamsOptionsLocaleTh EmailSendCodeParamsOptionsLocale = "th" EmailSendCodeParamsOptionsLocaleTr EmailSendCodeParamsOptionsLocale = "tr" EmailSendCodeParamsOptionsLocaleUk EmailSendCodeParamsOptionsLocale = "uk" EmailSendCodeParamsOptionsLocaleUz EmailSendCodeParamsOptionsLocale = "uz" EmailSendCodeParamsOptionsLocaleVi EmailSendCodeParamsOptionsLocale = "vi" EmailSendCodeParamsOptionsLocaleZhCn EmailSendCodeParamsOptionsLocale = "zh-CN" EmailSendCodeParamsOptionsLocaleZhTw EmailSendCodeParamsOptionsLocale = "zh-TW" EmailSendCodeParamsOptionsLocaleZh EmailSendCodeParamsOptionsLocale = "zh" )
Known values of EmailSendCodeParamsOptionsLocale.
type EmailSendCodeParamsSignals ¶
type EmailSendCodeParamsSignals struct {
// IP address of the end user's device. IPv4 or IPv6.
IP Opt[string] `json:"ip"`
// Unique identifier of the end user's device. Android: `ANDROID_ID`; iOS:
// `identifierForVendor`.
DeviceID Opt[string] `json:"device_id"`
// Platform of the end user's device.
DevicePlatform Opt[EmailSendCodeParamsSignalsDevicePlatform] `json:"device_platform"`
// Model of the end user's device.
DeviceModel Opt[string] `json:"device_model"`
// Operating-system version of the end user's device.
OsVersion Opt[string] `json:"os_version"`
// Version of your application.
AppVersion Opt[string] `json:"app_version"`
// User agent of the end user's browser or app.
UserAgent Opt[string] `json:"user_agent"`
}
EmailSendCodeParamsSignals: Optional device and network signals about the end user, forwarded to the anti-fraud layer to improve detection of abusive or automated traffic. All fields are optional.
func (EmailSendCodeParamsSignals) MarshalJSON ¶
func (r EmailSendCodeParamsSignals) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type EmailSendCodeParamsSignalsDevicePlatform ¶
type EmailSendCodeParamsSignalsDevicePlatform string
EmailSendCodeParamsSignalsDevicePlatform: Platform of the end user's device.
EmailSendCodeParamsSignalsDevicePlatform is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailSendCodeParamsSignalsDevicePlatformAndroid EmailSendCodeParamsSignalsDevicePlatform = "android" EmailSendCodeParamsSignalsDevicePlatformIos EmailSendCodeParamsSignalsDevicePlatform = "ios" EmailSendCodeParamsSignalsDevicePlatformIpados EmailSendCodeParamsSignalsDevicePlatform = "ipados" EmailSendCodeParamsSignalsDevicePlatformTvos EmailSendCodeParamsSignalsDevicePlatform = "tvos" EmailSendCodeParamsSignalsDevicePlatformWeb EmailSendCodeParamsSignalsDevicePlatform = "web" )
Known values of EmailSendCodeParamsSignalsDevicePlatform.
type EmailService ¶
type EmailService struct {
// contains filtered or unexported fields
}
EmailService holds the email operations. Use it through Client.Email.
func (*EmailService) AssessRisk ¶
func (r *EmailService) AssessRisk(ctx context.Context, params EmailRiskRequest, opts ...option.RequestOption) (*EmailRiskResponse, error)
AssessRisk: Risk-score an email address.
Return deliverability, disposable-address, breach, cross-session match, and normalized risk-intelligence signals without sending an OTP. The endpoint creates an API session and returns its id as `request_id`.
**Decision.** The top-level `status` mirrors `email.status`. It is normally `Approved`; the risk evaluation can produce `In Review` or `Declined`.
**Compatibility aliases.** Live responses expose the normalized intelligence object as both `email.email_intelligence` and `email.enrichment`. The values are identical. New integrations can read `email.enrichment`. Both keys are absent when no usable intelligence data was returned.
**Billing.** Live calls use Email Risk API pricing. The request is billable once the lookup starts, even when some best-effort fields are unavailable.
**Sandbox.** Sandbox keys validate the request and return deterministic approved data without sending an email, consuming credits, creating a session, or contributing to Networks.
**Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
**Social footprint.** Set `enable_social` to `true` to add a `email_social` block: the online platforms this address is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the address was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `email_social` unit per request on top of this endpoint's own price.
POST /v3/email/risk/
func (*EmailService) CheckCode ¶
func (r *EmailService) CheckCode(ctx context.Context, params EmailCheckCodeParams, opts ...option.RequestOption) (*EmailVerificationCheckResponse, error)
CheckCode: Check Email Code.
Verify the OTP delivered by [`POST /v3/email/send/`](/standalone-apis/email-send) and get the final verification result plus email intelligence: deliverability, breach exposure (`is_breached` and the `breaches` list from a breach-intelligence database), disposable-provider detection, and duplicate usage of the address across your sessions.
**How the check finds the verification.** Matching is by your application plus the `email` address - `request_id` is not an input. The most recent pending verification created within the last **5 minutes** is checked. If there is none (never sent, already finalized, undeliverable at send time, or older than 5 minutes) the endpoint returns `200` with `status: "Expired or Not Found"`.
**Attempt budget.** Each verification allows **3 code attempts**. The first two wrong codes return `status: "Failed"` with the attempts remaining and `email: null`; the third wrong code finalizes the verification as `Declined` with an `EMAIL_CODE_ATTEMPTS_EXCEEDED` warning and returns the full email report. Codes are compared case-insensitively (relevant for `alphanumeric_code` sends); only the most recently sent code is valid.
**Outcomes.** `Approved` - correct code and no declining risk. `Declined` - terminal: the code was correct but a declining risk matched (a `DECLINE` action below, a blocklisted address, or the address found undeliverable at finalization), or the attempt budget was exhausted. `Failed` - wrong code, attempts remaining. `Expired or Not Found` - nothing to check. On `Approved`/`Declined` the `request_id` equals the send's `request_id` (the session id) and `email` carries the full report (`is_breached`, `breaches`, `is_disposable`, `is_undeliverable`, `warnings`, `lifecycle`, `matches`); on `Failed` and `Expired or Not Found` the `request_id` is a one-off random UUID.
**Risk actions.** `duplicated_email_action`, `breached_email_action`, and `disposable_email_action` decide what happens when the corresponding risk is detected on a correct code: `DECLINE` flips the final status to `Declined`; `NO_ACTION` (default) records the risk in `email.warnings` without affecting the status.
**Billing.** Checks are free - the credit is consumed by the successful send.
**Session persistence.** A finalized check updates the session created by the send (visible in the Business Console, queryable via `GET /v3/session/{sessionId}/decision/`) and fires a `status.updated` webhook.
**Sandbox.** Sandbox API keys skip all processing: any well-formed code (`123456` included) returns a static `Approved` payload with a simplified `email` object (`status`, `email`, `is_breached`, `is_disposable`, `is_undeliverable`); malformed input still returns `400`. Nothing is persisted.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
**Social footprint.** Set `enable_social` to `true` to add a `email_social` block: the online platforms this address is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the address was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `email_social` unit per request on top of this endpoint's own price.
POST /v3/email/check/
func (*EmailService) SendCode ¶
func (r *EmailService) SendCode(ctx context.Context, params EmailSendCodeParams, opts ...option.RequestOption) (*EmailVerificationSendResponse, error)
SendCode: Send Email Code.
Send a one-time passcode (OTP) to an email address, then verify it with [`POST /v3/email/check/`](/standalone-apis/email-check).
**How send and check pair up.** Verification state is keyed by your application plus the `email` address - the check call does not take `request_id`. Each new send creates a pending verification that lives for **5 minutes**: call the check with the same address and the code the user received before the window closes. Calling send again for the same address while a verification is pending generates a fresh code for that same verification (`status: "Retry"`, same `request_id`); the previous code stops working. At most one retry is attached this way (two sends total); a further send starts a fresh verification with a new `request_id`. The 5-minute window is measured from the first send and is not extended by retries.
**Deliverability pre-check.** Before anything is sent, the address goes through syntax and DNS/MX validation. Addresses that cannot receive mail return `200` with `status: "Undeliverable"` and `reason: "email_can_not_be_delivered"` - no email is sent, nothing is billed, and the verification is immediately finalized as `Declined` (a follow-up check returns `Expired or Not Found`). A downstream send failure reports the same way.
**Code format and branding.** Codes are 4-8 characters (`options.code_size`, default 6), numeric by default; set `options.alphanumeric_code: true` for uppercase letters and digits (the check comparison is case-insensitive). The email template is localized via `options.locale` (54 supported languages) and can use your application's white-label branding via `options.use_white_label_customization`.
**Billing.** One Email Verification API credit per successful send (`status: "Success"`), charged at send time. `Retry` and `Undeliverable` sends are free, and checks are free.
**Session persistence.** Every new verification is persisted as an API-type session: `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/`, the verification appears in the Business Console, and `status.updated` webhooks fire as it progresses.
**Sandbox.** Sandbox API keys skip delivery and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Success` payload with a random `request_id`; no email is sent and nothing is persisted. Use code `123456` on the sandbox check.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/email/send/
type EmailSocialFootprint ¶
type EmailSocialFootprint struct {
// Platforms where the email address is confirmed registered.
ProfilesRegistered int64 `json:"profiles_registered"`
// Platforms evaluated for registration.
ProfilesChecked int64 `json:"profiles_checked"`
// Platforms that returned an associated name.
NamesFound int64 `json:"names_found"`
// Platforms that returned a profile photo.
PhotosFound int64 `json:"photos_found"`
// Communication platforms with detected presence.
CommunicationBreadth int64 `json:"communication_breadth"`
// Distinct platform categories with detected presence.
DigitalFootprintDiversity int64 `json:"digital_footprint_diversity"`
// Composite digital-maturity indicator, 0-10.
DigitalSophisticationIndex int64 `json:"digital_sophistication_index"`
// Profile-richness indicator, 0-10.
EngagementDepthIndex int64 `json:"engagement_depth_index"`
// Free vs paid platform mix, 0-10.
SubscriptionAffordabilityIndex int64 `json:"subscription_affordability_index"`
// Registrations on free platforms.
FreePlatforms int64 `json:"free_platforms"`
// Registrations on fully paid platforms.
FullPaidPlatforms int64 `json:"full_paid_platforms"`
// Registrations on freemium platforms.
PartialPaidPlatforms int64 `json:"partial_paid_platforms"`
// Completeness of the WhatsApp profile. Phone only; null for email.
WhatsappProfileCompleteness EmailSocialFootprintWhatsappProfileCompleteness `json:"whatsapp_profile_completeness"`
// Platforms where registration is confirmed.
RegisteredPlatforms []SocialFootprintPlatform `json:"registered_platforms"`
// Platforms checked with a negative result.
NotRegisteredPlatforms []SocialFootprintPlatform `json:"not_registered_platforms"`
// Registered count and ratio per platform category.
Categories map[string]SocialFootprintCategorySummary `json:"categories"`
// Per-platform profile details, keyed by platform, when the platform exposes
// them.
Profiles map[string]SocialFootprintProfile `json:"profiles"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailSocialFootprint: Social footprint of the email address: the online platforms it is registered on. Present only when `enable_social` was set and the check completed. Every count may be null when no data was returned for it. `profiles_registered: 0` means the platforms were checked and the email address was found on none of them - a valid, billable answer and a common synthetic-identity signal.
func (*EmailSocialFootprint) UnmarshalJSON ¶
func (r *EmailSocialFootprint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailSocialFootprint leniently.
type EmailSocialFootprintWhatsappProfileCompleteness ¶
type EmailSocialFootprintWhatsappProfileCompleteness string
EmailSocialFootprintWhatsappProfileCompleteness: Completeness of the WhatsApp profile. Phone only; null for email.
EmailSocialFootprintWhatsappProfileCompleteness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailSocialFootprintWhatsappProfileCompletenessBasic EmailSocialFootprintWhatsappProfileCompleteness = "Basic" EmailSocialFootprintWhatsappProfileCompletenessPartial EmailSocialFootprintWhatsappProfileCompleteness = "Partial" EmailSocialFootprintWhatsappProfileCompletenessComplete EmailSocialFootprintWhatsappProfileCompleteness = "Complete" EmailSocialFootprintWhatsappProfileCompletenessNotPresent EmailSocialFootprintWhatsappProfileCompleteness = "Not Present" )
Known values of EmailSocialFootprintWhatsappProfileCompleteness.
type EmailVerificationCheckResponse ¶
type EmailVerificationCheckResponse struct {
// On `Approved`/`Declined`: the session id of the matched verification -
// identical to the `request_id` returned by `POST /v3/email/send/`. On `Failed`
// and `Expired or Not Found`: a random one-off UUID that cannot be looked up
// later.
RequestID string `json:"request_id"`
// `Approved` - correct code, no declining risk. `Declined` - terminal: a
// declining risk matched or the attempt budget (3) was exhausted. `Failed` -
// wrong code, attempts remaining. `Expired or Not Found` - no pending
// verification for this address in the last 5 minutes.
Status EmailVerificationCheckResponseStatus `json:"status"`
// Human-readable explanation of the outcome, including the number of attempts
// remaining after a wrong code.
Message string `json:"message"`
// Full email report. Present (non-null) only on finalized outcomes
// (`Approved`/`Declined`); `null` on `Failed` and absent on `Expired or Not
// Found`.
Email EmailVerificationCheckResponseEmail `json:"email"`
// `vendor_data` of the matched verification's session. `null` on `Expired or
// Not Found`.
VendorData string `json:"vendor_data"`
// `metadata` of the matched verification's session. `null` on `Expired or Not
// Found`.
Metadata map[string]any `json:"metadata"`
// Timestamp of this check response.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponse is a response object.
func (*EmailVerificationCheckResponse) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponse leniently.
type EmailVerificationCheckResponseEmail ¶
type EmailVerificationCheckResponseEmail struct {
// Final status of the email verification. Matches the top-level `status` for
// finalized checks.
Status EmailVerificationCheckResponseEmailStatus `json:"status"`
// The verified email address.
Email string `json:"email"`
// `true` when the address appears in known data breaches (breach intelligence
// lookup run at finalization).
IsBreached bool `json:"is_breached"`
// Up to 5 most recent known breaches containing this address. Empty array (or
// omitted) when `is_breached` is `false`.
Breaches []EmailVerificationCheckResponseEmailBreaches `json:"breaches"`
// `true` when the domain belongs to a known disposable/temporary-mail provider.
IsDisposable bool `json:"is_disposable"`
// `true` when the address cannot receive mail (failed syntax or DNS/MX
// validation, or the message bounced).
IsUndeliverable bool `json:"is_undeliverable"`
// Number of OTP sends for this verification (1, or 2 after a retry).
VerificationAttempts int64 `json:"verification_attempts"`
// When the correct code was entered. `null` if the verification was never
// approved.
VerifiedAt time.Time `json:"verified_at"`
// Risk warnings recorded during the verification (duplicate, breached,
// disposable, undeliverable, attempts exceeded, blocklist, etc.). Empty array
// when there are none.
Warnings []EmailVerificationCheckResponseEmailWarnings `json:"warnings"`
// Chronological audit trail of the verification. Event `type` is one of
// `EMAIL_VERIFICATION_MESSAGE_SENT`, `EMAIL_VERIFICATION_RETRY_MESSAGE_SENT`,
// `VALID_CODE_ENTERED`, `INVALID_CODE_ENTERED`, `EMAIL_VERIFICATION_APPROVED`,
// `EMAIL_VERIFICATION_DECLINED`, `EMAIL_VERIFICATION_IN_REVIEW`,
// `EMAIL_VERIFICATION_EXPIRED`.
Lifecycle []EmailVerificationCheckResponseEmailLifecycle `json:"lifecycle"`
// Other sessions of your application (KYC, KYB, or API) where the same email
// address was used by a different user (different `vendor_data`). Up to 5
// entries; a synthetic list-entry blocklist match is prepended when present
// (and only when no session-derived blocklisted email exists) - session-derived
// matches keep created_at order. Empty array when there are no matches.
Matches []EmailVerificationCheckResponseEmailMatches `json:"matches"`
EmailSocial EmailSocialFootprint `json:"email_social"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponseEmail: Full email report. Present (non-null) only on finalized outcomes (`Approved`/`Declined`); `null` on `Failed` and absent on `Expired or Not Found`.
func (*EmailVerificationCheckResponseEmail) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponseEmail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponseEmail leniently.
type EmailVerificationCheckResponseEmailBreaches ¶
type EmailVerificationCheckResponseEmailBreaches struct {
// Breach identifier.
Name string `json:"name"`
// Domain of the breached service.
Domain string `json:"domain"`
// Date the breach occurred.
BreachDate string `json:"breach_date"`
// Total number of accounts exposed in the breach.
BreachEmailsCount int64 `json:"breach_emails_count"`
// Human-readable description of the breach (may contain HTML markup).
Description string `json:"description"`
// URL of the breached service's logo.
LogoPath string `json:"logo_path"`
// Categories of data exposed, in snake_case (e.g., `email_addresses`,
// `passwords`).
DataClasses []string `json:"data_classes"`
// Whether the breach has been verified as legitimate.
IsVerified bool `json:"is_verified"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponseEmailBreaches is a response object.
func (*EmailVerificationCheckResponseEmailBreaches) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponseEmailBreaches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponseEmailBreaches leniently.
type EmailVerificationCheckResponseEmailLifecycle ¶
type EmailVerificationCheckResponseEmailLifecycle struct {
// Event type.
Type string `json:"type"`
// When the event happened.
Timestamp time.Time `json:"timestamp"`
// Event-specific payload. Send events: `{status, reason}`. Code-entry events:
// `{code_tried, status}`. Final-status events: `null`, or `{reason}` when
// declined or in review.
Details map[string]any `json:"details"`
// USD amount billed for this event. Non-zero only on the first successful send;
// 0 for retries, code entries, and status events.
Fee float64 `json:"fee"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponseEmailLifecycle is a response object.
func (*EmailVerificationCheckResponseEmailLifecycle) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponseEmailLifecycle) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponseEmailLifecycle leniently.
type EmailVerificationCheckResponseEmailMatches ¶
type EmailVerificationCheckResponseEmailMatches struct {
// Session id of the other verification that used this email address.
SessionID string `json:"session_id"`
// Human-friendly sequential number of that session.
SessionNumber int64 `json:"session_number"`
// `vendor_data` of that session.
VendorData string `json:"vendor_data"`
// When that session was created (`YYYY-MM-DDTHH:MM:SSZ`).
VerificationDate string `json:"verification_date"`
// The matched email address.
Email string `json:"email"`
// Status of that session (e.g., `Approved`, `Declined`, `In Progress`).
Status string `json:"status"`
// Whether the email address is on your application's blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// For API-type sessions, the standalone API that created it (e.g.,
// `PHONE_VERIFICATION`); `null` for regular verification sessions.
APIService string `json:"api_service"`
// Where the match was found. Usually `session`; a blocklist hit via an
// organization list entry prepends a synthetic match with `source:
// "list_entry"` and null `session_id`/`session_number`.
Source string `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponseEmailMatches is a response object.
func (*EmailVerificationCheckResponseEmailMatches) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponseEmailMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponseEmailMatches leniently.
type EmailVerificationCheckResponseEmailStatus ¶
type EmailVerificationCheckResponseEmailStatus string
EmailVerificationCheckResponseEmailStatus: Final status of the email verification. Matches the top-level `status` for finalized checks.
EmailVerificationCheckResponseEmailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailVerificationCheckResponseEmailStatusApproved EmailVerificationCheckResponseEmailStatus = "Approved" EmailVerificationCheckResponseEmailStatusDeclined EmailVerificationCheckResponseEmailStatus = "Declined" EmailVerificationCheckResponseEmailStatusInReview EmailVerificationCheckResponseEmailStatus = "In Review" EmailVerificationCheckResponseEmailStatusNotFinished EmailVerificationCheckResponseEmailStatus = "Not Finished" EmailVerificationCheckResponseEmailStatusExpired EmailVerificationCheckResponseEmailStatus = "Expired" )
Known values of EmailVerificationCheckResponseEmailStatus.
type EmailVerificationCheckResponseEmailWarnings ¶
type EmailVerificationCheckResponseEmailWarnings struct {
// Feature that produced the warning. Always `EMAIL` here.
Feature string `json:"feature"`
// Machine-readable risk code.
Risk string `json:"risk"`
// Risk-specific context (e.g., the duplicated session id for duplicate risks).
// `null` when the risk carries no extra data.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` risks decline the verification, `warning` flags it for
// review, `information` is recorded without affecting the status.
LogType EmailVerificationCheckResponseEmailWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationCheckResponseEmailWarnings is a response object.
func (*EmailVerificationCheckResponseEmailWarnings) UnmarshalJSON ¶
func (r *EmailVerificationCheckResponseEmailWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationCheckResponseEmailWarnings leniently.
type EmailVerificationCheckResponseEmailWarningsLogType ¶
type EmailVerificationCheckResponseEmailWarningsLogType string
EmailVerificationCheckResponseEmailWarningsLogType: Severity. `error` risks decline the verification, `warning` flags it for review, `information` is recorded without affecting the status.
EmailVerificationCheckResponseEmailWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailVerificationCheckResponseEmailWarningsLogTypeError EmailVerificationCheckResponseEmailWarningsLogType = "error" EmailVerificationCheckResponseEmailWarningsLogTypeWarning EmailVerificationCheckResponseEmailWarningsLogType = "warning" EmailVerificationCheckResponseEmailWarningsLogTypeInformation EmailVerificationCheckResponseEmailWarningsLogType = "information" )
Known values of EmailVerificationCheckResponseEmailWarningsLogType.
type EmailVerificationCheckResponseStatus ¶
type EmailVerificationCheckResponseStatus string
EmailVerificationCheckResponseStatus: `Approved` - correct code, no declining risk. `Declined` - terminal: a declining risk matched or the attempt budget (3) was exhausted. `Failed` - wrong code, attempts remaining. `Expired or Not Found` - no pending verification for this address in the last 5 minutes.
EmailVerificationCheckResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailVerificationCheckResponseStatusApproved EmailVerificationCheckResponseStatus = "Approved" EmailVerificationCheckResponseStatusDeclined EmailVerificationCheckResponseStatus = "Declined" EmailVerificationCheckResponseStatusFailed EmailVerificationCheckResponseStatus = "Failed" EmailVerificationCheckResponseStatusExpiredOrNotFound EmailVerificationCheckResponseStatus = "Expired or Not Found" )
Known values of EmailVerificationCheckResponseStatus.
type EmailVerificationSendResponse ¶
type EmailVerificationSendResponse struct {
// Session id of the verification. A `Retry` send returns the same `request_id`
// as the original send. This id appears in the Business Console, is returned
// again by a finalized `POST /v3/email/check/`, and can be passed to `GET
// /v3/session/{sessionId}/decision/`.
RequestID string `json:"request_id"`
// `Success` - OTP emailed to a new verification (billed). `Retry` - fresh OTP
// emailed for the pending verification created by a previous send (free).
// `Undeliverable` - the address failed deliverability validation or the message
// could not be sent; the verification is immediately finalized as `Declined`
// and nothing is billed.
Status EmailVerificationSendResponseStatus `json:"status"`
// `email_can_not_be_delivered` when `status` is `Undeliverable`; `null`
// otherwise.
Reason EmailVerificationSendResponseReason `json:"reason"`
// Echo of the `vendor_data` stored on the session (from the first send).
VendorData string `json:"vendor_data"`
// Echo of the `metadata` stored on the session (from the first send).
Metadata map[string]any `json:"metadata"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EmailVerificationSendResponse is a response object.
func (*EmailVerificationSendResponse) UnmarshalJSON ¶
func (r *EmailVerificationSendResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EmailVerificationSendResponse leniently.
type EmailVerificationSendResponseReason ¶
type EmailVerificationSendResponseReason string
EmailVerificationSendResponseReason: `email_can_not_be_delivered` when `status` is `Undeliverable`; `null` otherwise.
EmailVerificationSendResponseReason is a string with known values below. The set is open: other values may appear and never cause an error.
const (
EmailVerificationSendResponseReasonEmailCanNotBeDelivered EmailVerificationSendResponseReason = "email_can_not_be_delivered"
)
Known values of EmailVerificationSendResponseReason.
type EmailVerificationSendResponseStatus ¶
type EmailVerificationSendResponseStatus string
EmailVerificationSendResponseStatus: `Success` - OTP emailed to a new verification (billed). `Retry` - fresh OTP emailed for the pending verification created by a previous send (free). `Undeliverable` - the address failed deliverability validation or the message could not be sent; the verification is immediately finalized as `Declined` and nothing is billed.
EmailVerificationSendResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EmailVerificationSendResponseStatusSuccess EmailVerificationSendResponseStatus = "Success" EmailVerificationSendResponseStatusRetry EmailVerificationSendResponseStatus = "Retry" EmailVerificationSendResponseStatusUndeliverable EmailVerificationSendResponseStatus = "Undeliverable" )
Known values of EmailVerificationSendResponseStatus.
type EntityNetworkMembership ¶
type EntityNetworkMembership struct {
Network NetworkListItem `json:"network"`
Subject map[string]any `json:"subject"`
SignalTypes []EntityNetworkMembershipSignalTypes `json:"signal_types"`
SignalCount int64 `json:"signal_count"`
JoinedAt time.Time `json:"joined_at"`
LastSeenAt time.Time `json:"last_seen_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EntityNetworkMembership is a response object.
func (*EntityNetworkMembership) UnmarshalJSON ¶
func (r *EntityNetworkMembership) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EntityNetworkMembership leniently.
type EntityNetworkMembershipList ¶
type EntityNetworkMembershipList struct {
Results []EntityNetworkMembership `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
EntityNetworkMembershipList is a response object.
func (*EntityNetworkMembershipList) UnmarshalJSON ¶
func (r *EntityNetworkMembershipList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes EntityNetworkMembershipList leniently.
type EntityNetworkMembershipSignalTypes ¶
type EntityNetworkMembershipSignalTypes string
EntityNetworkMembershipSignalTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( EntityNetworkMembershipSignalTypesIPAddress EntityNetworkMembershipSignalTypes = "ip_address" EntityNetworkMembershipSignalTypesDevice EntityNetworkMembershipSignalTypes = "device" EntityNetworkMembershipSignalTypesFace EntityNetworkMembershipSignalTypes = "face" EntityNetworkMembershipSignalTypesDocumentNumber EntityNetworkMembershipSignalTypes = "document_number" EntityNetworkMembershipSignalTypesPhone EntityNetworkMembershipSignalTypes = "phone" EntityNetworkMembershipSignalTypesEmail EntityNetworkMembershipSignalTypes = "email" EntityNetworkMembershipSignalTypesAddress EntityNetworkMembershipSignalTypes = "address" )
Known values of EntityNetworkMembershipSignalTypes.
type Error ¶
type Error interface {
error
// contains filtered or unexported methods
}
Error is implemented by every error this module returns, so
var e didit.Error
if errors.As(err, &e) { ... }
tells SDK errors apart from anything else. Use errors.As with the concrete types below to read their fields.
type FaceMatchCompareParams ¶
type FaceMatchCompareParams struct {
// Live or candidate face image to verify (e.g. a selfie). Submit a single
// front-facing photo with the subject's face clearly visible and well lit.
// Allowed extensions: `tiff`, `jpg`, `jpeg`, `png`, `webp`. Maximum upload
// size: **5 MB** (larger files are rejected with `400`). Images are
// automatically compressed to ~0.5 MB before processing, so very high
// resolutions do not improve accuracy. Required.
UserImage File `json:"-" form:"user_image"`
// Reference face image to compare against (e.g. an ID document portrait or a
// previously enrolled photo). Same format and size limits as `user_image`.
// Required.
RefImage File `json:"-" form:"ref_image"`
// Similarity threshold (0-100) that drives the response `status`. A computed
// score **at or below** this value sets `status` to `Declined` and adds a
// `LOW_FACE_MATCH_SIMILARITY` warning; a score strictly above it returns
// `Approved`. Default `30` is permissive - raise it (e.g. `50`-`60`) for
// stricter verification. Values outside 0-100 return `400`.
FaceMatchScoreDeclineThreshold Opt[float64] `json:"face_match_score_decline_threshold"`
// When `true`, the service tries the input images in 90-degree increments (0,
// 90, 180, 270) and uses the orientation that yields the best face detection -
// useful for mobile captures with missing EXIF orientation. Adds latency, so
// only enable it if you cannot guarantee upright images.
RotateImage Opt[bool] `json:"rotate_image"`
// When `true` (default), persists the call as an API-type session - visible in
// the Business Console, retrievable via `GET /v3/session/{sessionId}/decision/`
// using the returned `request_id`, and announced through a `status.updated`
// webhook. When `false`, nothing is stored and `request_id` is a transient UUID
// for response correlation only.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque string (your internal user id, email, UUID…) stored on the
// persisted session and echoed back in the response. Use it to correlate API
// calls with your own records and to filter sessions later.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back in the response. In multipart requests, send it as a
// JSON-encoded string field (e.g. `metadata={"flow":"login"}`) - it is parsed
// into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
FaceMatchCompareParams holds the parameters of Client.FaceMatch.Compare.
func (FaceMatchCompareParams) MarshalJSON ¶
func (r FaceMatchCompareParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FaceMatchCompareResponse ¶
type FaceMatchCompareResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
FaceMatch FaceMatchCompareResponseFaceMatch `json:"face_match"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated, e.g.
// `2026-06-12T01:04:42.763237+00:00`.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponse is a response object.
func (*FaceMatchCompareResponse) UnmarshalJSON ¶
func (r *FaceMatchCompareResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponse leniently.
type FaceMatchCompareResponseFaceMatch ¶
type FaceMatchCompareResponseFaceMatch struct {
// `Approved` when the similarity score is strictly above
// `face_match_score_decline_threshold` and a score could be computed;
// `Declined` otherwise (a warning explains why).
Status FaceMatchCompareResponseFaceMatchStatus `json:"status"`
// Similarity score from 0 to 100 - the model's confidence that both images
// depict the same person. Rounded to two decimals only when `save_api_request`
// is true; with `save_api_request=false` the raw float is returned. `null` when
// no face pair could be scored (with the default `save_api_request=true`); with
// `save_api_request=false` the same condition can surface as `score: 0`. Either
// way a `NO_REFERENCE_IMAGE` warning is present and `status` is `Declined`.
Score float64 `json:"score"`
// Face-detection results for the analyzed images.
UserImage FaceMatchCompareResponseFaceMatchUserImage `json:"user_image"`
// Face-detection results for the reference image, same shape as `user_image`.
RefImage FaceMatchCompareResponseFaceMatchRefImage `json:"ref_image"`
// Empty on a clean approval. `NO_REFERENCE_IMAGE` (`error`) - no face pair
// could be scored; `LOW_FACE_MATCH_SIMILARITY` (`error`) - score at or below
// the decline threshold. Any of these sets `status` to `Declined`.
Warnings []FaceMatchCompareResponseFaceMatchWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatch is a response object.
func (*FaceMatchCompareResponseFaceMatch) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatch leniently.
type FaceMatchCompareResponseFaceMatchRefImage ¶
type FaceMatchCompareResponseFaceMatchRefImage struct {
// One entry per detected face.
Entities []FaceMatchCompareResponseFaceMatchRefImageEntities `json:"entities"`
BestAngle int64 `json:"best_angle"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatchRefImage: Face-detection results for the reference image, same shape as `user_image`.
func (*FaceMatchCompareResponseFaceMatchRefImage) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatchRefImage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatchRefImage leniently.
type FaceMatchCompareResponseFaceMatchRefImageEntities ¶
type FaceMatchCompareResponseFaceMatchRefImageEntities struct {
// Bounding box of the detected face as `[x_min, y_min, x_max, y_max]` pixel
// coordinates in the processed image.
Bbox []int64 `json:"bbox"`
// Face-detection confidence (0-1).
Confidence float64 `json:"confidence"`
// Model-estimated age of the detected face, in years. Informational only - it
// does not affect the face-match decision.
Age float64 `json:"age"`
// Model-predicted gender of the detected face (`male` or `female`).
// Informational only.
Gender string `json:"gender"`
// Reserved field - always `null` in responses from this endpoint.
Race string `json:"race"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatchRefImageEntities is a response object.
func (*FaceMatchCompareResponseFaceMatchRefImageEntities) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatchRefImageEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatchRefImageEntities leniently.
type FaceMatchCompareResponseFaceMatchStatus ¶
type FaceMatchCompareResponseFaceMatchStatus string
FaceMatchCompareResponseFaceMatchStatus: `Approved` when the similarity score is strictly above `face_match_score_decline_threshold` and a score could be computed; `Declined` otherwise (a warning explains why).
FaceMatchCompareResponseFaceMatchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceMatchCompareResponseFaceMatchStatusApproved FaceMatchCompareResponseFaceMatchStatus = "Approved" FaceMatchCompareResponseFaceMatchStatusDeclined FaceMatchCompareResponseFaceMatchStatus = "Declined" )
Known values of FaceMatchCompareResponseFaceMatchStatus.
type FaceMatchCompareResponseFaceMatchUserImage ¶
type FaceMatchCompareResponseFaceMatchUserImage struct {
// One entry per detected face.
Entities []FaceMatchCompareResponseFaceMatchUserImageEntities `json:"entities"`
// Rotation (degrees: 0, 90, 180, or 270) that produced the best face detection.
// Only non-zero when `rotate_image=true` corrected the orientation.
BestAngle int64 `json:"best_angle"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatchUserImage: Face-detection results for the analyzed images.
func (*FaceMatchCompareResponseFaceMatchUserImage) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatchUserImage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatchUserImage leniently.
type FaceMatchCompareResponseFaceMatchUserImageEntities ¶
type FaceMatchCompareResponseFaceMatchUserImageEntities struct {
// Bounding box of the detected face as `[x_min, y_min, x_max, y_max]` pixel
// coordinates in the processed image.
Bbox []int64 `json:"bbox"`
// Face-detection confidence (0-1).
Confidence float64 `json:"confidence"`
// Model-estimated age of the detected face, in years. Informational only - it
// does not affect the face-match decision.
Age float64 `json:"age"`
// Model-predicted gender of the detected face (`male` or `female`).
// Informational only.
Gender string `json:"gender"`
// Reserved field - always `null` in responses from this endpoint.
Race string `json:"race"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatchUserImageEntities is a response object.
func (*FaceMatchCompareResponseFaceMatchUserImageEntities) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatchUserImageEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatchUserImageEntities leniently.
type FaceMatchCompareResponseFaceMatchWarnings ¶
type FaceMatchCompareResponseFaceMatchWarnings struct {
// Machine-readable risk code.
Risk FaceMatchCompareResponseFaceMatchWarningsRisk `json:"risk"`
// Feature that raised the warning. Always `FACEMATCH` on this endpoint.
Feature FaceMatchCompareResponseFaceMatchWarningsFeature `json:"feature"`
// Always `null` for face-match warnings.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` warnings drive `status` to `Declined`; `warning` and
// `information` entries are advisory and never decline on their own.
LogType FaceMatchCompareResponseFaceMatchWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceMatchCompareResponseFaceMatchWarnings is a response object.
func (*FaceMatchCompareResponseFaceMatchWarnings) UnmarshalJSON ¶
func (r *FaceMatchCompareResponseFaceMatchWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceMatchCompareResponseFaceMatchWarnings leniently.
type FaceMatchCompareResponseFaceMatchWarningsFeature ¶
type FaceMatchCompareResponseFaceMatchWarningsFeature string
FaceMatchCompareResponseFaceMatchWarningsFeature: Feature that raised the warning. Always `FACEMATCH` on this endpoint.
FaceMatchCompareResponseFaceMatchWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
FaceMatchCompareResponseFaceMatchWarningsFeatureFacematch FaceMatchCompareResponseFaceMatchWarningsFeature = "FACEMATCH"
)
Known values of FaceMatchCompareResponseFaceMatchWarningsFeature.
type FaceMatchCompareResponseFaceMatchWarningsLogType ¶
type FaceMatchCompareResponseFaceMatchWarningsLogType string
FaceMatchCompareResponseFaceMatchWarningsLogType: Severity. `error` warnings drive `status` to `Declined`; `warning` and `information` entries are advisory and never decline on their own.
FaceMatchCompareResponseFaceMatchWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceMatchCompareResponseFaceMatchWarningsLogTypeError FaceMatchCompareResponseFaceMatchWarningsLogType = "error" FaceMatchCompareResponseFaceMatchWarningsLogTypeWarning FaceMatchCompareResponseFaceMatchWarningsLogType = "warning" FaceMatchCompareResponseFaceMatchWarningsLogTypeInformation FaceMatchCompareResponseFaceMatchWarningsLogType = "information" )
Known values of FaceMatchCompareResponseFaceMatchWarningsLogType.
type FaceMatchCompareResponseFaceMatchWarningsRisk ¶
type FaceMatchCompareResponseFaceMatchWarningsRisk string
FaceMatchCompareResponseFaceMatchWarningsRisk: Machine-readable risk code.
FaceMatchCompareResponseFaceMatchWarningsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceMatchCompareResponseFaceMatchWarningsRiskNoReferenceImage FaceMatchCompareResponseFaceMatchWarningsRisk = "NO_REFERENCE_IMAGE" FaceMatchCompareResponseFaceMatchWarningsRiskLowFaceMatchSimilarity FaceMatchCompareResponseFaceMatchWarningsRisk = "LOW_FACE_MATCH_SIMILARITY" )
Known values of FaceMatchCompareResponseFaceMatchWarningsRisk.
type FaceMatchService ¶
type FaceMatchService struct {
// contains filtered or unexported fields
}
FaceMatchService holds the face_match operations. Use it through Client.FaceMatch.
func (*FaceMatchService) Compare ¶
func (r *FaceMatchService) Compare(ctx context.Context, params FaceMatchCompareParams, opts ...option.RequestOption) (*FaceMatchCompareResponse, error)
Compare: Face Match.
Compare two face images (1:1) and get back a similarity `score` (0-100) plus an `Approved`/`Declined` `status`.
**How it works.** Both images are decoded and analyzed by a biometric model (set `rotate_image=true` if captures may be sideways or upside down), then a similarity score between the two faces is computed. A score **strictly above** `face_match_score_decline_threshold` (default `30`) returns `status: "Approved"`; a score at or below it returns `Declined` with a `LOW_FACE_MATCH_SIMILARITY` warning. If no face pair can be scored at all, the call still returns `200` with `status: "Declined"` and a `NO_REFERENCE_IMAGE` warning - `score` is `null` on the default save path, or `0` with `save_api_request=false`. Submit one clear, front-facing face per image for best results.
**Billing.** Each `200` response consumes one Face Match API credit (standalone APIs have no free tier). When the organization's balance cannot cover the call, the endpoint returns `403` with the not-enough-credits error before any image processing.
**Session persistence (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session: it appears in the Business Console, the returned `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/`, both images are stored as the session's face-match source/target images, and a `status.updated` webhook is emitted to your configured webhook endpoints. When `false`, nothing is stored and `request_id` is a one-off correlation UUID that cannot be looked up later.
**Face search index.** This endpoint never enrolls faces into your face search index and never runs blocklist or duplicate screening - use `POST /v3/passive-liveness/` or `POST /v3/face-search/` for those.
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload, no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/face-match/
type FaceSearchSearchParams ¶
type FaceSearchSearchParams struct {
// Front-facing face image to search with. Allowed extensions: `tiff`, `jpg`,
// `jpeg`, `png`, `webp`. Maximum upload size: **5 MB** (larger files are
// rejected with `400`). Images are automatically compressed to ~0.5 MB before
// processing, so very high resolutions do not improve accuracy. The image must
// contain at least one detectable face - otherwise the endpoint returns `400`.
// When several faces are present, the largest one is searched and a
// `MULTIPLE_FACES_DETECTED` warning is added. Required.
UserImage File `json:"-" form:"user_image"`
// Search policy. `most_similar` (default) ranks every enrolled face in your
// application by similarity. `blocklisted_or_approved` restricts candidates to
// blocklisted faces, allowlisted faces, faces from approved sessions, and
// imported user-profile faces - with blocklisted entries ranked first.
SearchType Opt[FaceSearchSearchParamsSearchType] `json:"search_type"`
// When `true`, the service tries 90-degree rotations of the input and uses the
// orientation that yields the best face detection. Useful when EXIF orientation
// is missing. Adds latency.
RotateImage Opt[bool] `json:"rotate_image"`
// When `true` (default), persists the call as an API-type session, emits a
// `status.updated` webhook, presigns `match_image_url` values, and enrolls the
// searched face into your face search index (Face Search enrollments are
// excluded from future searches). When `false`, the search is one-shot - no
// session is stored and the face is not enrolled.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque identifier (your user id, email, UUID…) stored on the
// persisted session and echoed back. It does not exclude same-user faces from
// the search results.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back. In multipart requests, send it as a JSON-encoded string
// field - it is parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
FaceSearchSearchParams holds the parameters of Client.FaceSearch.Search.
func (FaceSearchSearchParams) MarshalJSON ¶
func (r FaceSearchSearchParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FaceSearchSearchParamsSearchType ¶
type FaceSearchSearchParamsSearchType string
FaceSearchSearchParamsSearchType: Search policy. `most_similar` (default) ranks every enrolled face in your application by similarity. `blocklisted_or_approved` restricts candidates to blocklisted faces, allowlisted faces, faces from approved sessions, and imported user-profile faces - with blocklisted entries ranked first.
FaceSearchSearchParamsSearchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceSearchSearchParamsSearchTypeMostSimilar FaceSearchSearchParamsSearchType = "most_similar" FaceSearchSearchParamsSearchTypeBlocklistedOrApproved FaceSearchSearchParamsSearchType = "blocklisted_or_approved" )
Known values of FaceSearchSearchParamsSearchType.
type FaceSearchSearchResponse ¶
type FaceSearchSearchResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
FaceSearch FaceSearchSearchResponseFaceSearch `json:"face_search"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated, e.g.
// `2026-06-12T01:04:42.763237+00:00`.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponse is a response object.
func (*FaceSearchSearchResponse) UnmarshalJSON ¶
func (r *FaceSearchSearchResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponse leniently.
type FaceSearchSearchResponseFaceSearch ¶
type FaceSearchSearchResponseFaceSearch struct {
// `Declined` only when a `FACE_IN_BLOCKLIST` or `POSSIBLE_FACE_IN_BLOCKLIST`
// warning fired. Duplicate matches and multiple-face warnings never decline.
Status FaceSearchSearchResponseFaceSearchStatus `json:"status"`
// Number of entries in `matches` (0-5).
TotalMatches int64 `json:"total_matches"`
// Up to 5 faces from your face search index that exceed the similarity floor,
// ordered by similarity (with blocklisted entries ranked first when
// `search_type=blocklisted_or_approved`). Empty when no enrolled face is
// similar enough.
Matches []FaceSearchSearchResponseFaceSearchMatches `json:"matches"`
// Face-detection results for the submitted image. Entries here carry only
// `bbox` and `confidence`.
UserImage FaceSearchSearchResponseFaceSearchUserImage `json:"user_image"`
// Risk signals. `FACE_IN_BLOCKLIST` / `POSSIBLE_FACE_IN_BLOCKLIST` (`error`)
// decline the search; `MULTIPLE_FACES_DETECTED` (`warning`) and
// `DUPLICATED_FACE` / `POSSIBLE_DUPLICATED_FACE` (`information`) are advisory.
Warnings []FaceSearchSearchResponseFaceSearchWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearch is a response object.
func (*FaceSearchSearchResponseFaceSearch) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearch leniently.
type FaceSearchSearchResponseFaceSearchMatches ¶
type FaceSearchSearchResponseFaceSearchMatches struct {
// Id of the verification session the matched face belongs to. `null` when
// `source` is `imported`, `list_entry`, or `retained_template`.
SessionID string `json:"session_id"`
// Human-friendly session number shown in the Business Console. `null` for
// non-session matches.
SessionNumber int64 `json:"session_number"`
// Similarity between the submitted face and the matched face (0-100).
SimilarityPercentage float64 `json:"similarity_percentage"`
// Where the matched face was enrolled from: `session` - a verification session
// or a saved standalone API call; `imported` - a face uploaded directly to a
// User profile; `list_entry` - a face attached to one of your lists;
// `retained_template` - an image-free biometric template stored on a User,
// listed under `/v3/biometric-templates/`.
Source FaceSearchSearchResponseFaceSearchMatchesSource `json:"source"`
// `vendor_data` of the matched session or linked User for imported and
// retained-template faces.
VendorData string `json:"vendor_data"`
// Linked User id. `null` for list entries and session matches without a User.
VendorUserID string `json:"vendor_user_id"`
// Id of the retained biometric template. Set only when `source` is
// `retained_template`; `null` otherwise.
BiometricTemplateID string `json:"biometric_template_id"`
// When the matched face was originally captured, or when a retained template
// was created (`YYYY-MM-DDThh:mm:ssZ`). `null` for `list_entry` matches.
VerificationDate time.Time `json:"verification_date"`
// Identity data extracted during the matched session's document verification.
// `null` when the matched session has no document data (e.g. liveness-only
// sessions) and always `null` for `retained_template` matches. For `source:
// imported` matches it is populated from the User profile instead: `full_name`
// set, `document_type`/`document_number` null.
UserDetails FaceSearchSearchResponseFaceSearchMatchesUserDetails `json:"user_details"`
// Time-limited URL (`https://<media-host>/...`) of the matched face's reference
// image when `save_api_request=true`. With `save_api_request=false` this is an
// internal storage path that is not directly downloadable. Always `null` for
// `retained_template` matches because retained templates contain no image.
MatchImageURL string `json:"match_image_url"`
// Status of the matched session (`Approved`, `Declined`, `In Review`, …).
// `null` for `imported`/`list_entry` matches.
Status string `json:"status"`
// `true` when the matched face is on your face blocklist. Any sufficiently
// similar blocklisted match declines the search.
IsBlocklisted bool `json:"is_blocklisted"`
// `true` when the matched face is on one of your allowlists. Allowlisted
// matches suppress duplicate warnings.
IsAllowlisted bool `json:"is_allowlisted"`
// Set when the matched face was enrolled by a standalone API call (e.g.
// `PASSIVE_LIVENESS`); `null` for regular verification sessions and imported
// faces.
APIService string `json:"api_service"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearchMatches is a response object.
func (*FaceSearchSearchResponseFaceSearchMatches) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearchMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearchMatches leniently.
type FaceSearchSearchResponseFaceSearchMatchesSource ¶
type FaceSearchSearchResponseFaceSearchMatchesSource string
FaceSearchSearchResponseFaceSearchMatchesSource: Where the matched face was enrolled from: `session` - a verification session or a saved standalone API call; `imported` - a face uploaded directly to a User profile; `list_entry` - a face attached to one of your lists; `retained_template` - an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`.
FaceSearchSearchResponseFaceSearchMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceSearchSearchResponseFaceSearchMatchesSourceSession FaceSearchSearchResponseFaceSearchMatchesSource = "session" FaceSearchSearchResponseFaceSearchMatchesSourceImported FaceSearchSearchResponseFaceSearchMatchesSource = "imported" FaceSearchSearchResponseFaceSearchMatchesSourceListEntry FaceSearchSearchResponseFaceSearchMatchesSource = "list_entry" FaceSearchSearchResponseFaceSearchMatchesSourceRetainedTemplate FaceSearchSearchResponseFaceSearchMatchesSource = "retained_template" )
Known values of FaceSearchSearchResponseFaceSearchMatchesSource.
type FaceSearchSearchResponseFaceSearchMatchesUserDetails ¶
type FaceSearchSearchResponseFaceSearchMatchesUserDetails struct {
FullName string `json:"full_name"`
DocumentType string `json:"document_type"`
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearchMatchesUserDetails: Identity data extracted during the matched session's document verification. `null` when the matched session has no document data (e.g. liveness-only sessions) and always `null` for `retained_template` matches. For `source: imported` matches it is populated from the User profile instead: `full_name` set, `document_type`/`document_number` null.
func (*FaceSearchSearchResponseFaceSearchMatchesUserDetails) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearchMatchesUserDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearchMatchesUserDetails leniently.
type FaceSearchSearchResponseFaceSearchStatus ¶
type FaceSearchSearchResponseFaceSearchStatus string
FaceSearchSearchResponseFaceSearchStatus: `Declined` only when a `FACE_IN_BLOCKLIST` or `POSSIBLE_FACE_IN_BLOCKLIST` warning fired. Duplicate matches and multiple-face warnings never decline.
FaceSearchSearchResponseFaceSearchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceSearchSearchResponseFaceSearchStatusApproved FaceSearchSearchResponseFaceSearchStatus = "Approved" FaceSearchSearchResponseFaceSearchStatusDeclined FaceSearchSearchResponseFaceSearchStatus = "Declined" )
Known values of FaceSearchSearchResponseFaceSearchStatus.
type FaceSearchSearchResponseFaceSearchUserImage ¶
type FaceSearchSearchResponseFaceSearchUserImage struct {
// One entry per detected face. The largest face is the one searched.
Entities []FaceSearchSearchResponseFaceSearchUserImageEntities `json:"entities"`
// Rotation (degrees) that produced the best face detection; non-zero only when
// `rotate_image=true` corrected the orientation. Never null on this endpoint
// (defaults to 0 when the model omits it).
BestAngle int64 `json:"best_angle"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearchUserImage: Face-detection results for the submitted image. Entries here carry only `bbox` and `confidence`.
func (*FaceSearchSearchResponseFaceSearchUserImage) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearchUserImage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearchUserImage leniently.
type FaceSearchSearchResponseFaceSearchUserImageEntities ¶
type FaceSearchSearchResponseFaceSearchUserImageEntities struct {
// Bounding box `[x_min, y_min, x_max, y_max]` in pixels.
Bbox []int64 `json:"bbox"`
// Face-detection confidence (0-1).
Confidence float64 `json:"confidence"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearchUserImageEntities is a response object.
func (*FaceSearchSearchResponseFaceSearchUserImageEntities) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearchUserImageEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearchUserImageEntities leniently.
type FaceSearchSearchResponseFaceSearchWarnings ¶
type FaceSearchSearchResponseFaceSearchWarnings struct {
// Machine-readable risk code.
Risk FaceSearchSearchResponseFaceSearchWarningsRisk `json:"risk"`
// Feature that raised the warning. Always `LIVENESS` on this endpoint.
Feature FaceSearchSearchResponseFaceSearchWarningsFeature `json:"feature"`
// `null` for `MULTIPLE_FACES_DETECTED`. Blocklist hits carry
// `{blocklisted_session_id, blocklisted_session_number, api_service}`;
// duplicate hits carry `{duplicated_session_id, duplicated_session_number,
// api_service}` pointing at the first matching session.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` warnings drive `status` to `Declined`; `warning` and
// `information` entries are advisory and never decline on their own.
LogType FaceSearchSearchResponseFaceSearchWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FaceSearchSearchResponseFaceSearchWarnings is a response object.
func (*FaceSearchSearchResponseFaceSearchWarnings) UnmarshalJSON ¶
func (r *FaceSearchSearchResponseFaceSearchWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FaceSearchSearchResponseFaceSearchWarnings leniently.
type FaceSearchSearchResponseFaceSearchWarningsFeature ¶
type FaceSearchSearchResponseFaceSearchWarningsFeature string
FaceSearchSearchResponseFaceSearchWarningsFeature: Feature that raised the warning. Always `LIVENESS` on this endpoint.
FaceSearchSearchResponseFaceSearchWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
FaceSearchSearchResponseFaceSearchWarningsFeatureLiveness FaceSearchSearchResponseFaceSearchWarningsFeature = "LIVENESS"
)
Known values of FaceSearchSearchResponseFaceSearchWarningsFeature.
type FaceSearchSearchResponseFaceSearchWarningsLogType ¶
type FaceSearchSearchResponseFaceSearchWarningsLogType string
FaceSearchSearchResponseFaceSearchWarningsLogType: Severity. `error` warnings drive `status` to `Declined`; `warning` and `information` entries are advisory and never decline on their own.
FaceSearchSearchResponseFaceSearchWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceSearchSearchResponseFaceSearchWarningsLogTypeError FaceSearchSearchResponseFaceSearchWarningsLogType = "error" FaceSearchSearchResponseFaceSearchWarningsLogTypeWarning FaceSearchSearchResponseFaceSearchWarningsLogType = "warning" FaceSearchSearchResponseFaceSearchWarningsLogTypeInformation FaceSearchSearchResponseFaceSearchWarningsLogType = "information" )
Known values of FaceSearchSearchResponseFaceSearchWarningsLogType.
type FaceSearchSearchResponseFaceSearchWarningsRisk ¶
type FaceSearchSearchResponseFaceSearchWarningsRisk string
FaceSearchSearchResponseFaceSearchWarningsRisk: Machine-readable risk code.
FaceSearchSearchResponseFaceSearchWarningsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FaceSearchSearchResponseFaceSearchWarningsRiskMultipleFacesDetected FaceSearchSearchResponseFaceSearchWarningsRisk = "MULTIPLE_FACES_DETECTED" FaceSearchSearchResponseFaceSearchWarningsRiskFaceInBlocklist FaceSearchSearchResponseFaceSearchWarningsRisk = "FACE_IN_BLOCKLIST" FaceSearchSearchResponseFaceSearchWarningsRiskPossibleFaceInBlocklist FaceSearchSearchResponseFaceSearchWarningsRisk = "POSSIBLE_FACE_IN_BLOCKLIST" FaceSearchSearchResponseFaceSearchWarningsRiskDuplicatedFace FaceSearchSearchResponseFaceSearchWarningsRisk = "DUPLICATED_FACE" FaceSearchSearchResponseFaceSearchWarningsRiskPossibleDuplicatedFace FaceSearchSearchResponseFaceSearchWarningsRisk = "POSSIBLE_DUPLICATED_FACE" )
Known values of FaceSearchSearchResponseFaceSearchWarningsRisk.
type FaceSearchService ¶
type FaceSearchService struct {
// contains filtered or unexported fields
}
FaceSearchService holds the face_search operations. Use it through Client.FaceSearch.
func (*FaceSearchService) Search ¶
func (r *FaceSearchService) Search(ctx context.Context, params FaceSearchSearchParams, opts ...option.RequestOption) (*FaceSearchSearchResponse, error)
Search: Face Search.
Search a face image (1:N) against your application's face search index - faces enrolled from verification sessions, saved standalone API calls, direct user-profile face uploads, and your block/allow lists - and get back ranked similarity matches plus blocklist and duplicate warnings.
**How it works.** The largest detected face in `user_image` is embedded and searched against the index, scoped to your application. Up to **5 matches** above the similarity floor are returned in `matches`, each with `similarity_percentage`, the originating session (`session_id`, `session_number`, `status`, `vendor_data`), `user_details` extracted during that session's document verification, `is_blocklisted` / `is_allowlisted` flags, and a `source` discriminator (`session`, `imported`, or `list_entry`).
- `search_type=most_similar` (default) ranks every enrolled face by similarity - use it for deduplication and fraud-ring investigation.
- `search_type=blocklisted_or_approved` restricts candidates to blocklisted faces, allowlisted faces, faces from approved sessions, and imported user-profile faces, ranking blocklisted entries first - use it when the primary goal is blocklist screening.
`status` is `Declined` only when a `FACE_IN_BLOCKLIST` or `POSSIBLE_FACE_IN_BLOCKLIST` warning fires; `DUPLICATED_FACE` / `POSSIBLE_DUPLICATED_FACE` (`information`) and `MULTIPLE_FACES_DETECTED` (`warning`) never decline. Unlike Passive Liveness, this endpoint does **not** exclude prior sessions with the same `vendor_data` from matching. A passive-liveness analysis also runs internally and is stored with the persisted session, but its result is not part of this response.
**Billing.** Each `200` response consumes one Face Search API credit (standalone APIs have no free tier). Insufficient balance returns `403` before any image processing.
**Session persistence and face enrollment (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session (Business Console, `GET /v3/session/{sessionId}/decision/` via the returned `request_id`, `status.updated` webhook) and the searched face is enrolled into your face search index. Faces enrolled by Face Search calls are excluded from future Face Search results, so repeated searches never match each other. When `false`, the call is one-shot: nothing is stored, the face is not enrolled, and `match_image_url` values are internal storage paths rather than downloadable URLs.
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload, no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/face-search/
type FeatureStatusOverride ¶
type FeatureStatusOverride struct {
// Identifier of the override. Pass it to the cancel endpoint.
ID string `json:"id"`
// The workflow node the request named (`default` for a step without a node).
NodeID string `json:"node_id"`
// The `feature_type` the request passed, or an empty string when it passed
// none.
FeatureType string `json:"feature_type"`
// The kind of check that was overridden, for example `KYC`, `Face`, `AML` or
// `GeolocationCheck`.
FeatureModel string `json:"feature_model"`
// The check's status when the override was requested.
PreviousStatus FeatureStatusOverridePreviousStatus `json:"previous_status"`
// The status the override sets.
NewStatus FeatureStatusOverrideNewStatus `json:"new_status"`
// `applied`: the check has the new status. `pending_until_flow_finishes`: the
// override waits and applies when the person finishes the flow. `cancelled`: it
// waited and never applied (see `cancel_reason`).
State FeatureStatusOverrideState `json:"state"`
// `true` when the override applied at once while the person was still in the
// flow.
Forced bool `json:"forced"`
// The `comment` sent with the request, or `null`.
Reason string `json:"reason"`
// Who requested the override, or `null` when that is not known.
RequestedBy FeatureStatusOverrideRequestedBy `json:"requested_by"`
// When the override was requested.
RequestedAt time.Time `json:"requested_at"`
// When the check took the new status, or `null` while it waits or once it is
// cancelled.
AppliedAt time.Time `json:"applied_at"`
// When a waiting override was cancelled, or `null`.
CancelledAt time.Time `json:"cancelled_at"`
// Why a waiting override never applied, or `null`. `cancelled_by_reviewer`:
// cancelled with the cancel endpoint. `replaced`: a newer override on the same
// check replaced it. `check_changed`: the person redid the check before
// finishing the flow. `session_closed`: the session left the flow before the
// person finished it (abandoned, expired, or decided mid-flow).
CancelReason FeatureStatusOverrideCancelReason `json:"cancel_reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FeatureStatusOverride: One override of a check (feature) status made with `PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/`: what it changes, whether it applied or still waits for the person to finish the flow, who asked and why.
func (*FeatureStatusOverride) UnmarshalJSON ¶
func (r *FeatureStatusOverride) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FeatureStatusOverride leniently.
type FeatureStatusOverrideCancelReason ¶
type FeatureStatusOverrideCancelReason string
FeatureStatusOverrideCancelReason: Why a waiting override never applied, or `null`. `cancelled_by_reviewer`: cancelled with the cancel endpoint. `replaced`: a newer override on the same check replaced it. `check_changed`: the person redid the check before finishing the flow. `session_closed`: the session left the flow before the person finished it (abandoned, expired, or decided mid-flow).
FeatureStatusOverrideCancelReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FeatureStatusOverrideCancelReasonCancelledByReviewer FeatureStatusOverrideCancelReason = "cancelled_by_reviewer" FeatureStatusOverrideCancelReasonReplaced FeatureStatusOverrideCancelReason = "replaced" FeatureStatusOverrideCancelReasonCheckChanged FeatureStatusOverrideCancelReason = "check_changed" FeatureStatusOverrideCancelReasonSessionClosed FeatureStatusOverrideCancelReason = "session_closed" )
Known values of FeatureStatusOverrideCancelReason.
type FeatureStatusOverrideNewStatus ¶
type FeatureStatusOverrideNewStatus string
FeatureStatusOverrideNewStatus: The status the override sets.
FeatureStatusOverrideNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FeatureStatusOverrideNewStatusApproved FeatureStatusOverrideNewStatus = "Approved" FeatureStatusOverrideNewStatusDeclined FeatureStatusOverrideNewStatus = "Declined" FeatureStatusOverrideNewStatusInReview FeatureStatusOverrideNewStatus = "In Review" )
Known values of FeatureStatusOverrideNewStatus.
type FeatureStatusOverridePreviousStatus ¶
type FeatureStatusOverridePreviousStatus string
FeatureStatusOverridePreviousStatus: The check's status when the override was requested.
FeatureStatusOverridePreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FeatureStatusOverridePreviousStatusNotFinished FeatureStatusOverridePreviousStatus = "Not Finished" FeatureStatusOverridePreviousStatusApproved FeatureStatusOverridePreviousStatus = "Approved" FeatureStatusOverridePreviousStatusDeclined FeatureStatusOverridePreviousStatus = "Declined" FeatureStatusOverridePreviousStatusInReview FeatureStatusOverridePreviousStatus = "In Review" FeatureStatusOverridePreviousStatusResubRequested FeatureStatusOverridePreviousStatus = "Resub Requested" )
Known values of FeatureStatusOverridePreviousStatus.
type FeatureStatusOverrideRequestedBy ¶
type FeatureStatusOverrideRequestedBy struct {
// Email of the console user, or `null` for API keys and the system.
Email string `json:"email"`
// Display name of the requester, or `null`.
Name string `json:"name"`
// Who made the request: a console user, an API key, or Didit itself.
Type FeatureStatusOverrideRequestedByType `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FeatureStatusOverrideRequestedBy: Who requested the override, or `null` when that is not known.
func (*FeatureStatusOverrideRequestedBy) UnmarshalJSON ¶
func (r *FeatureStatusOverrideRequestedBy) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FeatureStatusOverrideRequestedBy leniently.
type FeatureStatusOverrideRequestedByType ¶
type FeatureStatusOverrideRequestedByType string
FeatureStatusOverrideRequestedByType: Who made the request: a console user, an API key, or Didit itself.
FeatureStatusOverrideRequestedByType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FeatureStatusOverrideRequestedByTypeConsoleUser FeatureStatusOverrideRequestedByType = "CONSOLE_USER" FeatureStatusOverrideRequestedByTypeAPIKey FeatureStatusOverrideRequestedByType = "API_KEY" FeatureStatusOverrideRequestedByTypeSystem FeatureStatusOverrideRequestedByType = "SYSTEM" )
Known values of FeatureStatusOverrideRequestedByType.
type FeatureStatusOverrideState ¶
type FeatureStatusOverrideState string
FeatureStatusOverrideState: `applied`: the check has the new status. `pending_until_flow_finishes`: the override waits and applies when the person finishes the flow. `cancelled`: it waited and never applied (see `cancel_reason`).
FeatureStatusOverrideState is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FeatureStatusOverrideStateApplied FeatureStatusOverrideState = "applied" FeatureStatusOverrideStatePendingUntilFlowFinishes FeatureStatusOverrideState = "pending_until_flow_finishes" FeatureStatusOverrideStateCancelled FeatureStatusOverrideState = "cancelled" )
Known values of FeatureStatusOverrideState.
type File ¶
type File struct {
// contains filtered or unexported fields
}
File is a file to upload in a multipart request: an image, a document or a CSV. Create one with FileFromPath, FileFromBytes or FileFromReader.
The content type is, in order: the one set with WithContentType, a fixed table for the image and document types the API accepts (by file name extension), the type sniffed from the first bytes, and application/octet-stream.
func FileFromBytes ¶
FileFromBytes returns a File holding data, sent with the given file name.
func FileFromPath ¶
FileFromPath returns a File read from path when the request is sent. The file name sent is the base name of path.
func FileFromReader ¶
FileFromReader returns a File read from r when the request is sent, with the given file name. The SDK reads r once and keeps the bytes in memory so that a retried request sends the same content.
func (File) WithContentType ¶
WithContentType returns a copy of f sent with the given content type.
type FraudAvailabilityEnum ¶
type FraudAvailabilityEnum string
FraudAvailabilityEnum: * `available` - Available
- `not_requested` - Not Requested
- `no_reference` - No Reference
- `insufficient_history` - Insufficient History
- `unsupported_region` - Unsupported Region
- `source_unavailable` - Source Unavailable
FraudAvailabilityEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudAvailabilityEnumAvailable FraudAvailabilityEnum = "available" FraudAvailabilityEnumNotRequested FraudAvailabilityEnum = "not_requested" FraudAvailabilityEnumNoReference FraudAvailabilityEnum = "no_reference" FraudAvailabilityEnumInsufficientHistory FraudAvailabilityEnum = "insufficient_history" FraudAvailabilityEnumUnsupportedRegion FraudAvailabilityEnum = "unsupported_region" )
Known values of FraudAvailabilityEnum.
type FraudBandEnum ¶
type FraudBandEnum string
FraudBandEnum: * `low` - Low
- `medium` - Medium
- `high` - High
- `unknown` - Unknown
FraudBandEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudBandEnumLow FraudBandEnum = "low" FraudBandEnumMedium FraudBandEnum = "medium" FraudBandEnumHigh FraudBandEnum = "high" FraudBandEnumUnknown FraudBandEnum = "unknown" )
Known values of FraudBandEnum.
type FraudCheckAttributesRequest ¶
type FraudCheckAttributesRequest struct {
FirstName Opt[string] `json:"first_name"`
LastName Opt[string] `json:"last_name"`
FullName Opt[string] `json:"full_name"`
DateOfBirth Opt[string] `json:"date_of_birth"`
Nationality Opt[string] `json:"nationality"`
Gender Opt[string] `json:"gender"`
Address Opt[string] `json:"address"`
City Opt[string] `json:"city"`
State Opt[string] `json:"state"`
PostalCode Opt[string] `json:"postal_code"`
}
FraudCheckAttributesRequest: Corroborating attributes. All optional; they widen module coverage.
func (FraudCheckAttributesRequest) MarshalJSON ¶
func (r FraudCheckAttributesRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudCheckContextRequest ¶
type FraudCheckContextRequest struct {
IPAddress Opt[string] `json:"ip_address"`
UserAgent Opt[string] `json:"user_agent"`
// Country the subject claims to be in. Contextual only - never proof of
// identity ownership.
Country Opt[string] `json:"country"`
Purpose Opt[string] `json:"purpose"`
ConsentObtained Opt[bool] `json:"consent_obtained"`
}
FraudCheckContextRequest is a request object.
func (FraudCheckContextRequest) MarshalJSON ¶
func (r FraudCheckContextRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudCheckIdentifierRequest ¶
type FraudCheckIdentifierRequest struct {
// Identifier type. Determines which namespace fields are required.
//
// - `email` - Email
// - `phone` - Phone
// - `national_id` - National Id
// - `tax_number` - Tax Number
// - `passport_number` - Passport Number
// - `driving_licence_number` - Driving Licence Number
// - `residence_permit_number` - Residence Permit Number
// - `voter_id` - Voter Id
// - `external_id` - External Id Required.
Type FraudTypeEnum `json:"type"`
// The identifier value, in any customary format. Required.
Value string `json:"value"`
// ISO-3166 alpha-2 or alpha-3 issuing country. Required for government
// identifier types: the same digits mean different people in different
// countries.
Country Opt[string] `json:"country"`
// Optional issuing authority or sub-national issuer, when the country alone is
// not unique.
Issuer Opt[string] `json:"issuer"`
}
FraudCheckIdentifierRequest is a request object.
func (FraudCheckIdentifierRequest) MarshalJSON ¶
func (r FraudCheckIdentifierRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudCheckIdentityRelationship ¶
type FraudCheckIdentityRelationship struct {
Result FraudResultEnum `json:"result"`
ReferenceType string `json:"reference_type"`
Country string `json:"country"`
Availability FraudAvailabilityEnum `json:"availability"`
ReasonCodes []string `json:"reason_codes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckIdentityRelationship is a response object.
func (*FraudCheckIdentityRelationship) UnmarshalJSON ¶
func (r *FraudCheckIdentityRelationship) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckIdentityRelationship leniently.
type FraudCheckInput ¶
type FraudCheckInput struct {
// Redacted handle for the submitted identifier.
Reference string `json:"reference"`
Type FraudTypeEnum `json:"type"`
Namespace map[string]any `json:"namespace"`
Quality string `json:"quality"`
Normalization map[string]any `json:"normalization"`
Availability FraudAvailabilityEnum `json:"availability"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckInput is a response object.
func (*FraudCheckInput) UnmarshalJSON ¶
func (r *FraudCheckInput) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckInput leniently.
type FraudCheckModuleReport ¶
type FraudCheckModuleReport struct {
Module FraudExcludeEnum `json:"module"`
Status FraudStatusEnum `json:"status"`
Reason string `json:"reason"`
LatencyMs int64 `json:"latency_ms"`
Freshness string `json:"freshness"`
BillableUnits int64 `json:"billable_units"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckModuleReport is a response object.
func (*FraudCheckModuleReport) UnmarshalJSON ¶
func (r *FraudCheckModuleReport) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckModuleReport leniently.
type FraudCheckModuleSelectionRequest ¶
type FraudCheckModuleSelectionRequest struct {
Include Opt[[]FraudExcludeEnum] `json:"include"`
Exclude Opt[[]FraudExcludeEnum] `json:"exclude"`
}
FraudCheckModuleSelectionRequest is a request object.
func (FraudCheckModuleSelectionRequest) MarshalJSON ¶
func (r FraudCheckModuleSelectionRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudCheckPlan ¶
type FraudCheckPlan struct {
ProfileID string `json:"profile_id"`
ProfileVersion string `json:"profile_version"`
Modules []FraudCheckPlannedModule `json:"modules"`
EstimatedPrice string `json:"estimated_price"`
Currency string `json:"currency"`
IsSandbox bool `json:"is_sandbox"`
CanAfford bool `json:"can_afford"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckPlan is a response object.
func (*FraudCheckPlan) UnmarshalJSON ¶
func (r *FraudCheckPlan) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckPlan leniently.
type FraudCheckPlannedModule ¶
type FraudCheckPlannedModule struct {
Module FraudExcludeEnum `json:"module"`
Available bool `json:"available"`
AvailabilityReason string `json:"availability_reason"`
WillRun bool `json:"will_run"`
SelectionReason string `json:"selection_reason"`
EstimatedPrice string `json:"estimated_price"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckPlannedModule is a response object.
func (*FraudCheckPlannedModule) UnmarshalJSON ¶
func (r *FraudCheckPlannedModule) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckPlannedModule leniently.
type FraudCheckRequestRequest ¶
type FraudCheckRequestRequest struct {
// Your own reference for this check. Doubles as the idempotency key: reusing it
// with the same body returns the original check without running or billing the
// modules again; reusing it with a different body returns 409.
ClientReference Opt[string] `json:"client_reference"`
// Orchestration profile id. Defaults to the Didit `standard` profile.
Profile Opt[string] `json:"profile"`
// Pin a frozen profile version. Defaults to the current version of the profile.
ProfileVersion Opt[string] `json:"profile_version"`
// Required.
Subject FraudCheckSubjectRequest `json:"subject"`
Context Opt[FraudCheckContextRequest] `json:"context"`
Checks Opt[FraudCheckModuleSelectionRequest] `json:"checks"`
VendorData Opt[string] `json:"vendor_data"`
Metadata Opt[any] `json:"metadata"`
}
FraudCheckRequestRequest is a request object.
func (FraudCheckRequestRequest) MarshalJSON ¶
func (r FraudCheckRequestRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudCheckResponse ¶
type FraudCheckResponse struct {
CheckID string `json:"check_id"`
// Native verification session created for this check.
RequestID string `json:"request_id"`
ClientReference string `json:"client_reference"`
ProcessingStatus FraudProcessingStatusEnum `json:"processing_status"`
ProfileID string `json:"profile_id"`
ProfileVersion string `json:"profile_version"`
CreatedAt time.Time `json:"created_at"`
CompletedAt time.Time `json:"completed_at"`
Inputs []FraudCheckInput `json:"inputs"`
Modules []FraudCheckModuleReport `json:"modules"`
AttributeEvidence []map[string]any `json:"attribute_evidence"`
CompoundEvidence []map[string]any `json:"compound_evidence"`
Risk []FraudCheckRisk `json:"risk"`
Network map[string]any `json:"network"`
Enrichment map[string]any `json:"enrichment"`
IdentityRelationship FraudCheckIdentityRelationship `json:"identity_relationship"`
Recommendation FraudRecommendationEnum `json:"recommendation"`
NextAction FraudNextActionEnum `json:"next_action"`
DecisionReasons []string `json:"decision_reasons"`
Coverage map[string]any `json:"coverage"`
Usage []map[string]any `json:"usage"`
VendorData string `json:"vendor_data"`
Metadata any `json:"metadata"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckResponse is a response object.
func (*FraudCheckResponse) UnmarshalJSON ¶
func (r *FraudCheckResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckResponse leniently.
type FraudCheckRisk ¶
type FraudCheckRisk struct {
Dimension FraudDimensionEnum `json:"dimension"`
Score int64 `json:"score"`
Band FraudBandEnum `json:"band"`
Availability FraudAvailabilityEnum `json:"availability"`
// True when the request supplied everything this dimension needed and the
// platform still could not answer it. Such a check is never recommended for
// approval on the strength of the dimensions that did answer.
ReasonCodes []string `json:"reason_codes"`
EvidenceIndexes []int64 `json:"evidence_indexes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
FraudCheckRisk is a response object.
func (*FraudCheckRisk) UnmarshalJSON ¶
func (r *FraudCheckRisk) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes FraudCheckRisk leniently.
type FraudCheckSubjectRequest ¶
type FraudCheckSubjectRequest struct {
// Base64 JPEG, PNG or WebP selfie, up to 6 MB. No reference image or URL.
Selfie Opt[string] `json:"selfie"`
// One or more typed identifiers. One is enough. Required.
Identifiers []FraudCheckIdentifierRequest `json:"identifiers"`
Attributes Opt[FraudCheckAttributesRequest] `json:"attributes"`
}
FraudCheckSubjectRequest is a request object.
func (FraudCheckSubjectRequest) MarshalJSON ¶
func (r FraudCheckSubjectRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type FraudChecksService ¶
type FraudChecksService struct {
// contains filtered or unexported fields
}
FraudChecksService holds the fraud_checks operations. Use it through Client.FraudChecks.
func (*FraudChecksService) Create ¶
func (r *FraudChecksService) Create(ctx context.Context, params FraudCheckRequestRequest, opts ...option.RequestOption) (*FraudCheckResponse, error)
Create: Run a Fraud Check.
Submit one or more typed identifiers and receive normalization, fresh enrichment, authoritative validation where the country and identifier type are covered, independent risk dimensions and a recommendation in one response.
These profiles support identifier checks. Selfie-based identity binding (`biometric_identity`) requires profile version `2026-09-14.2` and a Brazilian CPF; it runs only with the user's consent and when your organization is entitled to it. Earlier versions report it as `not_available_in_profile_version`. Modules that cannot run are reported as skipped with a deterministic reason; a source that could not answer is never reported as an identity mismatch.
POST /v3/fraud/checks/
func (*FraudChecksService) Plan ¶
func (r *FraudChecksService) Plan(ctx context.Context, params FraudCheckRequestRequest, opts ...option.RequestOption) (*FraudCheckPlan, error)
Plan: Plan a Fraud Check.
Validate selected checks and estimate their price without executing, creating a session or billing.
POST /v3/fraud/checks/plan/
func (*FraudChecksService) Retrieve ¶
func (r *FraudChecksService) Retrieve(ctx context.Context, checkID string, opts ...option.RequestOption) (*FraudCheckResponse, error)
Retrieve: Retrieve a Fraud Check.
Fetch a previously created check by its `check_id`.
GET /v3/fraud/checks/{check_id}/
type FraudDimensionEnum ¶
type FraudDimensionEnum string
FraudDimensionEnum: * `identity` - Identity
- `contact` - Contact
- `device_network` - Device Network
- `behavioral` - Behavioral
- `fraud_network` - Fraud Network
FraudDimensionEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudDimensionEnumIdentity FraudDimensionEnum = "identity" FraudDimensionEnumContact FraudDimensionEnum = "contact" FraudDimensionEnumDeviceNetwork FraudDimensionEnum = "device_network" FraudDimensionEnumBehavioral FraudDimensionEnum = "behavioral" FraudDimensionEnumFraudNetwork FraudDimensionEnum = "fraud_network" )
Known values of FraudDimensionEnum.
type FraudExcludeEnum ¶
type FraudExcludeEnum string
FraudExcludeEnum: * `normalization` - Normalization
- `email_risk` - Email Risk
- `email_social` - Email Social
- `phone_social` - Phone Social
- `phone_risk` - Phone Risk
- `ip_risk` - Ip Risk
- `database_validation` - Database Validation
- `networks_same_org` - Networks Same Org
- `networks_cross_org` - Networks Cross Org
- `biometric_identity` - Biometric Identity
FraudExcludeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudExcludeEnumNormalization FraudExcludeEnum = "normalization" FraudExcludeEnumEmailRisk FraudExcludeEnum = "email_risk" FraudExcludeEnumEmailSocial FraudExcludeEnum = "email_social" FraudExcludeEnumPhoneSocial FraudExcludeEnum = "phone_social" FraudExcludeEnumPhoneRisk FraudExcludeEnum = "phone_risk" FraudExcludeEnumIPRisk FraudExcludeEnum = "ip_risk" FraudExcludeEnumDatabaseValidation FraudExcludeEnum = "database_validation" FraudExcludeEnumNetworksSameOrg FraudExcludeEnum = "networks_same_org" FraudExcludeEnumNetworksCrossOrg FraudExcludeEnum = "networks_cross_org" FraudExcludeEnumBiometricIdentity FraudExcludeEnum = "biometric_identity" )
Known values of FraudExcludeEnum.
type FraudNextActionEnum ¶
type FraudNextActionEnum string
FraudNextActionEnum: * `none` - None
- `manual_review` - Manual Review
- `step_up` - Step Up
- `resubmit_capture` - Resubmit Capture
FraudNextActionEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudNextActionEnumNone FraudNextActionEnum = "none" FraudNextActionEnumManualReview FraudNextActionEnum = "manual_review" FraudNextActionEnumStepUp FraudNextActionEnum = "step_up" FraudNextActionEnumResubmitCapture FraudNextActionEnum = "resubmit_capture" )
Known values of FraudNextActionEnum.
type FraudProcessingStatusEnum ¶
type FraudProcessingStatusEnum string
FraudProcessingStatusEnum: * `pending` - Pending
- `running` - Running
- `completed` - Completed
- `failed` - Failed
FraudProcessingStatusEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudProcessingStatusEnumPending FraudProcessingStatusEnum = "pending" FraudProcessingStatusEnumRunning FraudProcessingStatusEnum = "running" FraudProcessingStatusEnumCompleted FraudProcessingStatusEnum = "completed" FraudProcessingStatusEnumFailed FraudProcessingStatusEnum = "failed" )
Known values of FraudProcessingStatusEnum.
type FraudRecommendationEnum ¶
type FraudRecommendationEnum string
FraudRecommendationEnum: * `approve` - Approve
- `review` - Review
- `reject` - Reject
FraudRecommendationEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudRecommendationEnumApprove FraudRecommendationEnum = "approve" FraudRecommendationEnumReview FraudRecommendationEnum = "review" FraudRecommendationEnumReject FraudRecommendationEnum = "reject" )
Known values of FraudRecommendationEnum.
type FraudResultEnum ¶
type FraudResultEnum string
FraudResultEnum: * `match` - Match
- `mismatch` - Mismatch
- `inconclusive` - Inconclusive
- `no_reference` - No Reference
FraudResultEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudResultEnumMatch FraudResultEnum = "match" FraudResultEnumMismatch FraudResultEnum = "mismatch" FraudResultEnumInconclusive FraudResultEnum = "inconclusive" FraudResultEnumNoReference FraudResultEnum = "no_reference" )
Known values of FraudResultEnum.
type FraudStatusEnum ¶
type FraudStatusEnum string
FraudStatusEnum: * `planned` - Planned
- `completed` - Completed
- `skipped` - Skipped
- `failed` - Failed
FraudStatusEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudStatusEnumPlanned FraudStatusEnum = "planned" FraudStatusEnumCompleted FraudStatusEnum = "completed" FraudStatusEnumSkipped FraudStatusEnum = "skipped" FraudStatusEnumFailed FraudStatusEnum = "failed" )
Known values of FraudStatusEnum.
type FraudTypeEnum ¶
type FraudTypeEnum string
FraudTypeEnum: * `email` - Email
- `phone` - Phone
- `national_id` - National Id
- `tax_number` - Tax Number
- `passport_number` - Passport Number
- `driving_licence_number` - Driving Licence Number
- `residence_permit_number` - Residence Permit Number
- `voter_id` - Voter Id
- `external_id` - External Id
FraudTypeEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( FraudTypeEnumEmail FraudTypeEnum = "email" FraudTypeEnumPhone FraudTypeEnum = "phone" FraudTypeEnumNationalID FraudTypeEnum = "national_id" FraudTypeEnumTaxNumber FraudTypeEnum = "tax_number" FraudTypeEnumPassportNumber FraudTypeEnum = "passport_number" FraudTypeEnumDrivingLicenceNumber FraudTypeEnum = "driving_licence_number" FraudTypeEnumResidencePermitNumber FraudTypeEnum = "residence_permit_number" FraudTypeEnumVoterID FraudTypeEnum = "voter_id" FraudTypeEnumExternalID FraudTypeEnum = "external_id" )
Known values of FraudTypeEnum.
type IDVerificationService ¶
type IDVerificationService struct {
// contains filtered or unexported fields
}
IDVerificationService holds the id_verification operations. Use it through Client.IDVerification.
func (*IDVerificationService) Verify ¶
func (r *IDVerificationService) Verify(ctx context.Context, params IDVerificationVerifyParams, opts ...option.RequestOption) (*IDVerificationVerifyResponse, error)
Verify: ID Verification (document OCR + fraud checks).
OCR an identity document and run document fraud checks in one call - returns the extracted holder fields, the parsed MRZ, an `Approved`/`Declined` `status`, and a `warnings` list explaining every issue found. Supports 14,000+ document types from 220+ countries and territories.
**How it works.** Send the document's `front_image` (required) and, for two-sided documents, the `back_image`. Upload uncropped photos with all four corners of the document visible - the service detects, aligns, and crops the document itself, so do not pre-crop. The document is classified automatically (you never declare the country or document type), the visual zone is read with OCR, and the MRZ and any barcodes are decoded. Cross-checks then validate dates, number formats, and MRZ check digits, and compare the visual zone against the MRZ. With `perform_document_liveness=true`, the images are additionally screened for screen replays, printed copies, and portrait manipulation.
**Decision logic.** `status` is `Approved` unless at least one warning resolves to a decline. Fraud and hard-failure risks always decline: `DOCUMENT_EXPIRED`, `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`, `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`, plus extraction failures (`NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`, `DOCUMENT_NUMBER_NOT_DETECTED`). (`PORTRAIT_IMAGE_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`, `INVALID_DATE`, and `MRZ_NOT_DETECTED` exist in workflow sessions but are never produced by this standalone endpoint.) Three risk groups are configurable per request via `invalid_mrz_action`, `inconsistent_data_action`, and `expiration_date_not_detected_action` (`DECLINE` or `NO_ACTION`). All other warnings (e.g. `POSSIBLE_DUPLICATED_USER`) are informational and never decline on their own. A document that cannot be processed at all returns `400` with `{"error": "COULD_NOT_RECOGNIZE_DOCUMENT"}`; a readable but problematic document returns `200` with `status: "Declined"` - always inspect `id_verification.status` and `id_verification.warnings`, not just the HTTP code.
**Billing.** Each `200` response consumes one ID Verification API credit (standalone APIs have no free tier). When the organization's balance cannot cover the call, the endpoint returns `403` with the not-enough-credits error before any image processing.
**Session persistence (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session: it appears in the Business Console, the returned `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/`, the cropped document/portrait images are stored and returned as short-lived media URLs (`https://<media-host>/ocr/...`), and a `status.updated` webhook is emitted to your configured webhook endpoints. When `false`, nothing is stored, `request_id` is a one-off correlation UUID, and `portrait_image`/`front_image`/`back_image` are returned inline as base64-encoded JPEG strings.
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload (a fictional "Sandbox User" USA identity card), no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/id-verification/
type IDVerificationVerifyParams ¶
type IDVerificationVerifyParams struct {
// Front side of the identity document. Allowed extensions: `tiff`, `jpg`,
// `jpeg`, `png`, `webp`, `pdf`. Maximum upload size: **10 MB** (larger files
// are rejected with `400`). PDFs are rendered to an image before OCR; encrypted
// PDFs require `front_image_password`. Images are automatically compressed to
// ~0.5 MB and EXIF orientation is applied. Upload the full, uncropped capture
// with all four corners of the document visible. Required.
FrontImage File `json:"-" form:"front_image"`
// Password to decrypt `front_image` when it is an encrypted PDF. Sending an
// encrypted PDF without (or with a wrong) password returns `400`.
FrontImagePassword Opt[string] `json:"front_image_password"`
// Back side of the document - send it whenever the document has one (many ID
// cards carry the MRZ or a barcode on the back; omitting it simply leaves the
// MRZ and back-side fields empty in the response - this endpoint does not raise
// a missing-MRZ warning). Same format and size limits as `front_image`. When
// omitted, `back_image` and back-side fields are `null` in the response.
BackImage Opt[File] `json:"-" form:"back_image"`
// Password to decrypt `back_image` when it is an encrypted PDF.
BackImagePassword Opt[string] `json:"back_image_password"`
// Screens both images for presentation fraud: screen replays
// (`SCREEN_CAPTURE_DETECTED`), printed copies (`PRINTED_COPY_DETECTED`), and
// portrait manipulation (`PORTRAIT_MANIPULATION_DETECTED`). Any of these
// auto-declines. Enabled by default; set to `false` to skip fraud screening and
// reduce latency.
PerformDocumentLiveness Opt[bool] `json:"perform_document_liveness"`
// Accepted and validated (1-120) but **currently not applied** by this endpoint
// - it never produces a `MINIMUM_AGE_NOT_MET` warning from this field. Enforce
// age rules from the returned `date_of_birth`/`age`, or use a
// verification-session workflow with age restrictions.
MinimumAge Opt[int64] `json:"minimum_age"`
// What to do when no expiration date can be read
// (`EXPIRATION_DATE_NOT_DETECTED`). Default `NO_ACTION` because many identity
// documents print no expiry date. Note: a *detected and past* expiry date
// always declines (`DOCUMENT_EXPIRED`), regardless of this option.
ExpirationDateNotDetectedAction Opt[IDVerificationVerifyParamsExpirationDateNotDetectedAction] `json:"expiration_date_not_detected_action"`
// What to do when the extracted MRZ fails check-digit validation
// (`MRZ_VALIDATION_FAILED`). A missing MRZ raises no warning on this endpoint.
// Only relevant for documents that carry an MRZ. `REVIEW` is not supported on
// this endpoint and returns `400`.
InvalidMRZAction Opt[IDVerificationVerifyParamsInvalidMRZAction] `json:"invalid_mrz_action"`
// What to do when extracted data is internally inconsistent:
// `DATA_INCONSISTENT`, `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` (visual zone
// disagrees with the MRZ), or
// `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS`.
InconsistentDataAction Opt[IDVerificationVerifyParamsInconsistentDataAction] `json:"inconsistent_data_action"`
// What to do when a critical printed field was physically covered on the
// capture (`CRITICAL_FIELD_OCCLUSION_DETECTED`) - an identity number, a name,
// the date of birth, or the expiry date. Declines by default, like this
// endpoint's other document-integrity risks: covering the numbers a report is
// reconciled against is what a redacted document looks like. The value read for
// a covered field is dropped from the extraction either way, so the matching
// `*_NOT_DETECTED` warning usually accompanies it. `REVIEW` is not supported on
// this endpoint and returns `400`.
CriticalFieldOcclusionAction Opt[IDVerificationVerifyParamsCriticalFieldOcclusionAction] `json:"critical_field_occlusion_action"`
// What to do when a number does not match the format its issuing authority uses
// for that document type (`DOCUMENT_NUMBER_FORMAT_MISMATCH`,
// `PERSONAL_NUMBER_FORMAT_MISMATCH`). Default `NO_ACTION`, which reports the
// warning without changing the status. `REVIEW` is not supported on this
// endpoint and returns `400`.
DocumentOrPersonalNumberFormatMismatchAction Opt[IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction] `json:"document_or_personal_number_format_mismatch_action"`
// Preferred script for name/address fields on documents that print both Latin
// and non-Latin text (Arabic, Cyrillic, CJK, …). `latin` returns
// transliterated/Latin values; `non_latin` prefers the native script.
PreferredCharacters Opt[IDVerificationVerifyParamsPreferredCharacters] `json:"preferred_characters"`
// When `true` (default), persists the call as an API-type session - visible in
// the Business Console, retrievable via `GET /v3/session/{sessionId}/decision/`
// using the returned `request_id`, announced through a `status.updated`
// webhook, and with document images returned as media URLs. When `false`,
// nothing is stored, `request_id` is a transient UUID, and images are returned
// inline as base64 JPEG strings.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque string (your internal user id, email, UUID…) stored on the
// persisted session and echoed back in the response. Use it to correlate API
// calls with your own records and to filter sessions later.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back in the response. In multipart requests, send it as a
// JSON-encoded string field (e.g. `metadata={"flow":"onboarding"}`) - it is
// parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
IDVerificationVerifyParams holds the parameters of Client.IDVerification.Verify.
func (IDVerificationVerifyParams) MarshalJSON ¶
func (r IDVerificationVerifyParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDVerificationVerifyParamsCriticalFieldOcclusionAction ¶
type IDVerificationVerifyParamsCriticalFieldOcclusionAction string
IDVerificationVerifyParamsCriticalFieldOcclusionAction: What to do when a critical printed field was physically covered on the capture (`CRITICAL_FIELD_OCCLUSION_DETECTED`) - an identity number, a name, the date of birth, or the expiry date. Declines by default, like this endpoint's other document-integrity risks: covering the numbers a report is reconciled against is what a redacted document looks like. The value read for a covered field is dropped from the extraction either way, so the matching `*_NOT_DETECTED` warning usually accompanies it. `REVIEW` is not supported on this endpoint and returns `400`.
IDVerificationVerifyParamsCriticalFieldOcclusionAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsCriticalFieldOcclusionActionNoAction IDVerificationVerifyParamsCriticalFieldOcclusionAction = "NO_ACTION" IDVerificationVerifyParamsCriticalFieldOcclusionActionDecline IDVerificationVerifyParamsCriticalFieldOcclusionAction = "DECLINE" )
Known values of IDVerificationVerifyParamsCriticalFieldOcclusionAction.
type IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction ¶
type IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction string
IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction: What to do when a number does not match the format its issuing authority uses for that document type (`DOCUMENT_NUMBER_FORMAT_MISMATCH`, `PERSONAL_NUMBER_FORMAT_MISMATCH`). Default `NO_ACTION`, which reports the warning without changing the status. `REVIEW` is not supported on this endpoint and returns `400`.
IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchActionNoAction IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction = "NO_ACTION" IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchActionDecline IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction = "DECLINE" )
Known values of IDVerificationVerifyParamsDocumentOrPersonalNumberFormatMismatchAction.
type IDVerificationVerifyParamsExpirationDateNotDetectedAction ¶
type IDVerificationVerifyParamsExpirationDateNotDetectedAction string
IDVerificationVerifyParamsExpirationDateNotDetectedAction: What to do when no expiration date can be read (`EXPIRATION_DATE_NOT_DETECTED`). Default `NO_ACTION` because many identity documents print no expiry date. Note: a *detected and past* expiry date always declines (`DOCUMENT_EXPIRED`), regardless of this option.
IDVerificationVerifyParamsExpirationDateNotDetectedAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsExpirationDateNotDetectedActionNoAction IDVerificationVerifyParamsExpirationDateNotDetectedAction = "NO_ACTION" IDVerificationVerifyParamsExpirationDateNotDetectedActionDecline IDVerificationVerifyParamsExpirationDateNotDetectedAction = "DECLINE" )
Known values of IDVerificationVerifyParamsExpirationDateNotDetectedAction.
type IDVerificationVerifyParamsInconsistentDataAction ¶
type IDVerificationVerifyParamsInconsistentDataAction string
IDVerificationVerifyParamsInconsistentDataAction: What to do when extracted data is internally inconsistent: `DATA_INCONSISTENT`, `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` (visual zone disagrees with the MRZ), or `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS`.
IDVerificationVerifyParamsInconsistentDataAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsInconsistentDataActionNoAction IDVerificationVerifyParamsInconsistentDataAction = "NO_ACTION" IDVerificationVerifyParamsInconsistentDataActionDecline IDVerificationVerifyParamsInconsistentDataAction = "DECLINE" )
Known values of IDVerificationVerifyParamsInconsistentDataAction.
type IDVerificationVerifyParamsInvalidMRZAction ¶
type IDVerificationVerifyParamsInvalidMRZAction string
IDVerificationVerifyParamsInvalidMRZAction: What to do when the extracted MRZ fails check-digit validation (`MRZ_VALIDATION_FAILED`). A missing MRZ raises no warning on this endpoint. Only relevant for documents that carry an MRZ. `REVIEW` is not supported on this endpoint and returns `400`.
IDVerificationVerifyParamsInvalidMRZAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsInvalidMRZActionNoAction IDVerificationVerifyParamsInvalidMRZAction = "NO_ACTION" IDVerificationVerifyParamsInvalidMRZActionDecline IDVerificationVerifyParamsInvalidMRZAction = "DECLINE" )
Known values of IDVerificationVerifyParamsInvalidMRZAction.
type IDVerificationVerifyParamsPreferredCharacters ¶
type IDVerificationVerifyParamsPreferredCharacters string
IDVerificationVerifyParamsPreferredCharacters: Preferred script for name/address fields on documents that print both Latin and non-Latin text (Arabic, Cyrillic, CJK, …). `latin` returns transliterated/Latin values; `non_latin` prefers the native script.
IDVerificationVerifyParamsPreferredCharacters is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyParamsPreferredCharactersLatin IDVerificationVerifyParamsPreferredCharacters = "latin" IDVerificationVerifyParamsPreferredCharactersNonLatin IDVerificationVerifyParamsPreferredCharacters = "non_latin" )
Known values of IDVerificationVerifyParamsPreferredCharacters.
type IDVerificationVerifyResponse ¶
type IDVerificationVerifyResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
IDVerification IDVerificationVerifyResponseIDVerification `json:"id_verification"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponse is a response object.
func (*IDVerificationVerifyResponse) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponse leniently.
type IDVerificationVerifyResponseIDVerification ¶
type IDVerificationVerifyResponseIDVerification struct {
// `Approved` when no warning resolves to a decline; `Declined` otherwise - the
// `warnings` list explains why.
Status IDVerificationVerifyResponseIDVerificationStatus `json:"status"`
// Detected document type display name: `Identity Card`, `Passport`, `Driver's
// License`, `Residence Permit`, `Health Insurance Card`, or `Tax Card`. `null`
// when the document could not be classified.
DocumentType string `json:"document_type"`
// Finer-grained subtype when available (e.g. `ID_CARD_GENERIC`, `EPASSPORT`).
DocumentSubtype string `json:"document_subtype"`
DocumentNumber string `json:"document_number"`
// Secondary personal/national number printed on some documents.
PersonalNumber string `json:"personal_number"`
// Cropped portrait photo from the document. A short-lived media URL
// (`https://<media-host>/ocr/...`) when `save_api_request=true` (default); an
// inline base64-encoded JPEG string when `save_api_request=false`. `null` when
// no portrait was detected.
PortraitImage string `json:"portrait_image"`
// Aligned crop of the document front. Media URL when saved, inline base64 JPEG
// otherwise.
FrontImage string `json:"front_image"`
// Aligned crop of the document back. `null` when no `back_image` was uploaded.
BackImage string `json:"back_image"`
// Always `null` on this endpoint (populated only in camera-capture verification
// sessions).
FrontImageCameraFront string `json:"front_image_camera_front"`
// Always `null` on this endpoint.
BackImageCameraFront string `json:"back_image_camera_front"`
// Always `null` on this endpoint.
FrontImageCameraFrontFaceMatchScore float64 `json:"front_image_camera_front_face_match_score"`
// Always `null` on this endpoint.
BackImageCameraFrontFaceMatchScore float64 `json:"back_image_camera_front_face_match_score"`
// Capture-quality diagnostics for the uploaded image (`null` when the side was
// not provided or scoring failed). All scores are 0-100.
FrontImageQualityScore IDVerificationVerifyResponseIDVerificationFrontImageQualityScore `json:"front_image_quality_score"`
// Capture-quality diagnostics for the uploaded image (`null` when the side was
// not provided or scoring failed). All scores are 0-100.
BackImageQualityScore IDVerificationVerifyResponseIDVerificationBackImageQualityScore `json:"back_image_quality_score"`
DateOfBirth string `json:"date_of_birth"`
// Holder age in years, computed from `date_of_birth`.
Age int64 `json:"age"`
ExpirationDate string `json:"expiration_date"`
DateOfIssue string `json:"date_of_issue"`
// Issuing country (ISO 3166-1 alpha-3).
IssuingState string `json:"issuing_state"`
IssuingStateName string `json:"issuing_state_name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
FullName string `json:"full_name"`
// `M`, `F`, or `null` when not printed/detected.
Gender string `json:"gender"`
// Address exactly as printed on the document.
Address string `json:"address"`
// Geocoded, normalized version of `address`.
FormattedAddress string `json:"formatted_address"`
PlaceOfBirth string `json:"place_of_birth"`
// `UNKNOWN` unless the document prints marital status.
MaritalStatus string `json:"marital_status"`
// Holder nationality (ISO 3166-1 alpha-3).
Nationality string `json:"nationality"`
// Document-specific extras that have no dedicated column (e.g.
// `first_surname`/`second_surname` on Spanish IDs, license classes on driving
// licenses).
ExtraFields map[string]any `json:"extra_fields"`
// Parsed machine-readable zone. An **empty object** (`{}`) when the document
// has no MRZ or it could not be read - also check the `warnings` list in that
// case. Dates inside the MRZ use the raw `YYMMDD` format.
MRZ IDVerificationVerifyResponseIDVerificationMRZ `json:"mrz"`
// Structured, geocoded breakdown of `address`. `null` when the document carries
// no address or it could not be parsed.
ParsedAddress IDVerificationVerifyResponseIDVerificationParsedAddress `json:"parsed_address"`
// Empty on a clean approval. Every entry explains one detected risk; entries
// with `log_type: "error"` set `status` to `Declined`.
Warnings []IDVerificationVerifyResponseIDVerificationWarnings `json:"warnings"`
// Barcodes decoded from the document (PDF417, QR, …). Empty when the document
// has none or none could be read.
Barcodes []IDVerificationVerifyResponseIDVerificationBarcodes `json:"barcodes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerification is a response object.
func (*IDVerificationVerifyResponseIDVerification) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerification) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerification leniently.
type IDVerificationVerifyResponseIDVerificationBackImageQualityScore ¶
type IDVerificationVerifyResponseIDVerificationBackImageQualityScore struct {
// Sharpness of the document crop (higher is sharper).
FocusScore float64 `json:"focus_score"`
// Exposure quality (higher is better).
BrightnessScore float64 `json:"brightness_score"`
// `ok` when exposure is fine, otherwise the detected issue (e.g. too dark / too
// bright).
BrightnessIssue string `json:"brightness_issue"`
// Whether all four corners of the document are inside the frame.
IsDocumentFullyVisible bool `json:"is_document_fully_visible"`
// Effective resolution of the document area.
ResolutionScore float64 `json:"resolution_score"`
// Aggregate quality score.
OverallScore float64 `json:"overall_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationBackImageQualityScore: Capture-quality diagnostics for the uploaded image (`null` when the side was not provided or scoring failed). All scores are 0-100.
func (*IDVerificationVerifyResponseIDVerificationBackImageQualityScore) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationBackImageQualityScore) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationBackImageQualityScore leniently.
type IDVerificationVerifyResponseIDVerificationBarcodes ¶
type IDVerificationVerifyResponseIDVerificationBarcodes struct {
// Barcode type (e.g. `PDF417`, `QR_CODE`, `UNKNOWN`).
Type string `json:"type"`
// Location of the barcode in the image, when available.
Position map[string]any `json:"position"`
// Decoded payload.
Data string `json:"data"`
// Raw (undecoded) payload, when different.
DataRaw string `json:"data_raw"`
// `front` or `back`.
Side string `json:"side"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationBarcodes is a response object.
func (*IDVerificationVerifyResponseIDVerificationBarcodes) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationBarcodes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationBarcodes leniently.
type IDVerificationVerifyResponseIDVerificationFrontImageQualityScore ¶
type IDVerificationVerifyResponseIDVerificationFrontImageQualityScore struct {
// Sharpness of the document crop (higher is sharper).
FocusScore float64 `json:"focus_score"`
// Exposure quality (higher is better).
BrightnessScore float64 `json:"brightness_score"`
// `ok` when exposure is fine, otherwise the detected issue (e.g. too dark / too
// bright).
BrightnessIssue string `json:"brightness_issue"`
// Whether all four corners of the document are inside the frame.
IsDocumentFullyVisible bool `json:"is_document_fully_visible"`
// Effective resolution of the document area.
ResolutionScore float64 `json:"resolution_score"`
// Aggregate quality score.
OverallScore float64 `json:"overall_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationFrontImageQualityScore: Capture-quality diagnostics for the uploaded image (`null` when the side was not provided or scoring failed). All scores are 0-100.
func (*IDVerificationVerifyResponseIDVerificationFrontImageQualityScore) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationFrontImageQualityScore) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationFrontImageQualityScore leniently.
type IDVerificationVerifyResponseIDVerificationMRZ ¶
type IDVerificationVerifyResponseIDVerificationMRZ struct {
Surname string `json:"surname"`
Name string `json:"name"`
// Issuing country (ISO 3166-1 alpha-3).
Country string `json:"country"`
// Holder nationality (ISO 3166-1 alpha-3).
Nationality string `json:"nationality"`
// Raw MRZ date of birth (`YYMMDD`).
BirthDate string `json:"birth_date"`
// Raw MRZ expiry date (`YYMMDD`).
ExpiryDate string `json:"expiry_date"`
Sex string `json:"sex"`
// MRZ document-type code (e.g. `ID`, `P`).
DocumentType string `json:"document_type"`
DocumentNumber string `json:"document_number"`
OptionalData string `json:"optional_data"`
OptionalData2 string `json:"optional_data_2"`
// MRZ check digit for the birth date.
BirthDateHash string `json:"birth_date_hash"`
// MRZ check digit for the expiry date.
ExpiryDateHash string `json:"expiry_date_hash"`
// MRZ check digit for the document number.
DocumentNumberHash string `json:"document_number_hash"`
// Composite MRZ check digit.
FinalHash string `json:"final_hash"`
PersonalNumber string `json:"personal_number"`
// Non-fatal MRZ parsing warnings.
Warnings []string `json:"warnings"`
// MRZ check-digit/parsing errors. Non-empty errors surface as an
// `MRZ_VALIDATION_FAILED` warning.
Errors []string `json:"errors"`
// MRZ layout: `TD1` (ID cards, 3 lines), `TD2`, or `TD3` (passports, 2 lines).
MRZType string `json:"mrz_type"`
// Raw MRZ text as read, lines separated by `\n`.
MRZString string `json:"mrz_string"`
// Composite key (document number + check digits) used for cross-checks.
MRZKey string `json:"mrz_key"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationMRZ: Parsed machine-readable zone. An **empty object** (`{}`) when the document has no MRZ or it could not be read - also check the `warnings` list in that case. Dates inside the MRZ use the raw `YYMMDD` format.
func (*IDVerificationVerifyResponseIDVerificationMRZ) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationMRZ) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationMRZ leniently.
type IDVerificationVerifyResponseIDVerificationParsedAddress ¶
type IDVerificationVerifyResponseIDVerificationParsedAddress struct {
Street1 string `json:"street_1"`
Street2 string `json:"street_2"`
City string `json:"city"`
Region string `json:"region"`
// ISO 3166-1 alpha-2 country code.
Country string `json:"country"`
PostalCode string `json:"postal_code"`
AddressType string `json:"address_type"`
// Canonical geocoded address string.
FormattedAddress string `json:"formatted_address"`
// Raw geocoding payload (`address_components`, `geometry.location`, `place_id`,
// …) for advanced consumers.
RawResults map[string]any `json:"raw_results"`
// Geocoded coordinates of the document address.
DocumentLocation IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation `json:"document_location"`
// Which document field the address was read from.
Label string `json:"label"`
// Whether geocoding confirmed the address exists.
IsVerified bool `json:"is_verified"`
// Address category (e.g. `Residential`, `Commercial`).
Category string `json:"category"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationParsedAddress: Structured, geocoded breakdown of `address`. `null` when the document carries no address or it could not be parsed.
func (*IDVerificationVerifyResponseIDVerificationParsedAddress) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationParsedAddress leniently.
type IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation ¶
type IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation: Geocoded coordinates of the document address.
func (*IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationParsedAddressDocumentLocation leniently.
type IDVerificationVerifyResponseIDVerificationStatus ¶
type IDVerificationVerifyResponseIDVerificationStatus string
IDVerificationVerifyResponseIDVerificationStatus: `Approved` when no warning resolves to a decline; `Declined` otherwise - the `warnings` list explains why.
IDVerificationVerifyResponseIDVerificationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyResponseIDVerificationStatusApproved IDVerificationVerifyResponseIDVerificationStatus = "Approved" IDVerificationVerifyResponseIDVerificationStatusDeclined IDVerificationVerifyResponseIDVerificationStatus = "Declined" )
Known values of IDVerificationVerifyResponseIDVerificationStatus.
type IDVerificationVerifyResponseIDVerificationWarnings ¶
type IDVerificationVerifyResponseIDVerificationWarnings struct {
// Machine-readable risk code. Always-decline risks: `DOCUMENT_EXPIRED`,
// `MINIMUM_AGE_NOT_MET`, `PORTRAIT_IMAGE_NOT_DETECTED`,
// `SCREEN_CAPTURE_DETECTED`, `PRINTED_COPY_DETECTED`,
// `PORTRAIT_MANIPULATION_DETECTED`, `PUBLIC_DOCUMENT_IMAGE_DETECTED`,
// `INVALID_DATE`, `COULD_NOT_RECOGNIZE_DOCUMENT` (400-only, never a warning),
// `DOCUMENT_NUMBER_NOT_DETECTED`, `COULD_NOT_DETECT_DOCUMENT_TYPE`,
// `NAME_NOT_DETECTED`, `DATE_OF_BIRTH_NOT_DETECTED`. Governed by request
// options: `MRZ_NOT_DETECTED` / `MRZ_VALIDATION_FAILED` (`invalid_mrz_action`),
// `DATA_INCONSISTENT` / `MRZ_AND_DATA_EXTRACTED_FROM_OCR_NOT_SAME` /
// `DOCUMENT_NAME_DIFFERENT_FROM_OTHER_APPROVED_DOCUMENTS`
// (`inconsistent_data_action`), `EXPIRATION_DATE_NOT_DETECTED`
// (`expiration_date_not_detected_action`). Other risks (e.g.
// `POSSIBLE_DUPLICATED_USER`) are informational.
Risk string `json:"risk"`
// Feature that raised the warning. Always `ID_VERIFICATION` on this endpoint.
Feature IDVerificationVerifyResponseIDVerificationWarningsFeature `json:"feature"`
// Extra context for some risks (e.g. `POSSIBLE_DUPLICATED_USER` includes
// `duplicated_session_id`); `null` for most.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` warnings drive `status` to `Declined`; `information`
// entries are advisory and never decline on their own. (`warning` is not
// produced by this endpoint - its options only accept `DECLINE` or
// `NO_ACTION`.)
LogType IDVerificationVerifyResponseIDVerificationWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IDVerificationVerifyResponseIDVerificationWarnings is a response object.
func (*IDVerificationVerifyResponseIDVerificationWarnings) UnmarshalJSON ¶
func (r *IDVerificationVerifyResponseIDVerificationWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IDVerificationVerifyResponseIDVerificationWarnings leniently.
type IDVerificationVerifyResponseIDVerificationWarningsFeature ¶
type IDVerificationVerifyResponseIDVerificationWarningsFeature string
IDVerificationVerifyResponseIDVerificationWarningsFeature: Feature that raised the warning. Always `ID_VERIFICATION` on this endpoint.
IDVerificationVerifyResponseIDVerificationWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
IDVerificationVerifyResponseIDVerificationWarningsFeatureIDVerification IDVerificationVerifyResponseIDVerificationWarningsFeature = "ID_VERIFICATION"
)
Known values of IDVerificationVerifyResponseIDVerificationWarningsFeature.
type IDVerificationVerifyResponseIDVerificationWarningsLogType ¶
type IDVerificationVerifyResponseIDVerificationWarningsLogType string
IDVerificationVerifyResponseIDVerificationWarningsLogType: Severity. `error` warnings drive `status` to `Declined`; `information` entries are advisory and never decline on their own. (`warning` is not produced by this endpoint - its options only accept `DECLINE` or `NO_ACTION`.)
IDVerificationVerifyResponseIDVerificationWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IDVerificationVerifyResponseIDVerificationWarningsLogTypeError IDVerificationVerifyResponseIDVerificationWarningsLogType = "error" IDVerificationVerifyResponseIDVerificationWarningsLogTypeWarning IDVerificationVerifyResponseIDVerificationWarningsLogType = "warning" IDVerificationVerifyResponseIDVerificationWarningsLogTypeInformation IDVerificationVerifyResponseIDVerificationWarningsLogType = "information" )
Known values of IDVerificationVerifyResponseIDVerificationWarningsLogType.
type IDWalletsService ¶
type IDWalletsService struct {
// contains filtered or unexported fields
}
IDWalletsService holds the id_wallets operations. Use it through Client.IDWallets.
func (*IDWalletsService) CancelVerification ¶
func (r *IDWalletsService) CancelVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
CancelVerification: Cancel a wallet verification.
Withdraw a pending verification: it is declined as cancelled and never billed. A decided one is returned unchanged. Smart-ID and Mobile-ID: a cancel that arrives while a poll is checking the sign-in waits a few seconds for that poll, then declines it, or returns it verified if the user had already confirmed. A verification the user is completing right now cannot be cancelled (409 verification_in_progress with Retry-After): retry after that many seconds to read its outcome.
POST /v3/id-verification/wallets/verifications/{request_id}/cancel/
func (*IDWalletsService) List ¶
func (r *IDWalletsService) List(ctx context.Context, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletCatalogResponse, error)
List: List Digital ID wallets.
Every Digital ID wallet with its start endpoint, countries, required fields and whether this application can start it in this environment now. Listed does not mean live.
GET /v3/id-verification/wallets/
func (*IDWalletsService) PollVerification ¶
func (r *IDWalletsService) PollVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
PollVerification: Poll a wallet verification.
Smart-ID and Mobile-ID: ask the provider whether the user confirmed, refused or let the prompt lapse, and verify the signed identity when they confirmed. Redirect wallets complete through the user's browser, so for them this only reads the verification back. Answers the verification as it is afterwards.
POST /v3/id-verification/wallets/verifications/{request_id}/poll/
func (*IDWalletsService) RetrieveVerification ¶
func (r *IDWalletsService) RetrieveVerification(ctx context.Context, requestID string, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
RetrieveVerification: Get a wallet verification.
Status and result of a wallet verification: the normalized identity and the wallet's own attributes once verified, the error code once declined, the next action while pending. A verification past expires_at is decided timeout.
GET /v3/id-verification/wallets/verifications/{request_id}/
func (*IDWalletsService) StartAudkenni ¶
func (r *IDWalletsService) StartAudkenni(ctx context.Context, params IDWalletsStartAudkenniParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartAudkenni: Start Auðkenni verification.
Start a Auðkenni sign-in (Auðkenni (Icelandic electronic ID); ISL) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/audkenni/
func (*IDWalletsService) StartBankidCz ¶
func (r *IDWalletsService) StartBankidCz(ctx context.Context, params IDWalletsStartBankidCzParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartBankidCz: Start Bank iD verification.
Start a Bank iD sign-in (Bankovní identita, a.s.; CZE) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/bankid-cz/
func (*IDWalletsService) StartBankidNo ¶
func (r *IDWalletsService) StartBankidNo(ctx context.Context, params IDWalletsStartBankidNoParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartBankidNo: Start BankID (NOR) verification.
Start a BankID (NOR) sign-in (BankID BankAxept AS; NOR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/bankid-no/
func (*IDWalletsService) StartBankidSe ¶
func (r *IDWalletsService) StartBankidSe(ctx context.Context, params IDWalletsStartBankidSeParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartBankidSe: Start BankID (SWE) verification.
Start a BankID (SWE) sign-in (Finansiell ID-Teknik / bank consortium; SWE) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/bankid-se/
func (*IDWalletsService) StartBuypass ¶
func (r *IDWalletsService) StartBuypass(ctx context.Context, params IDWalletsStartBuypassParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartBuypass: Start Buypass ID verification.
Start a Buypass ID sign-in (Buypass AS; NOR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/buypass/
func (*IDWalletsService) StartConnectid ¶
func (r *IDWalletsService) StartConnectid(ctx context.Context, params IDWalletsStartConnectidParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartConnectid: Start ConnectID verification.
Start a ConnectID sign-in (Australian Payments Plus; AUS) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/connectid/
func (*IDWalletsService) StartDiia ¶
func (r *IDWalletsService) StartDiia(ctx context.Context, params IDWalletsStartDiiaParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartDiia: Start Diia verification.
Start a Diia sign-in (Ministry of Digital Transformation of Ukraine; UKR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/diia/
func (*IDWalletsService) StartEparakstsMobile ¶
func (r *IDWalletsService) StartEparakstsMobile(ctx context.Context, params IDWalletsStartEparakstsMobileParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartEparakstsMobile: Start eParaksts mobile verification.
Start a eParaksts mobile sign-in (LVRTC (Latvian State Radio and Television Centre); LVA) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/eparaksts-mobile/
func (*IDWalletsService) StartEudi ¶
func (r *IDWalletsService) StartEudi(ctx context.Context, params IDWalletsStartEudiParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartEudi: Start EUDI Wallet verification.
Start a EUDI Wallet sign-in (The user's own member state; the issuer differs per country; AUT, BEL, BGR, HRV, CYP, CZE, DNK, EST, FIN, FRA, DEU, GRC, HUN, IRL, ITA, LVA, LTU, LUX, MLT, NLD, POL, PRT, ROU, SVK, SVN, ESP, SWE, ISL, LIE, NOR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/eudi/
func (*IDWalletsService) StartFranceconnect ¶
func (r *IDWalletsService) StartFranceconnect(ctx context.Context, params IDWalletsStartFranceconnectParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartFranceconnect: Start FranceConnect verification.
Start a FranceConnect sign-in (DINUM (French state); FRA) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/franceconnect/
func (*IDWalletsService) StartFrejaid ¶
func (r *IDWalletsService) StartFrejaid(ctx context.Context, params IDWalletsStartFrejaidParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartFrejaid: Start Freja eID verification.
Start a Freja eID sign-in (Freja eID Group; SWE) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/frejaid/
func (*IDWalletsService) StartFtn ¶
func (r *IDWalletsService) StartFtn(ctx context.Context, params IDWalletsStartFtnParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartFtn: Start Finnish Trust Network verification.
Start a Finnish Trust Network sign-in (Finnish banks and mobile operators (FTN); FIN) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/ftn/
func (*IDWalletsService) StartGovbr ¶
func (r *IDWalletsService) StartGovbr(ctx context.Context, params IDWalletsStartGovbrParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartGovbr: Start gov.br verification.
Start a gov.br sign-in (Governo Federal do Brasil; BRA) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/govbr/
func (*IDWalletsService) StartGovukWallet ¶
func (r *IDWalletsService) StartGovukWallet(ctx context.Context, params IDWalletsStartGovukWalletParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartGovukWallet: Start GOV.UK Wallet verification.
Start a GOV.UK Wallet sign-in (UK Government Digital Service; GBR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/govuk-wallet/
func (*IDWalletsService) StartIdcardEe ¶
func (r *IDWalletsService) StartIdcardEe(ctx context.Context, params IDWalletsStartIdcardEeParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartIdcardEe: Start Estonian ID-card verification.
Start a Estonian ID-card sign-in (Police and Border Guard Board (Estonia); EST) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/idcard-ee/
func (*IDWalletsService) StartIdin ¶
func (r *IDWalletsService) StartIdin(ctx context.Context, params IDWalletsStartIdinParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartIdin: Start iDIN verification.
Start a iDIN sign-in (Dutch banks (Currence iDIN); NLD) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/idin/
func (*IDWalletsService) StartItsme ¶
func (r *IDWalletsService) StartItsme(ctx context.Context, params IDWalletsStartItsmeParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartItsme: Start itsme verification.
Start a itsme sign-in (Belgian Mobile ID; BEL, LUX, NLD) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/itsme/
func (*IDWalletsService) StartMitid ¶
func (r *IDWalletsService) StartMitid(ctx context.Context, params IDWalletsStartMitidParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartMitid: Start MitID verification.
Start a MitID sign-in (Danish Agency for Digital Government; DNK) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/mitid/
func (*IDWalletsService) StartMobileID ¶
func (r *IDWalletsService) StartMobileID(ctx context.Context, params IDWalletsStartMobileIDParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartMobileID: Start Mobile-ID verification.
Start a Mobile-ID sign-in (SK ID Solutions with the national mobile operators; EST, LTU) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=confirm_in_app with the comparison code to show the user; the user confirms it and enters their PIN in the app (never collect the PIN). Poll POST /v3/id-verification/wallets/verifications/{request_id}/poll/ every poll_interval_seconds, or rely on the webhook: Didit polls in the background too. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/mobile-id/
func (*IDWalletsService) StartMojeid ¶
func (r *IDWalletsService) StartMojeid(ctx context.Context, params IDWalletsStartMojeidParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartMojeid: Start MojeID verification.
Start a MojeID sign-in (CZ.NIC; CZE) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/mojeid/
func (*IDWalletsService) StartOneid ¶
func (r *IDWalletsService) StartOneid(ctx context.Context, params IDWalletsStartOneidParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartOneid: Start OneID verification.
Start a OneID sign-in (OneID (UK bank-verified identity); GBR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/oneid/
func (*IDWalletsService) StartPersonalausweis ¶
func (r *IDWalletsService) StartPersonalausweis(ctx context.Context, params IDWalletsStartPersonalausweisParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartPersonalausweis: Start Personalausweis verification.
Start a Personalausweis sign-in (Bundesministerium des Innern (eID); DEU) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/personalausweis/
func (*IDWalletsService) StartSmartID ¶
func (r *IDWalletsService) StartSmartID(ctx context.Context, params IDWalletsStartSmartIDParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartSmartID: Start Smart-ID verification.
Start a Smart-ID sign-in (SK ID Solutions; EST, LVA, LTU, BEL) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=confirm_in_app with the comparison code to show the user; the user confirms it and enters their PIN in the app (never collect the PIN). Poll POST /v3/id-verification/wallets/verifications/{request_id}/poll/ every poll_interval_seconds, or rely on the webhook: Didit polls in the background too. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/smart-id/
func (*IDWalletsService) StartUaePass ¶
func (r *IDWalletsService) StartUaePass(ctx context.Context, params IDWalletsStartUaePassParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartUaePass: Start UAE PASS verification.
Start a UAE PASS sign-in (UAE Digital Government Authority; ARE) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/uae-pass/
func (*IDWalletsService) StartVipps ¶
func (r *IDWalletsService) StartVipps(ctx context.Context, params IDWalletsStartVippsParams, opts ...option.RequestOption) (*DigitalIDWalletAPIWalletVerificationResponse, error)
StartVipps: Start Vipps verification.
Start a Vipps sign-in (Vipps MobilePay / BankID NO; NOR) without any workflow. Billed once, only when the identity is verified. The response carries next_action.type=redirect with the URL to send the user's browser to; the user returns to return_url with request_id and result appended. Read the outcome with GET /v3/id-verification/wallets/verifications/{request_id}/ or from the webhook, never from the URL. Sandbox applications get a deterministic simulation (simulated: true) that never contacts the provider.
POST /v3/id-verification/wallets/vipps/
type IDWalletsStartAudkenniParams ¶
type IDWalletsStartAudkenniParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIAudkenniWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartAudkenniParams holds the parameters of Client.IDWallets.StartAudkenni.
func (IDWalletsStartAudkenniParams) MarshalJSON ¶
func (r IDWalletsStartAudkenniParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartBankidCzParams ¶
type IDWalletsStartBankidCzParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIBankidCzWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartBankidCzParams holds the parameters of Client.IDWallets.StartBankidCz.
func (IDWalletsStartBankidCzParams) MarshalJSON ¶
func (r IDWalletsStartBankidCzParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartBankidNoParams ¶
type IDWalletsStartBankidNoParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIBankidNoWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartBankidNoParams holds the parameters of Client.IDWallets.StartBankidNo.
func (IDWalletsStartBankidNoParams) MarshalJSON ¶
func (r IDWalletsStartBankidNoParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartBankidSeParams ¶
type IDWalletsStartBankidSeParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIBankidSeWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartBankidSeParams holds the parameters of Client.IDWallets.StartBankidSe.
func (IDWalletsStartBankidSeParams) MarshalJSON ¶
func (r IDWalletsStartBankidSeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartBuypassParams ¶
type IDWalletsStartBuypassParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIBuypassWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartBuypassParams holds the parameters of Client.IDWallets.StartBuypass.
func (IDWalletsStartBuypassParams) MarshalJSON ¶
func (r IDWalletsStartBuypassParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartConnectidParams ¶
type IDWalletsStartConnectidParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIConnectidWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartConnectidParams holds the parameters of Client.IDWallets.StartConnectid.
func (IDWalletsStartConnectidParams) MarshalJSON ¶
func (r IDWalletsStartConnectidParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartDiiaParams ¶
type IDWalletsStartDiiaParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIDiiaWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartDiiaParams holds the parameters of Client.IDWallets.StartDiia.
func (IDWalletsStartDiiaParams) MarshalJSON ¶
func (r IDWalletsStartDiiaParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartEparakstsMobileParams ¶
type IDWalletsStartEparakstsMobileParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIEparakstsMobileWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartEparakstsMobileParams holds the parameters of Client.IDWallets.StartEparakstsMobile.
func (IDWalletsStartEparakstsMobileParams) MarshalJSON ¶
func (r IDWalletsStartEparakstsMobileParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartEudiParams ¶
type IDWalletsStartEudiParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIEudiWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartEudiParams holds the parameters of Client.IDWallets.StartEudi.
func (IDWalletsStartEudiParams) MarshalJSON ¶
func (r IDWalletsStartEudiParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartFranceconnectParams ¶
type IDWalletsStartFranceconnectParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIFranceconnectWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartFranceconnectParams holds the parameters of Client.IDWallets.StartFranceconnect.
func (IDWalletsStartFranceconnectParams) MarshalJSON ¶
func (r IDWalletsStartFranceconnectParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartFrejaidParams ¶
type IDWalletsStartFrejaidParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIFrejaidWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartFrejaidParams holds the parameters of Client.IDWallets.StartFrejaid.
func (IDWalletsStartFrejaidParams) MarshalJSON ¶
func (r IDWalletsStartFrejaidParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartFtnParams ¶
type IDWalletsStartFtnParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIFtnWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartFtnParams holds the parameters of Client.IDWallets.StartFtn.
func (IDWalletsStartFtnParams) MarshalJSON ¶
func (r IDWalletsStartFtnParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartGovbrParams ¶
type IDWalletsStartGovbrParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIGovbrWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartGovbrParams holds the parameters of Client.IDWallets.StartGovbr.
func (IDWalletsStartGovbrParams) MarshalJSON ¶
func (r IDWalletsStartGovbrParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartGovukWalletParams ¶
type IDWalletsStartGovukWalletParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIGovukWalletWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartGovukWalletParams holds the parameters of Client.IDWallets.StartGovukWallet.
func (IDWalletsStartGovukWalletParams) MarshalJSON ¶
func (r IDWalletsStartGovukWalletParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartIdcardEeParams ¶
type IDWalletsStartIdcardEeParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIIdcardEeWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartIdcardEeParams holds the parameters of Client.IDWallets.StartIdcardEe.
func (IDWalletsStartIdcardEeParams) MarshalJSON ¶
func (r IDWalletsStartIdcardEeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartIdinParams ¶
type IDWalletsStartIdinParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIIdinWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartIdinParams holds the parameters of Client.IDWallets.StartIdin.
func (IDWalletsStartIdinParams) MarshalJSON ¶
func (r IDWalletsStartIdinParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartItsmeParams ¶
type IDWalletsStartItsmeParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIItsmeWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartItsmeParams holds the parameters of Client.IDWallets.StartItsme.
func (IDWalletsStartItsmeParams) MarshalJSON ¶
func (r IDWalletsStartItsmeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartMitidParams ¶
type IDWalletsStartMitidParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIMitidWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartMitidParams holds the parameters of Client.IDWallets.StartMitid.
func (IDWalletsStartMitidParams) MarshalJSON ¶
func (r IDWalletsStartMitidParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartMobileIDParams ¶
type IDWalletsStartMobileIDParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIMobileIDWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartMobileIDParams holds the parameters of Client.IDWallets.StartMobileID.
func (IDWalletsStartMobileIDParams) MarshalJSON ¶
func (r IDWalletsStartMobileIDParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartMojeidParams ¶
type IDWalletsStartMojeidParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIMojeidWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartMojeidParams holds the parameters of Client.IDWallets.StartMojeid.
func (IDWalletsStartMojeidParams) MarshalJSON ¶
func (r IDWalletsStartMojeidParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartOneidParams ¶
type IDWalletsStartOneidParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIOneidWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartOneidParams holds the parameters of Client.IDWallets.StartOneid.
func (IDWalletsStartOneidParams) MarshalJSON ¶
func (r IDWalletsStartOneidParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartPersonalausweisParams ¶
type IDWalletsStartPersonalausweisParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIPersonalausweisWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartPersonalausweisParams holds the parameters of Client.IDWallets.StartPersonalausweis.
func (IDWalletsStartPersonalausweisParams) MarshalJSON ¶
func (r IDWalletsStartPersonalausweisParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartSmartIDParams ¶
type IDWalletsStartSmartIDParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPISmartIDWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartSmartIDParams holds the parameters of Client.IDWallets.StartSmartID.
func (IDWalletsStartSmartIDParams) MarshalJSON ¶
func (r IDWalletsStartSmartIDParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartUaePassParams ¶
type IDWalletsStartUaePassParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIUaePassWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartUaePassParams holds the parameters of Client.IDWallets.StartUaePass.
func (IDWalletsStartUaePassParams) MarshalJSON ¶
func (r IDWalletsStartUaePassParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IDWalletsStartVippsParams ¶
type IDWalletsStartVippsParams struct {
// Body is the JSON request body.
Body DigitalIDWalletAPIVippsWalletVerificationStartRequest `json:"-" body:"json"`
// Optional retry-safety key (max 255 characters). Retrying with the same key,
// wallet and body returns the original verification without starting a second
// sign-in; the same key with another wallet or body returns 409
// idempotency_key_reused.
IdempotencyKey Opt[string] `json:"-" header:"Idempotency-Key"`
}
IDWalletsStartVippsParams holds the parameters of Client.IDWallets.StartVipps.
func (IDWalletsStartVippsParams) MarshalJSON ¶
func (r IDWalletsStartVippsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IPRiskRequest ¶
type IPRiskRequest struct {
// IPv4 or IPv6 address to score. Required.
IPAddress string `json:"ip_address"`
// Optional ISO 3166-1 alpha-2 or alpha-3 country claimed by the user or
// session. Used to calculate `country_mismatch`.
ClaimedCountry Opt[string] `json:"claimed_country"`
// User agent observed by your backend. Stored as request context; it does not
// provide device fingerprinting.
UserAgent Opt[string] `json:"user_agent"`
// Your stable reference for this request. Stored on the API session and echoed
// in the response.
VendorData Opt[string] `json:"vendor_data"`
// Your non-sensitive JSON metadata. Stored on the API session and echoed in the
// response.
Metadata Opt[map[string]any] `json:"metadata"`
}
IPRiskRequest is a request object.
func (IPRiskRequest) MarshalJSON ¶
func (r IPRiskRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type IPRiskResponse ¶
type IPRiskResponse struct {
// Id of the API session created for this request. Store it with `vendor_data`
// if you need to correlate the result with later webhooks or console activity.
RequestID string `json:"request_id"`
// Decision for this API session: `In Review` on network or country-mismatch
// risk, otherwise `Approved`.
Status IPRiskResponseStatus `json:"status"`
// Echo of the `vendor_data` you sent, `null` when you did not send one.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent, `null` when you did not send one.
Metadata map[string]any `json:"metadata"`
// Timestamp of this response.
CreatedAt time.Time `json:"created_at"`
// IP risk result. Individual enrichment fields can be `null` when the lookup
// returned no usable data.
IP IPRiskResponseIP `json:"ip"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IPRiskResponse is a response object.
func (*IPRiskResponse) UnmarshalJSON ¶
func (r *IPRiskResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IPRiskResponse leniently.
type IPRiskResponseIP ¶
type IPRiskResponseIP struct {
// `In Review` when the resolved country conflicts with `claimed_country`, or
// when the address is associated with VPN, Tor, or data-center infrastructure.
// Otherwise `Approved`.
Status IPRiskResponseIPStatus `json:"status"`
// The scored address. `null` when no enrichment source returned usable data.
IPAddress string `json:"ip_address"`
// Resolved country name.
IPCountry string `json:"ip_country"`
// Resolved country code. Compare countries through `country_mismatch` instead
// of comparing raw country strings yourself.
IPCountryCode string `json:"ip_country_code"`
// Resolved state or region.
IPState string `json:"ip_state"`
// Resolved city.
IPCity string `json:"ip_city"`
// Approximate network geolocation, not a precise device location.
Latitude float64 `json:"latitude"`
// Approximate network geolocation, not a precise device location.
Longitude float64 `json:"longitude"`
// Internet service provider serving the address.
Isp string `json:"isp"`
// Organization owning the address block.
Organization string `json:"organization"`
// `true` when the address is associated with VPN or Tor infrastructure.
IsVpnOrTor bool `json:"is_vpn_or_tor"`
// `true` when the address belongs to a hosting or data-center network.
IsDataCenter bool `json:"is_data_center"`
// Time zone of the resolved location.
TimeZone string `json:"time_zone"`
// UTC offset of the resolved location.
TimeZoneOffset string `json:"time_zone_offset"`
// Autonomous system number.
AsnNumber float64 `json:"asn_number"`
// Organization operating the autonomous system.
AsnOrganization string `json:"asn_organization"`
// Connection classification (e.g., `cellular`, `hosting`).
ConnectionType string `json:"connection_type"`
// Mobile carrier when the address is on a mobile network.
Carrier string `json:"carrier"`
// Proxy classification when the address is behind a proxy.
ProxyType string `json:"proxy_type"`
// Echo of the `claimed_country` you sent.
ClaimedCountry string `json:"claimed_country"`
// `true` when the resolved country differs from `claimed_country`. `null` when
// no enrichment data or no claimed country is available.
CountryMismatch bool `json:"country_mismatch"`
// Free-form network-threat evidence from the enrichment source (e.g.,
// `is_proxy`, `is_tor`). Empty object when no enrichment data is available.
// Treat as diagnostic detail, not a stable contract.
Threat map[string]any `json:"threat"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
IPRiskResponseIP: IP risk result. Individual enrichment fields can be `null` when the lookup returned no usable data.
func (*IPRiskResponseIP) UnmarshalJSON ¶
func (r *IPRiskResponseIP) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes IPRiskResponseIP leniently.
type IPRiskResponseIPStatus ¶
type IPRiskResponseIPStatus string
IPRiskResponseIPStatus: `In Review` when the resolved country conflicts with `claimed_country`, or when the address is associated with VPN, Tor, or data-center infrastructure. Otherwise `Approved`.
IPRiskResponseIPStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IPRiskResponseIPStatusApproved IPRiskResponseIPStatus = "Approved" IPRiskResponseIPStatusInReview IPRiskResponseIPStatus = "In Review" )
Known values of IPRiskResponseIPStatus.
type IPRiskResponseStatus ¶
type IPRiskResponseStatus string
IPRiskResponseStatus: Decision for this API session: `In Review` on network or country-mismatch risk, otherwise `Approved`.
IPRiskResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( IPRiskResponseStatusApproved IPRiskResponseStatus = "Approved" IPRiskResponseStatusInReview IPRiskResponseStatus = "In Review" )
Known values of IPRiskResponseStatus.
type IPService ¶
type IPService struct {
// contains filtered or unexported fields
}
IPService holds the ip operations. Use it through Client.IP.
func (*IPService) AssessRisk ¶
func (r *IPService) AssessRisk(ctx context.Context, params IPRiskRequest, opts ...option.RequestOption) (*IPRiskResponse, error)
AssessRisk: Risk-score an IP address.
Return geolocation, network ownership, VPN/Tor and data-center flags, threat data, and `country_mismatch` for a supplied IP address. The endpoint creates an API session and returns its id as `request_id`.
**Decision.** `status` is `In Review` when the resolved country conflicts with `claimed_country`, or when the address is associated with VPN, Tor, or data-center infrastructure. Otherwise it is `Approved`.
**Best effort.** IP enrichment is best effort. If no enrichment source returns usable data, the endpoint returns an approved response with `ip.ip_address: null`, `ip.country_mismatch: null`, and an empty `ip.threat` object.
**Billing.** Live calls use IP Risk API pricing. The request is billable once the lookup starts.
**Sandbox.** Sandbox keys validate the request and return deterministic approved data without consuming credits, creating a session, or contributing to Networks.
**Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
POST /v3/ip/risk/
type ImportJobSummary ¶
type ImportJobSummary struct {
ID string `json:"id"`
Kind ImportJobSummaryKind `json:"kind"`
Source ImportJobSummarySource `json:"source"`
Provider string `json:"provider"`
ProviderName string `json:"provider_name"`
Filename string `json:"filename"`
// The job's state as the console shows it; `errors` is a completed job with
// rejected rows.
State ImportJobSummaryState `json:"state"`
Status string `json:"status"`
IsDryRun bool `json:"is_dry_run"`
CredentialHint string `json:"credential_hint"`
ResumesAt time.Time `json:"resumes_at"`
LastError string `json:"last_error"`
StartedBy ImportJobSummaryStartedBy `json:"started_by"`
Progress ImportJobSummaryProgress `json:"progress"`
FaceTemplates ImportJobSummaryFaceTemplates `json:"face_templates"`
EtaSeconds int64 `json:"eta_seconds"`
CreatedAt time.Time `json:"created_at"`
StartedAt time.Time `json:"started_at"`
CompletedAt time.Time `json:"completed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportJobSummary: One import job of any kind, in the shape the console's Import jobs drawer reads.
func (*ImportJobSummary) UnmarshalJSON ¶
func (r *ImportJobSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportJobSummary leniently.
type ImportJobSummaryFaceTemplates ¶
type ImportJobSummaryFaceTemplates struct {
Enabled bool `json:"enabled"`
Built int64 `json:"built"`
Duplicates int64 `json:"duplicates"`
Blocklisted int64 `json:"blocklisted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportJobSummaryFaceTemplates is a response object.
func (*ImportJobSummaryFaceTemplates) UnmarshalJSON ¶
func (r *ImportJobSummaryFaceTemplates) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportJobSummaryFaceTemplates leniently.
type ImportJobSummaryKind ¶
type ImportJobSummaryKind string
ImportJobSummaryKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportJobSummaryKindSessions ImportJobSummaryKind = "sessions" ImportJobSummaryKindBusinesses ImportJobSummaryKind = "businesses" ImportJobSummaryKindUsers ImportJobSummaryKind = "users" ImportJobSummaryKindStatusRules ImportJobSummaryKind = "status_rules" ImportJobSummaryKindTransactions ImportJobSummaryKind = "transactions" )
Known values of ImportJobSummaryKind.
type ImportJobSummaryProgress ¶
type ImportJobSummaryProgress struct {
Total int64 `json:"total"`
Processed int64 `json:"processed"`
Imported int64 `json:"imported"`
Updated int64 `json:"updated"`
AlreadyInDidit int64 `json:"already_in_didit"`
Failed int64 `json:"failed"`
NotFinished int64 `json:"not_finished"`
SamePerson int64 `json:"same_person"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportJobSummaryProgress is a response object.
func (*ImportJobSummaryProgress) UnmarshalJSON ¶
func (r *ImportJobSummaryProgress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportJobSummaryProgress leniently.
type ImportJobSummarySource ¶
type ImportJobSummarySource string
ImportJobSummarySource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportJobSummarySourceFile ImportJobSummarySource = "file" ImportJobSummarySourceAPI ImportJobSummarySource = "api" ImportJobSummarySourceProvider ImportJobSummarySource = "provider" )
Known values of ImportJobSummarySource.
type ImportJobSummaryStartedBy ¶
type ImportJobSummaryStartedBy struct {
Name string `json:"name"`
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportJobSummaryStartedBy is a response object.
func (*ImportJobSummaryStartedBy) UnmarshalJSON ¶
func (r *ImportJobSummaryStartedBy) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportJobSummaryStartedBy leniently.
type ImportJobSummaryState ¶
type ImportJobSummaryState string
ImportJobSummaryState: The job's state as the console shows it; `errors` is a completed job with rejected rows.
ImportJobSummaryState is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportJobSummaryStateReady ImportJobSummaryState = "ready" ImportJobSummaryStateQueued ImportJobSummaryState = "queued" ImportJobSummaryStateRunning ImportJobSummaryState = "running" ImportJobSummaryStatePaused ImportJobSummaryState = "paused" ImportJobSummaryStateCompleted ImportJobSummaryState = "completed" ImportJobSummaryStateErrors ImportJobSummaryState = "errors" ImportJobSummaryStateFailed ImportJobSummaryState = "failed" ImportJobSummaryStateCancelled ImportJobSummaryState = "cancelled" )
Known values of ImportJobSummaryState.
type ImportProvider ¶
type ImportProvider struct {
Key ImportProviderKey `json:"key"`
Name string `json:"name"`
// `api_list`: Didit lists records with the key. `api_ids`: upload the record
// IDs from an export. `export_file`: upload an export in Didit's format.
Mode ImportProviderMode `json:"mode"`
RecordNoun string `json:"record_noun"`
CredentialFields []ImportProviderCredentialFields `json:"credential_fields"`
Regions []string `json:"regions"`
RequiredPermissions []string `json:"required_permissions"`
DocsURL string `json:"docs_url"`
StatusMapping map[string]ImportProviderStatusMapping `json:"status_mapping"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportProvider is a response object.
func (*ImportProvider) UnmarshalJSON ¶
func (r *ImportProvider) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportProvider leniently.
type ImportProviderCredentialFields ¶
type ImportProviderCredentialFields struct {
Name string `json:"name"`
Label string `json:"label"`
Secret bool `json:"secret"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ImportProviderCredentialFields is a response object.
func (*ImportProviderCredentialFields) UnmarshalJSON ¶
func (r *ImportProviderCredentialFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ImportProviderCredentialFields leniently.
type ImportProviderKey ¶
type ImportProviderKey string
ImportProviderKey is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportProviderKeySumsub ImportProviderKey = "sumsub" ImportProviderKeyJumio ImportProviderKey = "jumio" ImportProviderKeyVeriff ImportProviderKey = "veriff" ImportProviderKeyOnfido ImportProviderKey = "onfido" ImportProviderKeyPersona ImportProviderKey = "persona" ImportProviderKeyMetamap ImportProviderKey = "metamap" ImportProviderKeySocure ImportProviderKey = "socure" ImportProviderKeyIdnow ImportProviderKey = "idnow" ImportProviderKeyShufti ImportProviderKey = "shufti" ImportProviderKeyIdenfy ImportProviderKey = "idenfy" ImportProviderKeyOndato ImportProviderKey = "ondato" ImportProviderKeyTrulioo ImportProviderKey = "trulioo" ImportProviderKeyAu10tix ImportProviderKey = "au10tix" ImportProviderKeyComplycube ImportProviderKey = "complycube" ImportProviderKeyOther ImportProviderKey = "other" )
Known values of ImportProviderKey.
type ImportProviderMode ¶
type ImportProviderMode string
ImportProviderMode: `api_list`: Didit lists records with the key. `api_ids`: upload the record IDs from an export. `export_file`: upload an export in Didit's format.
ImportProviderMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportProviderModeAPIList ImportProviderMode = "api_list" ImportProviderModeAPIIDs ImportProviderMode = "api_ids" ImportProviderModeExportFile ImportProviderMode = "export_file" )
Known values of ImportProviderMode.
type ImportProviderStatusMapping ¶
type ImportProviderStatusMapping string
ImportProviderStatusMapping is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ImportProviderStatusMappingApproved ImportProviderStatusMapping = "Approved" ImportProviderStatusMappingDeclined ImportProviderStatusMapping = "Declined" ImportProviderStatusMappingInReview ImportProviderStatusMapping = "In Review" ImportProviderStatusMappingExpired ImportProviderStatusMapping = "Expired" ImportProviderStatusMappingNotFinished ImportProviderStatusMapping = "Not Finished" ImportProviderStatusMappingAbandoned ImportProviderStatusMapping = "Abandoned" )
Known values of ImportProviderStatusMapping.
type InternalServerError ¶
type InternalServerError struct{ *APIStatusError }
InternalServerError is an *APIStatusError with a 5xx status.
func (*InternalServerError) Unwrap ¶
func (e *InternalServerError) Unwrap() error
type InvestigatorAcceptRequest ¶
type InvestigatorAcceptRequest struct {
// A rewritten narrative. Sending one records the decision as edited and
// accepted.
Narrative Opt[string] `json:"narrative"`
// Email the person about the decision.
SendEmail Opt[bool] `json:"send_email"`
// Required when `send_email` is true.
EmailAddress Opt[string] `json:"email_address"`
EmailLanguage Opt[string] `json:"email_language"`
}
InvestigatorAcceptRequest is a request object.
func (InvestigatorAcceptRequest) MarshalJSON ¶
func (r InvestigatorAcceptRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorBatchAcceptRequest ¶
type InvestigatorBatchAcceptRequest struct {
// Required.
RunIDs []string `json:"run_ids"`
}
InvestigatorBatchAcceptRequest is a request object.
func (InvestigatorBatchAcceptRequest) MarshalJSON ¶
func (r InvestigatorBatchAcceptRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorBatchAcceptResponse ¶
type InvestigatorBatchAcceptResponse struct {
Accepted int64 `json:"accepted"`
Skipped int64 `json:"skipped"`
Results []InvestigatorBatchAcceptResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorBatchAcceptResponse is a response object.
func (*InvestigatorBatchAcceptResponse) UnmarshalJSON ¶
func (r *InvestigatorBatchAcceptResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorBatchAcceptResponse leniently.
type InvestigatorBatchAcceptResponseResults ¶
type InvestigatorBatchAcceptResponseResults struct {
RunID string `json:"run_id"`
Result InvestigatorBatchAcceptResponseResultsResult `json:"result"`
Reason InvestigatorBatchAcceptResponseResultsReason `json:"reason"`
Detail any `json:"detail"`
Action string `json:"action"`
FinalStatus string `json:"final_status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorBatchAcceptResponseResults is a response object.
func (*InvestigatorBatchAcceptResponseResults) UnmarshalJSON ¶
func (r *InvestigatorBatchAcceptResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorBatchAcceptResponseResults leniently.
type InvestigatorBatchAcceptResponseResultsReason ¶
type InvestigatorBatchAcceptResponseResultsReason string
InvestigatorBatchAcceptResponseResultsReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBatchAcceptResponseResultsReasonNotFound InvestigatorBatchAcceptResponseResultsReason = "not_found" InvestigatorBatchAcceptResponseResultsReasonForbidden InvestigatorBatchAcceptResponseResultsReason = "forbidden" InvestigatorBatchAcceptResponseResultsReasonAlreadyDecided InvestigatorBatchAcceptResponseResultsReason = "already_decided" InvestigatorBatchAcceptResponseResultsReasonNotReady InvestigatorBatchAcceptResponseResultsReason = "not_ready" InvestigatorBatchAcceptResponseResultsReasonGuardrail InvestigatorBatchAcceptResponseResultsReason = "guardrail" InvestigatorBatchAcceptResponseResultsReasonInvalid InvestigatorBatchAcceptResponseResultsReason = "invalid" )
Known values of InvestigatorBatchAcceptResponseResultsReason.
type InvestigatorBatchAcceptResponseResultsResult ¶
type InvestigatorBatchAcceptResponseResultsResult string
InvestigatorBatchAcceptResponseResultsResult is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBatchAcceptResponseResultsResultAccepted InvestigatorBatchAcceptResponseResultsResult = "accepted" InvestigatorBatchAcceptResponseResultsResultSkipped InvestigatorBatchAcceptResponseResultsResult = "skipped" )
Known values of InvestigatorBatchAcceptResponseResultsResult.
type InvestigatorBlock ¶
type InvestigatorBlock struct {
RunID string `json:"run_id"`
Status InvestigatorBlockStatus `json:"status"`
Stage InvestigatorBlockStage `json:"stage"`
Queue InvestigatorBlockQueue `json:"queue"`
IsOpen bool `json:"is_open"`
Recommendation InvestigatorBlockRecommendation `json:"recommendation"`
RecommendationDetail string `json:"recommendation_detail"`
Confidence InvestigatorBlockConfidence `json:"confidence"`
Summary string `json:"summary"`
ReadyToAccept bool `json:"ready_to_accept"`
PreparedAt time.Time `json:"prepared_at"`
// The Investigator decided on its own, even if the decision was later
// overridden.
Automated bool `json:"automated"`
DecidedBy InvestigatorBlockDecidedBy `json:"decided_by"`
Decision InvestigatorDecision `json:"decision"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorBlock: The item's latest Investigator review, or null when it never had one. Carried by the V3 session and business session decision (and so by `status.updated` webhooks).
func (*InvestigatorBlock) UnmarshalJSON ¶
func (r *InvestigatorBlock) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorBlock leniently.
type InvestigatorBlockConfidence ¶
type InvestigatorBlockConfidence string
InvestigatorBlockConfidence is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockConfidenceHigh InvestigatorBlockConfidence = "high" InvestigatorBlockConfidenceModerate InvestigatorBlockConfidence = "moderate" InvestigatorBlockConfidenceLow InvestigatorBlockConfidence = "low" )
Known values of InvestigatorBlockConfidence.
type InvestigatorBlockDecidedBy ¶
type InvestigatorBlockDecidedBy string
InvestigatorBlockDecidedBy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockDecidedByInvestigator InvestigatorBlockDecidedBy = "investigator" InvestigatorBlockDecidedByMember InvestigatorBlockDecidedBy = "member" )
Known values of InvestigatorBlockDecidedBy.
type InvestigatorBlockQueue ¶
type InvestigatorBlockQueue string
InvestigatorBlockQueue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockQueueKYC InvestigatorBlockQueue = "kyc" InvestigatorBlockQueueKYB InvestigatorBlockQueue = "kyb" InvestigatorBlockQueueAML InvestigatorBlockQueue = "aml" InvestigatorBlockQueueTransactions InvestigatorBlockQueue = "transactions" InvestigatorBlockQueueCases InvestigatorBlockQueue = "cases" )
Known values of InvestigatorBlockQueue.
type InvestigatorBlockRecommendation ¶
type InvestigatorBlockRecommendation string
InvestigatorBlockRecommendation is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockRecommendationApprove InvestigatorBlockRecommendation = "approve" InvestigatorBlockRecommendationDecline InvestigatorBlockRecommendation = "decline" InvestigatorBlockRecommendationEscalate InvestigatorBlockRecommendation = "escalate" InvestigatorBlockRecommendationRequest InvestigatorBlockRecommendation = "request" )
Known values of InvestigatorBlockRecommendation.
type InvestigatorBlockStage ¶
type InvestigatorBlockStage string
InvestigatorBlockStage is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockStageShadow InvestigatorBlockStage = "shadow" InvestigatorBlockStageLive InvestigatorBlockStage = "live" )
Known values of InvestigatorBlockStage.
type InvestigatorBlockStatus ¶
type InvestigatorBlockStatus string
InvestigatorBlockStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorBlockStatusRunning InvestigatorBlockStatus = "running" InvestigatorBlockStatusCompleted InvestigatorBlockStatus = "completed" InvestigatorBlockStatusFailed InvestigatorBlockStatus = "failed" )
Known values of InvestigatorBlockStatus.
type InvestigatorDecision ¶
type InvestigatorDecision struct {
// `accepted` or `edited` took the recommendation (`edited` with a rewritten
// narrative), `overridden` took another action, `decided_elsewhere` is a
// decision taken outside the Investigator while the report was open,
// `automated` is a decision the Investigator took on its own.
Outcome InvestigatorDecisionOutcome `json:"outcome"`
Action InvestigatorDecisionAction `json:"action"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
OverrideCategory InvestigatorDecisionOverrideCategory `json:"override_category"`
OverrideReason string `json:"override_reason"`
// The item's status after the decision.
FinalStatus string `json:"final_status"`
// Whether the decision matched the recommendation.
Agreed bool `json:"agreed"`
DecidedAt time.Time `json:"decided_at"`
// The review was charged.
Billed bool `json:"billed"`
DecidedBy InvestigatorDecisionDecidedBy `json:"decided_by"`
// The decision the Investigator took on its own, unchanged by later overrides.
// Null for a decision the team took.
OriginalOutcome InvestigatorDecisionOriginalOutcome `json:"original_outcome"`
// Every override of a decision the Investigator took on its own, oldest first.
Overrides []InvestigatorDecisionOverrides `json:"overrides"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorDecision: How the item left the Investigator queue. `decided_by`, `original_outcome` and `overrides` are returned by the accept and override endpoints and the report; the `investigator` block of a session decision carries the other fields.
func (*InvestigatorDecision) UnmarshalJSON ¶
func (r *InvestigatorDecision) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorDecision leniently.
type InvestigatorDecisionAction ¶
type InvestigatorDecisionAction string
InvestigatorDecisionAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorDecisionActionApprove InvestigatorDecisionAction = "approve" InvestigatorDecisionActionDecline InvestigatorDecisionAction = "decline" InvestigatorDecisionActionEscalate InvestigatorDecisionAction = "escalate" InvestigatorDecisionActionRequest InvestigatorDecisionAction = "request" )
Known values of InvestigatorDecisionAction.
type InvestigatorDecisionDecidedBy ¶
type InvestigatorDecisionDecidedBy string
InvestigatorDecisionDecidedBy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorDecisionDecidedByInvestigator InvestigatorDecisionDecidedBy = "investigator" InvestigatorDecisionDecidedByMember InvestigatorDecisionDecidedBy = "member" )
Known values of InvestigatorDecisionDecidedBy.
type InvestigatorDecisionOriginalOutcome ¶
type InvestigatorDecisionOriginalOutcome struct {
Action string `json:"action"`
FinalStatus string `json:"final_status"`
DecidedAt time.Time `json:"decided_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorDecisionOriginalOutcome: The decision the Investigator took on its own, unchanged by later overrides. Null for a decision the team took.
func (*InvestigatorDecisionOriginalOutcome) UnmarshalJSON ¶
func (r *InvestigatorDecisionOriginalOutcome) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorDecisionOriginalOutcome leniently.
type InvestigatorDecisionOutcome ¶
type InvestigatorDecisionOutcome string
InvestigatorDecisionOutcome: `accepted` or `edited` took the recommendation (`edited` with a rewritten narrative), `overridden` took another action, `decided_elsewhere` is a decision taken outside the Investigator while the report was open, `automated` is a decision the Investigator took on its own.
InvestigatorDecisionOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorDecisionOutcomeAccepted InvestigatorDecisionOutcome = "accepted" InvestigatorDecisionOutcomeEdited InvestigatorDecisionOutcome = "edited" InvestigatorDecisionOutcomeOverridden InvestigatorDecisionOutcome = "overridden" InvestigatorDecisionOutcomeDecidedElsewhere InvestigatorDecisionOutcome = "decided_elsewhere" InvestigatorDecisionOutcomeAutomated InvestigatorDecisionOutcome = "automated" )
Known values of InvestigatorDecisionOutcome.
type InvestigatorDecisionOverrideCategory ¶
type InvestigatorDecisionOverrideCategory string
InvestigatorDecisionOverrideCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorDecisionOverrideCategoryMissingContext InvestigatorDecisionOverrideCategory = "missing_context" InvestigatorDecisionOverrideCategoryNeedsInformation InvestigatorDecisionOverrideCategory = "needs_information" InvestigatorDecisionOverrideCategoryPolicyDiffers InvestigatorDecisionOverrideCategory = "policy_differs" InvestigatorDecisionOverrideCategoryEvidenceMisread InvestigatorDecisionOverrideCategory = "evidence_misread" InvestigatorDecisionOverrideCategoryOther InvestigatorDecisionOverrideCategory = "other" InvestigatorDecisionOverrideCategoryEmpty InvestigatorDecisionOverrideCategory = "" )
Known values of InvestigatorDecisionOverrideCategory.
type InvestigatorDecisionOverrides ¶
type InvestigatorDecisionOverrides struct {
Action string `json:"action"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
OverrideCategory string `json:"override_category"`
OverrideReason string `json:"override_reason"`
PreviousStatus string `json:"previous_status"`
FinalStatus string `json:"final_status"`
Agreed bool `json:"agreed"`
OverriddenAt time.Time `json:"overridden_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorDecisionOverrides is a response object.
func (*InvestigatorDecisionOverrides) UnmarshalJSON ¶
func (r *InvestigatorDecisionOverrides) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorDecisionOverrides leniently.
type InvestigatorExportActivityParams ¶
type InvestigatorExportActivityParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorExportActivityParamsScope] `json:"-" query:"scope"`
Group Opt[InvestigatorExportActivityParamsGroup] `json:"-" query:"group"`
// `agent` for the Investigator, or a person's email.
Actor Opt[string] `json:"-" query:"actor"`
Since Opt[time.Time] `json:"-" query:"since"`
Until Opt[time.Time] `json:"-" query:"until"`
}
InvestigatorExportActivityParams holds the parameters of Client.Investigator.ExportActivity.
func (InvestigatorExportActivityParams) MarshalJSON ¶
func (r InvestigatorExportActivityParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorExportActivityParamsGroup ¶
type InvestigatorExportActivityParamsGroup string
InvestigatorExportActivityParamsGroup is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorExportActivityParamsGroupAgent InvestigatorExportActivityParamsGroup = "agent" InvestigatorExportActivityParamsGroupDecisions InvestigatorExportActivityParamsGroup = "decisions" InvestigatorExportActivityParamsGroupOverrides InvestigatorExportActivityParamsGroup = "overrides" InvestigatorExportActivityParamsGroupAutonomy InvestigatorExportActivityParamsGroup = "autonomy" )
Known values of InvestigatorExportActivityParamsGroup.
type InvestigatorExportActivityParamsScope ¶
type InvestigatorExportActivityParamsScope string
InvestigatorExportActivityParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorExportActivityParamsScopeAll InvestigatorExportActivityParamsScope = "all" InvestigatorExportActivityParamsScopeIdentity InvestigatorExportActivityParamsScope = "identity" InvestigatorExportActivityParamsScopeTransactions InvestigatorExportActivityParamsScope = "transactions" )
Known values of InvestigatorExportActivityParamsScope.
type InvestigatorListActivityParams ¶
type InvestigatorListActivityParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorListActivityParamsScope] `json:"-" query:"scope"`
Group Opt[InvestigatorListActivityParamsGroup] `json:"-" query:"group"`
// `agent` for the Investigator, or a person's email.
Actor Opt[string] `json:"-" query:"actor"`
Since Opt[time.Time] `json:"-" query:"since"`
Until Opt[time.Time] `json:"-" query:"until"`
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
InvestigatorListActivityParams holds the parameters of Client.Investigator.ListActivity.
func (InvestigatorListActivityParams) MarshalJSON ¶
func (r InvestigatorListActivityParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorListActivityParamsGroup ¶
type InvestigatorListActivityParamsGroup string
InvestigatorListActivityParamsGroup is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListActivityParamsGroupAgent InvestigatorListActivityParamsGroup = "agent" InvestigatorListActivityParamsGroupDecisions InvestigatorListActivityParamsGroup = "decisions" InvestigatorListActivityParamsGroupOverrides InvestigatorListActivityParamsGroup = "overrides" InvestigatorListActivityParamsGroupAutonomy InvestigatorListActivityParamsGroup = "autonomy" )
Known values of InvestigatorListActivityParamsGroup.
type InvestigatorListActivityParamsScope ¶
type InvestigatorListActivityParamsScope string
InvestigatorListActivityParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListActivityParamsScopeAll InvestigatorListActivityParamsScope = "all" InvestigatorListActivityParamsScopeIdentity InvestigatorListActivityParamsScope = "identity" InvestigatorListActivityParamsScopeTransactions InvestigatorListActivityParamsScope = "transactions" )
Known values of InvestigatorListActivityParamsScope.
type InvestigatorListGuardrailsResponse ¶
type InvestigatorListGuardrailsResponse struct {
Results []InvestigatorListGuardrailsResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorListGuardrailsResponse is a response object.
func (*InvestigatorListGuardrailsResponse) UnmarshalJSON ¶
func (r *InvestigatorListGuardrailsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorListGuardrailsResponse leniently.
type InvestigatorListGuardrailsResponseResults ¶
type InvestigatorListGuardrailsResponseResults struct {
Key InvestigatorListGuardrailsResponseResultsKey `json:"key"`
Title string `json:"title"`
Description string `json:"description"`
Locked bool `json:"locked"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorListGuardrailsResponseResults is a response object.
func (*InvestigatorListGuardrailsResponseResults) UnmarshalJSON ¶
func (r *InvestigatorListGuardrailsResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorListGuardrailsResponseResults leniently.
type InvestigatorListGuardrailsResponseResultsKey ¶
type InvestigatorListGuardrailsResponseResultsKey string
InvestigatorListGuardrailsResponseResultsKey is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListGuardrailsResponseResultsKeySanctionsToPerson InvestigatorListGuardrailsResponseResultsKey = "sanctions_to_person" InvestigatorListGuardrailsResponseResultsKeyNoTippingOff InvestigatorListGuardrailsResponseResultsKey = "no_tipping_off" InvestigatorListGuardrailsResponseResultsKeyNoProtectedCharacteristics InvestigatorListGuardrailsResponseResultsKey = "no_protected_characteristics" InvestigatorListGuardrailsResponseResultsKeyNeverFilesReports InvestigatorListGuardrailsResponseResultsKey = "never_files_reports" InvestigatorListGuardrailsResponseResultsKeyEveryDecisionLogged InvestigatorListGuardrailsResponseResultsKey = "every_decision_logged" )
Known values of InvestigatorListGuardrailsResponseResultsKey.
type InvestigatorListQueueParams ¶
type InvestigatorListQueueParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorListQueueParamsScope] `json:"-" query:"scope"`
// `session`, `business_session`, `transaction` or `case`, or several separated
// by commas.
Kind Opt[string] `json:"-" query:"kind"`
Queue Opt[InvestigatorListQueueParamsQueue] `json:"-" query:"queue"`
Recommendation Opt[InvestigatorListQueueParamsRecommendation] `json:"-" query:"recommendation"`
Confidence Opt[InvestigatorListQueueParamsConfidence] `json:"-" query:"confidence"`
Ready Opt[bool] `json:"-" query:"ready"`
// Name, company, case title, number, transaction ID or item ID.
Search Opt[string] `json:"-" query:"search"`
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
InvestigatorListQueueParams holds the parameters of Client.Investigator.ListQueue.
func (InvestigatorListQueueParams) MarshalJSON ¶
func (r InvestigatorListQueueParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorListQueueParamsConfidence ¶
type InvestigatorListQueueParamsConfidence string
InvestigatorListQueueParamsConfidence is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListQueueParamsConfidenceHigh InvestigatorListQueueParamsConfidence = "high" InvestigatorListQueueParamsConfidenceModerate InvestigatorListQueueParamsConfidence = "moderate" InvestigatorListQueueParamsConfidenceLow InvestigatorListQueueParamsConfidence = "low" )
Known values of InvestigatorListQueueParamsConfidence.
type InvestigatorListQueueParamsQueue ¶
type InvestigatorListQueueParamsQueue string
InvestigatorListQueueParamsQueue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListQueueParamsQueueKYC InvestigatorListQueueParamsQueue = "kyc" InvestigatorListQueueParamsQueueKYB InvestigatorListQueueParamsQueue = "kyb" InvestigatorListQueueParamsQueueAML InvestigatorListQueueParamsQueue = "aml" InvestigatorListQueueParamsQueueTransactions InvestigatorListQueueParamsQueue = "transactions" InvestigatorListQueueParamsQueueCases InvestigatorListQueueParamsQueue = "cases" )
Known values of InvestigatorListQueueParamsQueue.
type InvestigatorListQueueParamsRecommendation ¶
type InvestigatorListQueueParamsRecommendation string
InvestigatorListQueueParamsRecommendation is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListQueueParamsRecommendationApprove InvestigatorListQueueParamsRecommendation = "approve" InvestigatorListQueueParamsRecommendationDecline InvestigatorListQueueParamsRecommendation = "decline" InvestigatorListQueueParamsRecommendationEscalate InvestigatorListQueueParamsRecommendation = "escalate" InvestigatorListQueueParamsRecommendationRequest InvestigatorListQueueParamsRecommendation = "request" )
Known values of InvestigatorListQueueParamsRecommendation.
type InvestigatorListQueueParamsScope ¶
type InvestigatorListQueueParamsScope string
InvestigatorListQueueParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorListQueueParamsScopeAll InvestigatorListQueueParamsScope = "all" InvestigatorListQueueParamsScopeIdentity InvestigatorListQueueParamsScope = "identity" InvestigatorListQueueParamsScopeTransactions InvestigatorListQueueParamsScope = "transactions" )
Known values of InvestigatorListQueueParamsScope.
type InvestigatorOverrideRequest ¶
type InvestigatorOverrideRequest struct {
// Required.
Action InvestigatorOverrideRequestAction `json:"action"`
// Required.
Category InvestigatorOverrideRequestCategory `json:"category"`
// Required.
Reason string `json:"reason"`
// Email the person about the decision.
SendEmail Opt[bool] `json:"send_email"`
// Required when `send_email` is true.
EmailAddress Opt[string] `json:"email_address"`
EmailLanguage Opt[string] `json:"email_language"`
}
InvestigatorOverrideRequest is a request object.
func (InvestigatorOverrideRequest) MarshalJSON ¶
func (r InvestigatorOverrideRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorOverrideRequestAction ¶
type InvestigatorOverrideRequestAction string
InvestigatorOverrideRequestAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorOverrideRequestActionApprove InvestigatorOverrideRequestAction = "approve" InvestigatorOverrideRequestActionDecline InvestigatorOverrideRequestAction = "decline" InvestigatorOverrideRequestActionEscalate InvestigatorOverrideRequestAction = "escalate" InvestigatorOverrideRequestActionRequest InvestigatorOverrideRequestAction = "request" )
Known values of InvestigatorOverrideRequestAction.
type InvestigatorOverrideRequestCategory ¶
type InvestigatorOverrideRequestCategory string
InvestigatorOverrideRequestCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorOverrideRequestCategoryMissingContext InvestigatorOverrideRequestCategory = "missing_context" InvestigatorOverrideRequestCategoryNeedsInformation InvestigatorOverrideRequestCategory = "needs_information" InvestigatorOverrideRequestCategoryPolicyDiffers InvestigatorOverrideRequestCategory = "policy_differs" InvestigatorOverrideRequestCategoryEvidenceMisread InvestigatorOverrideRequestCategory = "evidence_misread" InvestigatorOverrideRequestCategoryOther InvestigatorOverrideRequestCategory = "other" )
Known values of InvestigatorOverrideRequestCategory.
type InvestigatorQueueRow ¶
type InvestigatorQueueRow struct {
RunID string `json:"run_id"`
Kind InvestigatorQueueRowKind `json:"kind"`
Queue InvestigatorQueueRowQueue `json:"queue"`
Stage InvestigatorQueueRowStage `json:"stage"`
// The item under review: `id`, `number`, `status`, `name` and, depending on the
// kind, `country`, `workflow`, `vendor_data`, `txn_id`, `amount`, `currency`,
// `direction`, `title` or `priority`.
Subject map[string]any `json:"subject"`
Recommendation InvestigatorQueueRowRecommendation `json:"recommendation"`
RecommendationDetail string `json:"recommendation_detail"`
Confidence InvestigatorQueueRowConfidence `json:"confidence"`
Summary string `json:"summary"`
SourcesCount int64 `json:"sources_count"`
ReadyToAccept bool `json:"ready_to_accept"`
// The locked guardrails that hold this item, if any.
Guardrails any `json:"guardrails"`
WaitingSince time.Time `json:"waiting_since"`
DueAt time.Time `json:"due_at"`
PreparedAt time.Time `json:"prepared_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorQueueRow is a response object.
func (*InvestigatorQueueRow) UnmarshalJSON ¶
func (r *InvestigatorQueueRow) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorQueueRow leniently.
type InvestigatorQueueRowConfidence ¶
type InvestigatorQueueRowConfidence string
InvestigatorQueueRowConfidence is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorQueueRowConfidenceHigh InvestigatorQueueRowConfidence = "high" InvestigatorQueueRowConfidenceModerate InvestigatorQueueRowConfidence = "moderate" InvestigatorQueueRowConfidenceLow InvestigatorQueueRowConfidence = "low" )
Known values of InvestigatorQueueRowConfidence.
type InvestigatorQueueRowKind ¶
type InvestigatorQueueRowKind string
InvestigatorQueueRowKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorQueueRowKindSession InvestigatorQueueRowKind = "session" InvestigatorQueueRowKindBusinessSession InvestigatorQueueRowKind = "business_session" InvestigatorQueueRowKindTransaction InvestigatorQueueRowKind = "transaction" InvestigatorQueueRowKindCase InvestigatorQueueRowKind = "case" )
Known values of InvestigatorQueueRowKind.
type InvestigatorQueueRowQueue ¶
type InvestigatorQueueRowQueue string
InvestigatorQueueRowQueue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorQueueRowQueueKYC InvestigatorQueueRowQueue = "kyc" InvestigatorQueueRowQueueKYB InvestigatorQueueRowQueue = "kyb" InvestigatorQueueRowQueueAML InvestigatorQueueRowQueue = "aml" InvestigatorQueueRowQueueTransactions InvestigatorQueueRowQueue = "transactions" InvestigatorQueueRowQueueCases InvestigatorQueueRowQueue = "cases" )
Known values of InvestigatorQueueRowQueue.
type InvestigatorQueueRowRecommendation ¶
type InvestigatorQueueRowRecommendation string
InvestigatorQueueRowRecommendation is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorQueueRowRecommendationApprove InvestigatorQueueRowRecommendation = "approve" InvestigatorQueueRowRecommendationDecline InvestigatorQueueRowRecommendation = "decline" InvestigatorQueueRowRecommendationEscalate InvestigatorQueueRowRecommendation = "escalate" InvestigatorQueueRowRecommendationRequest InvestigatorQueueRowRecommendation = "request" )
Known values of InvestigatorQueueRowRecommendation.
type InvestigatorQueueRowStage ¶
type InvestigatorQueueRowStage string
InvestigatorQueueRowStage is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorQueueRowStageShadow InvestigatorQueueRowStage = "shadow" InvestigatorQueueRowStageLive InvestigatorQueueRowStage = "live" )
Known values of InvestigatorQueueRowStage.
type InvestigatorRetrieveDashboardParams ¶
type InvestigatorRetrieveDashboardParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorRetrieveDashboardParamsScope] `json:"-" query:"scope"`
}
InvestigatorRetrieveDashboardParams holds the parameters of Client.Investigator.RetrieveDashboard.
func (InvestigatorRetrieveDashboardParams) MarshalJSON ¶
func (r InvestigatorRetrieveDashboardParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorRetrieveDashboardParamsScope ¶
type InvestigatorRetrieveDashboardParamsScope string
InvestigatorRetrieveDashboardParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRetrieveDashboardParamsScopeAll InvestigatorRetrieveDashboardParamsScope = "all" InvestigatorRetrieveDashboardParamsScopeIdentity InvestigatorRetrieveDashboardParamsScope = "identity" InvestigatorRetrieveDashboardParamsScopeTransactions InvestigatorRetrieveDashboardParamsScope = "transactions" )
Known values of InvestigatorRetrieveDashboardParamsScope.
type InvestigatorRetrieveDashboardResponse ¶
type InvestigatorRetrieveDashboardResponse struct {
Stage string `json:"stage"`
WindowDays int64 `json:"window_days"`
Reviews int64 `json:"reviews"`
Decided int64 `json:"decided"`
Automated int64 `json:"automated"`
AutomationRate float64 `json:"automation_rate"`
HoursSaved float64 `json:"hours_saved"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorRetrieveDashboardResponse is a response object.
func (*InvestigatorRetrieveDashboardResponse) UnmarshalJSON ¶
func (r *InvestigatorRetrieveDashboardResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorRetrieveDashboardResponse leniently.
type InvestigatorRetrievePerformanceParams ¶
type InvestigatorRetrievePerformanceParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorRetrievePerformanceParamsScope] `json:"-" query:"scope"`
// Days, ending today.
Period Opt[InvestigatorRetrievePerformanceParamsPeriod] `json:"-" query:"period"`
}
InvestigatorRetrievePerformanceParams holds the parameters of Client.Investigator.RetrievePerformance.
func (InvestigatorRetrievePerformanceParams) MarshalJSON ¶
func (r InvestigatorRetrievePerformanceParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorRetrievePerformanceParamsPeriod ¶
type InvestigatorRetrievePerformanceParamsPeriod string
InvestigatorRetrievePerformanceParamsPeriod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRetrievePerformanceParamsPeriod7 InvestigatorRetrievePerformanceParamsPeriod = "7" InvestigatorRetrievePerformanceParamsPeriod30 InvestigatorRetrievePerformanceParamsPeriod = "30" InvestigatorRetrievePerformanceParamsPeriod90 InvestigatorRetrievePerformanceParamsPeriod = "90" )
Known values of InvestigatorRetrievePerformanceParamsPeriod.
type InvestigatorRetrievePerformanceParamsScope ¶
type InvestigatorRetrievePerformanceParamsScope string
InvestigatorRetrievePerformanceParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRetrievePerformanceParamsScopeAll InvestigatorRetrievePerformanceParamsScope = "all" InvestigatorRetrievePerformanceParamsScopeIdentity InvestigatorRetrievePerformanceParamsScope = "identity" InvestigatorRetrievePerformanceParamsScopeTransactions InvestigatorRetrievePerformanceParamsScope = "transactions" )
Known values of InvestigatorRetrievePerformanceParamsScope.
type InvestigatorRetrievePerformanceResponse ¶
type InvestigatorRetrievePerformanceResponse struct {
Period int64 `json:"period"`
Start string `json:"start"`
End string `json:"end"`
Investigated int64 `json:"investigated"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorRetrievePerformanceResponse is a response object.
func (*InvestigatorRetrievePerformanceResponse) UnmarshalJSON ¶
func (r *InvestigatorRetrievePerformanceResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorRetrievePerformanceResponse leniently.
type InvestigatorRetrieveSummaryParams ¶
type InvestigatorRetrieveSummaryParams struct {
// `identity` (sessions, and cases not opened by a transaction rule) or
// `transactions` (transaction alerts, and cases a transaction rule opened).
Scope Opt[InvestigatorRetrieveSummaryParamsScope] `json:"-" query:"scope"`
// IANA time zone (for example `Europe/Madrid`) that "today" counts from. UTC by
// default.
Timezone Opt[string] `json:"-" query:"timezone"`
}
InvestigatorRetrieveSummaryParams holds the parameters of Client.Investigator.RetrieveSummary.
func (InvestigatorRetrieveSummaryParams) MarshalJSON ¶
func (r InvestigatorRetrieveSummaryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorRetrieveSummaryParamsScope ¶
type InvestigatorRetrieveSummaryParamsScope string
InvestigatorRetrieveSummaryParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRetrieveSummaryParamsScopeAll InvestigatorRetrieveSummaryParamsScope = "all" InvestigatorRetrieveSummaryParamsScopeIdentity InvestigatorRetrieveSummaryParamsScope = "identity" InvestigatorRetrieveSummaryParamsScopeTransactions InvestigatorRetrieveSummaryParamsScope = "transactions" )
Known values of InvestigatorRetrieveSummaryParamsScope.
type InvestigatorRetrieveSummaryResponse ¶
type InvestigatorRetrieveSummaryResponse struct {
Stage string `json:"stage"`
LastReportAt time.Time `json:"last_report_at"`
PreparedToday int64 `json:"prepared_today"`
ReadyToAccept int64 `json:"ready_to_accept"`
Open int64 `json:"open"`
DecidedToday int64 `json:"decided_today"`
AutomationRateMonth float64 `json:"automation_rate_month"`
Preparing int64 `json:"preparing"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorRetrieveSummaryResponse is a response object.
func (*InvestigatorRetrieveSummaryResponse) UnmarshalJSON ¶
func (r *InvestigatorRetrieveSummaryResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorRetrieveSummaryResponse leniently.
type InvestigatorRetrieveTransactionResponse ¶
type InvestigatorRetrieveTransactionResponse struct {
TransactionID string `json:"transaction_id"`
Investigator InvestigatorBlock `json:"investigator"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorRetrieveTransactionResponse is a response object.
func (*InvestigatorRetrieveTransactionResponse) UnmarshalJSON ¶
func (r *InvestigatorRetrieveTransactionResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorRetrieveTransactionResponse leniently.
type InvestigatorRunDetail ¶
type InvestigatorRunDetail struct {
RunID string `json:"run_id"`
Kind InvestigatorRunDetailKind `json:"kind"`
Queue InvestigatorRunDetailQueue `json:"queue"`
Stage InvestigatorRunDetailStage `json:"stage"`
// The item under review: `id`, `number`, `status`, `name` and, depending on the
// kind, `country`, `workflow`, `vendor_data`, `txn_id`, `amount`, `currency`,
// `direction`, `title` or `priority`.
Subject map[string]any `json:"subject"`
Recommendation InvestigatorRunDetailRecommendation `json:"recommendation"`
RecommendationDetail string `json:"recommendation_detail"`
Confidence InvestigatorRunDetailConfidence `json:"confidence"`
Summary string `json:"summary"`
SourcesCount int64 `json:"sources_count"`
ReadyToAccept bool `json:"ready_to_accept"`
// The locked guardrails that hold this item, if any.
Guardrails any `json:"guardrails"`
WaitingSince time.Time `json:"waiting_since"`
DueAt time.Time `json:"due_at"`
PreparedAt time.Time `json:"prepared_at"`
Status string `json:"status"`
IsOpen bool `json:"is_open"`
// How many sections and linked records it read.
Lookups int64 `json:"lookups"`
DurationMs int64 `json:"duration_ms"`
AgentVersion string `json:"agent_version"`
PreparedBeforeOpened bool `json:"prepared_before_opened"`
// The report: reasoning, evidence points with their verdict (`ok`, `risk`,
// `look`, `explained`, `context`) and cited sources, screening hit verdicts
// (`same`, `not_same`, `unclear`) and suggested next steps.
Report map[string]any `json:"report"`
// What I checked: the overview, sections and records it read, in order.
Trail any `json:"trail"`
Decision InvestigatorDecision `json:"decision"`
// What autonomy made of the report (`result`, `reason`, `tier`,
// `policy_version`, `rule`, `agreement`, `decisions`, `threshold`, `at`). Null
// when the queue is not automated.
Autonomy map[string]any `json:"autonomy"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorRunDetail is a response object.
func (*InvestigatorRunDetail) UnmarshalJSON ¶
func (r *InvestigatorRunDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorRunDetail leniently.
type InvestigatorRunDetailConfidence ¶
type InvestigatorRunDetailConfidence string
InvestigatorRunDetailConfidence is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRunDetailConfidenceHigh InvestigatorRunDetailConfidence = "high" InvestigatorRunDetailConfidenceModerate InvestigatorRunDetailConfidence = "moderate" InvestigatorRunDetailConfidenceLow InvestigatorRunDetailConfidence = "low" )
Known values of InvestigatorRunDetailConfidence.
type InvestigatorRunDetailKind ¶
type InvestigatorRunDetailKind string
InvestigatorRunDetailKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRunDetailKindSession InvestigatorRunDetailKind = "session" InvestigatorRunDetailKindBusinessSession InvestigatorRunDetailKind = "business_session" InvestigatorRunDetailKindTransaction InvestigatorRunDetailKind = "transaction" InvestigatorRunDetailKindCase InvestigatorRunDetailKind = "case" )
Known values of InvestigatorRunDetailKind.
type InvestigatorRunDetailQueue ¶
type InvestigatorRunDetailQueue string
InvestigatorRunDetailQueue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRunDetailQueueKYC InvestigatorRunDetailQueue = "kyc" InvestigatorRunDetailQueueKYB InvestigatorRunDetailQueue = "kyb" InvestigatorRunDetailQueueAML InvestigatorRunDetailQueue = "aml" InvestigatorRunDetailQueueTransactions InvestigatorRunDetailQueue = "transactions" InvestigatorRunDetailQueueCases InvestigatorRunDetailQueue = "cases" )
Known values of InvestigatorRunDetailQueue.
type InvestigatorRunDetailRecommendation ¶
type InvestigatorRunDetailRecommendation string
InvestigatorRunDetailRecommendation is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRunDetailRecommendationApprove InvestigatorRunDetailRecommendation = "approve" InvestigatorRunDetailRecommendationDecline InvestigatorRunDetailRecommendation = "decline" InvestigatorRunDetailRecommendationEscalate InvestigatorRunDetailRecommendation = "escalate" InvestigatorRunDetailRecommendationRequest InvestigatorRunDetailRecommendation = "request" )
Known values of InvestigatorRunDetailRecommendation.
type InvestigatorRunDetailStage ¶
type InvestigatorRunDetailStage string
InvestigatorRunDetailStage is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorRunDetailStageShadow InvestigatorRunDetailStage = "shadow" InvestigatorRunDetailStageLive InvestigatorRunDetailStage = "live" )
Known values of InvestigatorRunDetailStage.
type InvestigatorService ¶
type InvestigatorService struct {
// contains filtered or unexported fields
}
InvestigatorService holds the investigator operations. Use it through Client.Investigator.
func (*InvestigatorService) AcceptRun ¶
func (r *InvestigatorService) AcceptRun(ctx context.Context, runID string, params InvestigatorAcceptRequest, opts ...option.RequestOption) (*InvestigatorDecision, error)
AcceptRun: Accept a recommendation.
Applies the recommended action through the item's normal path, so your usual webhooks fire. A `narrative` makes it edited and accepted. Restricted keys need the `decisions` scope (write); transaction alerts also need `transactions` (write). Escalating a verification or transaction opens a case.
POST /v3/investigator/runs/{run_id}/accept/
func (*InvestigatorService) BatchAcceptRuns ¶
func (r *InvestigatorService) BatchAcceptRuns(ctx context.Context, params InvestigatorBatchAcceptRequest, opts ...option.RequestOption) (*InvestigatorBatchAcceptResponse, error)
BatchAcceptRuns: Batch accept recommendations.
Accepts up to 50 reports marked Ready to accept. Each is its own decision: one that cannot be accepted is skipped with its reason. Restricted keys need the `decisions` scope (write); transaction alerts also need `transactions` (write). Escalating a verification or transaction opens a case.
POST /v3/investigator/runs/batch-accept/
func (*InvestigatorService) ExportActivity ¶
func (r *InvestigatorService) ExportActivity(ctx context.Context, params InvestigatorExportActivityParams, opts ...option.RequestOption) (*http.Response, error)
ExportActivity: Export Investigator activity.
The same entries as CSV, one row per decision, newest first, up to 10,000 entries. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
The response is a file (text/csv). Read it from the returned response's body and close it.
GET /v3/investigator/activity/export/
func (*InvestigatorService) ListActivity ¶
func (r *InvestigatorService) ListActivity(ctx context.Context, params InvestigatorListActivityParams, opts ...option.RequestOption) (*Page[map[string]any], error)
ListActivity: List Investigator activity.
The append-only audit trail, newest first. A batch accept is one entry. Adds `counts` per group and `actors`. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
It returns one page; ListActivityAutoPaging iterates over every item of every page.
GET /v3/investigator/activity/
func (*InvestigatorService) ListActivityAutoPaging ¶
func (r *InvestigatorService) ListActivityAutoPaging(ctx context.Context, params InvestigatorListActivityParams, opts ...option.RequestOption) *PageIterator[map[string]any]
ListActivityAutoPaging iterates over every item of every page of ListActivity, fetching pages as needed.
func (*InvestigatorService) ListGuardrails ¶
func (r *InvestigatorService) ListGuardrails(ctx context.Context, opts ...option.RequestOption) (*InvestigatorListGuardrailsResponse, error)
ListGuardrails: List the locked guardrails.
The five guardrails that apply to every queue. They cannot be switched off. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
GET /v3/investigator/guardrails/
func (*InvestigatorService) ListQueue ¶
func (r *InvestigatorService) ListQueue(ctx context.Context, params InvestigatorListQueueParams, opts ...option.RequestOption) (*Page[InvestigatorQueueRow], error)
ListQueue: List the Investigator queue.
Open reports, **Ready to accept** first, then by deadline, risk and wait. `counts` covers every kind in scope. `count` is capped at 100. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
It returns one page; ListQueueAutoPaging iterates over every item of every page.
GET /v3/investigator/queue/
func (*InvestigatorService) ListQueueAutoPaging ¶
func (r *InvestigatorService) ListQueueAutoPaging(ctx context.Context, params InvestigatorListQueueParams, opts ...option.RequestOption) *PageIterator[InvestigatorQueueRow]
ListQueueAutoPaging iterates over every item of every page of ListQueue, fetching pages as needed.
func (*InvestigatorService) OverrideRun ¶
func (r *InvestigatorService) OverrideRun(ctx context.Context, runID string, params InvestigatorOverrideRequest, opts ...option.RequestOption) (*InvestigatorDecision, error)
OverrideRun: Override a recommendation.
Takes another action with a category and a reason. Also overrides a decision the Investigator took on its own while it still stands. Restricted keys need the `decisions` scope (write); transaction alerts also need `transactions` (write). Escalating a verification or transaction opens a case.
POST /v3/investigator/runs/{run_id}/override/
func (*InvestigatorService) RetrieveDashboard ¶
func (r *InvestigatorService) RetrieveDashboard(ctx context.Context, params InvestigatorRetrieveDashboardParams, opts ...option.RequestOption) (*InvestigatorRetrieveDashboardResponse, error)
RetrieveDashboard: Investigator dashboard.
The last 30 days: reviews, decisions, automation rate, hours saved, spend, overrides, quality samples since go-live, per-queue and weekly figures. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
GET /v3/investigator/dashboard/
func (*InvestigatorService) RetrievePerformance ¶
func (r *InvestigatorService) RetrievePerformance(ctx context.Context, params InvestigatorRetrievePerformanceParams, opts ...option.RequestOption) (*InvestigatorRetrievePerformanceResponse, error)
RetrievePerformance: Investigator performance.
Agreement with your team, volume, time saved, confidence calibration, per-queue results, override reasons and disagreements for a period. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
GET /v3/investigator/performance/
func (*InvestigatorService) RetrieveRun ¶
func (r *InvestigatorService) RetrieveRun(ctx context.Context, runID string, opts ...option.RequestOption) (*InvestigatorRunDetail, error)
RetrieveRun: Get an Investigator report.
The full report of one run. 404 when the run has no completed report, or its item was deleted. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
GET /v3/investigator/runs/{run_id}/
func (*InvestigatorService) RetrieveSettings ¶
func (r *InvestigatorService) RetrieveSettings(ctx context.Context, opts ...option.RequestOption) (*InvestigatorSettings, error)
RetrieveSettings: Get Investigator settings.
The stage (`none`, `shadow` or `live`) and the monthly spend limit with this month's spend. Restricted keys need the `applications` scope (read).
GET /v3/investigator/settings/
func (*InvestigatorService) RetrieveSummary ¶
func (r *InvestigatorService) RetrieveSummary(ctx context.Context, params InvestigatorRetrieveSummaryParams, opts ...option.RequestOption) (*InvestigatorRetrieveSummaryResponse, error)
RetrieveSummary: Investigator summary.
Stage, queue counts, reports prepared and decided today, 30-day agreement, prices and the autonomy level of each queue. Restricted keys need the `decisions` scope (read); transaction alerts also need `transactions`.
GET /v3/investigator/summary/
func (*InvestigatorService) RetrieveTransaction ¶
func (r *InvestigatorService) RetrieveTransaction(ctx context.Context, transactionID string, opts ...option.RequestOption) (*InvestigatorRetrieveTransactionResponse, error)
RetrieveTransaction: Get a transaction's Investigator review.
The transaction's latest review, or `investigator: null` when it never had one. Restricted keys need the `decisions` and `transactions` scopes (read).
GET /v3/investigator/transactions/{transaction_id}/
func (*InvestigatorService) UpdateSettings ¶
func (r *InvestigatorService) UpdateSettings(ctx context.Context, params InvestigatorSettingsParam, opts ...option.RequestOption) (*InvestigatorSettings, error)
UpdateSettings: Update Investigator settings.
Change the stage, the monthly spend limit, or both. Moving past `none` needs a plan that includes the Investigator (Growth or higher); `live` also needs a contract that prices it, if you have one. Restricted keys need the `applications` scope (write).
PATCH /v3/investigator/settings/
type InvestigatorSettings ¶
type InvestigatorSettings struct {
Stage InvestigatorSettingsStage `json:"stage"`
StageChangedAt time.Time `json:"stage_changed_at"`
StageChangedBy string `json:"stage_changed_by"`
// Monthly limit in your billing currency, 0.01 to 1,000,000. Null turns it off.
MonthlySpendLimit string `json:"monthly_spend_limit"`
SpendLimit InvestigatorSettingsSpendLimit `json:"spend_limit"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorSettings is a response object.
func (*InvestigatorSettings) UnmarshalJSON ¶
func (r *InvestigatorSettings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorSettings leniently.
type InvestigatorSettingsParam ¶
type InvestigatorSettingsParam struct {
Stage Opt[InvestigatorSettingsStage] `json:"stage"`
// Monthly limit in your billing currency, 0.01 to 1,000,000. Null turns it off.
MonthlySpendLimit Opt[string] `json:"monthly_spend_limit"`
}
InvestigatorSettingsParam is a request object.
func (InvestigatorSettingsParam) MarshalJSON ¶
func (r InvestigatorSettingsParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type InvestigatorSettingsSpendLimit ¶
type InvestigatorSettingsSpendLimit struct {
Enabled bool `json:"enabled"`
Limit string `json:"limit"`
Spent string `json:"spent"`
Reviews int64 `json:"reviews"`
// The price of every open live report, held back because accepting it charges
// it.
Reserved string `json:"reserved"`
Currency string `json:"currency"`
// At the limit: no new review starts.
Paused bool `json:"paused"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
InvestigatorSettingsSpendLimit is a response object.
func (*InvestigatorSettingsSpendLimit) UnmarshalJSON ¶
func (r *InvestigatorSettingsSpendLimit) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes InvestigatorSettingsSpendLimit leniently.
type InvestigatorSettingsStage ¶
type InvestigatorSettingsStage string
InvestigatorSettingsStage is a string with known values below. The set is open: other values may appear and never cause an error.
const ( InvestigatorSettingsStageNone InvestigatorSettingsStage = "none" InvestigatorSettingsStageShadow InvestigatorSettingsStage = "shadow" InvestigatorSettingsStageLive InvestigatorSettingsStage = "live" )
Known values of InvestigatorSettingsStage.
type KYBKeyPeopleParty ¶
type KYBKeyPeopleParty struct {
// Party identifier.
UUID string `json:"uuid"`
// Whether the party is an individual or a company.
EntityType KYBKeyPeoplePartyEntityType `json:"entity_type"`
// `REGISTRY`: taken from the company registry. `USER`: entered in the Key
// People screen.
Source KYBKeyPeoplePartySource `json:"source"`
// Display name of the party.
Name string `json:"name"`
// First name (persons).
FirstName string `json:"first_name"`
// Last name (persons).
LastName string `json:"last_name"`
// Company name (company parties).
CompanyName string `json:"company_name"`
// Company registration number (company parties).
RegistrationNumber string `json:"registration_number"`
// Email the verification link is sent to.
Email string `json:"email"`
// Nationality for persons, country of incorporation for companies.
Nationality string `json:"nationality"`
// Phone number collected for the party.
PhoneNumber string `json:"phone_number"`
// Date of birth (persons).
DateOfBirth string `json:"date_of_birth"`
// Free-text job title (persons).
Position string `json:"position"`
// Workflow-defined custom fields collected for the party, keyed by field key.
CustomFields map[string]any `json:"custom_fields"`
// Whether the party is active.
IsActive bool `json:"is_active"`
// Whether the party is exempt from verification. Regenerating clears it.
IsSkipped bool `json:"is_skipped"`
// Whether the role and ownership rules require a verification for this party.
RequiresVerification bool `json:"requires_verification"`
// Roles the party holds in the company.
Roles []KYBKeyPeoplePartyRoles `json:"roles"`
// Child individual KYC session (persons).
KYCSessionID string `json:"kyc_session_id"`
// Status of the child KYC session. A deleted session keeps the status it had
// when it was deleted.
KYCSessionStatus KYBKeyPeoplePartyKYCSessionStatus `json:"kyc_session_status"`
// Hosted link of the child KYC session. `null` when there is none or it was
// deleted, and for a scoped API key without `sessions: write`.
KYCSessionURL string `json:"kyc_session_url"`
// The child KYC session was deleted, so it can never settle.
KYCSessionDeleted bool `json:"kyc_session_deleted"`
// Child KYB session (company parties).
KYBSubSessionID string `json:"kyb_sub_session_id"`
// Status of the child KYB session.
KYBSubSessionStatus KYBKeyPeoplePartyKYBSubSessionStatus `json:"kyb_sub_session_status"`
// Hosted link of the child KYB session, with the same `null` rules as
// `kyc_session_url`.
KYBSubSessionURL string `json:"kyb_sub_session_url"`
// Company-party counterpart of `kyc_session_deleted`.
KYBSubSessionDeleted bool `json:"kyb_sub_session_deleted"`
// Type of the workflow the child session runs.
VerificationWorkflowType KYBKeyPeoplePartyVerificationWorkflowType `json:"verification_workflow_type"`
// Workflow the child session runs.
VerificationWorkflowID string `json:"verification_workflow_id"`
// Label of that workflow.
VerificationWorkflowLabel string `json:"verification_workflow_label"`
// Features of the child session's workflow with their current status.
VerificationWorkflowFeatures []KYBKeyPeoplePartyVerificationWorkflowFeatures `json:"verification_workflow_features"`
// Didit's identifier of the verified person, once known.
DiditInternalID string `json:"didit_internal_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBKeyPeopleParty: A Key People party of a Business Verification (KYB) session, with its child verification. The same party appears in `key_people_checks[].submitted.parties[]` of the business session decision.
func (*KYBKeyPeopleParty) UnmarshalJSON ¶
func (r *KYBKeyPeopleParty) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBKeyPeopleParty leniently.
type KYBKeyPeoplePartyEntityType ¶
type KYBKeyPeoplePartyEntityType string
KYBKeyPeoplePartyEntityType: Whether the party is an individual or a company.
KYBKeyPeoplePartyEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartyEntityTypePerson KYBKeyPeoplePartyEntityType = "person" KYBKeyPeoplePartyEntityTypeCompany KYBKeyPeoplePartyEntityType = "company" )
Known values of KYBKeyPeoplePartyEntityType.
type KYBKeyPeoplePartyKYBSubSessionStatus ¶
type KYBKeyPeoplePartyKYBSubSessionStatus string
KYBKeyPeoplePartyKYBSubSessionStatus: Status of the child KYB session.
KYBKeyPeoplePartyKYBSubSessionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartyKYBSubSessionStatusNotStarted KYBKeyPeoplePartyKYBSubSessionStatus = "Not Started" KYBKeyPeoplePartyKYBSubSessionStatusInProgress KYBKeyPeoplePartyKYBSubSessionStatus = "In Progress" KYBKeyPeoplePartyKYBSubSessionStatusApproved KYBKeyPeoplePartyKYBSubSessionStatus = "Approved" KYBKeyPeoplePartyKYBSubSessionStatusDeclined KYBKeyPeoplePartyKYBSubSessionStatus = "Declined" KYBKeyPeoplePartyKYBSubSessionStatusInReview KYBKeyPeoplePartyKYBSubSessionStatus = "In Review" KYBKeyPeoplePartyKYBSubSessionStatusExpired KYBKeyPeoplePartyKYBSubSessionStatus = "Expired" KYBKeyPeoplePartyKYBSubSessionStatusAbandoned KYBKeyPeoplePartyKYBSubSessionStatus = "Abandoned" KYBKeyPeoplePartyKYBSubSessionStatusKYCExpired KYBKeyPeoplePartyKYBSubSessionStatus = "Kyc Expired" KYBKeyPeoplePartyKYBSubSessionStatusResubmitted KYBKeyPeoplePartyKYBSubSessionStatus = "Resubmitted" KYBKeyPeoplePartyKYBSubSessionStatusAwaitingUser KYBKeyPeoplePartyKYBSubSessionStatus = "Awaiting User" )
Known values of KYBKeyPeoplePartyKYBSubSessionStatus.
type KYBKeyPeoplePartyKYCSessionStatus ¶
type KYBKeyPeoplePartyKYCSessionStatus string
KYBKeyPeoplePartyKYCSessionStatus: Status of the child KYC session. A deleted session keeps the status it had when it was deleted.
KYBKeyPeoplePartyKYCSessionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartyKYCSessionStatusNotStarted KYBKeyPeoplePartyKYCSessionStatus = "Not Started" KYBKeyPeoplePartyKYCSessionStatusInProgress KYBKeyPeoplePartyKYCSessionStatus = "In Progress" KYBKeyPeoplePartyKYCSessionStatusApproved KYBKeyPeoplePartyKYCSessionStatus = "Approved" KYBKeyPeoplePartyKYCSessionStatusDeclined KYBKeyPeoplePartyKYCSessionStatus = "Declined" KYBKeyPeoplePartyKYCSessionStatusInReview KYBKeyPeoplePartyKYCSessionStatus = "In Review" KYBKeyPeoplePartyKYCSessionStatusExpired KYBKeyPeoplePartyKYCSessionStatus = "Expired" KYBKeyPeoplePartyKYCSessionStatusAbandoned KYBKeyPeoplePartyKYCSessionStatus = "Abandoned" KYBKeyPeoplePartyKYCSessionStatusKYCExpired KYBKeyPeoplePartyKYCSessionStatus = "Kyc Expired" KYBKeyPeoplePartyKYCSessionStatusResubmitted KYBKeyPeoplePartyKYCSessionStatus = "Resubmitted" KYBKeyPeoplePartyKYCSessionStatusAwaitingUser KYBKeyPeoplePartyKYCSessionStatus = "Awaiting User" )
Known values of KYBKeyPeoplePartyKYCSessionStatus.
type KYBKeyPeoplePartyRoles ¶
type KYBKeyPeoplePartyRoles struct {
// Role code.
Role KYBKeyPeoplePartyRolesRole `json:"role"`
// Ownership percentage for this role, when known.
OwnershipPercent float64 `json:"ownership_percent"`
// Voting-rights percentage for this role, when known.
VotingPercent float64 `json:"voting_percent"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBKeyPeoplePartyRoles is a response object.
func (*KYBKeyPeoplePartyRoles) UnmarshalJSON ¶
func (r *KYBKeyPeoplePartyRoles) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBKeyPeoplePartyRoles leniently.
type KYBKeyPeoplePartyRolesRole ¶
type KYBKeyPeoplePartyRolesRole string
KYBKeyPeoplePartyRolesRole: Role code.
KYBKeyPeoplePartyRolesRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartyRolesRoleDirector KYBKeyPeoplePartyRolesRole = "director" KYBKeyPeoplePartyRolesRoleNonExecutiveDirector KYBKeyPeoplePartyRolesRole = "non_executive_director" KYBKeyPeoplePartyRolesRoleSecretary KYBKeyPeoplePartyRolesRole = "secretary" KYBKeyPeoplePartyRolesRoleChairman KYBKeyPeoplePartyRolesRole = "chairman" KYBKeyPeoplePartyRolesRoleUBO KYBKeyPeoplePartyRolesRole = "ubo" KYBKeyPeoplePartyRolesRoleRepresentative KYBKeyPeoplePartyRolesRole = "representative" KYBKeyPeoplePartyRolesRoleFounder KYBKeyPeoplePartyRolesRole = "founder" KYBKeyPeoplePartyRolesRoleLegalAdvisor KYBKeyPeoplePartyRolesRole = "legal_advisor" KYBKeyPeoplePartyRolesRoleAuthorizedSignatory KYBKeyPeoplePartyRolesRole = "authorized_signatory" KYBKeyPeoplePartyRolesRoleTrustee KYBKeyPeoplePartyRolesRole = "trustee" KYBKeyPeoplePartyRolesRoleBeneficiary KYBKeyPeoplePartyRolesRole = "beneficiary" KYBKeyPeoplePartyRolesRoleSettlor KYBKeyPeoplePartyRolesRole = "settlor" KYBKeyPeoplePartyRolesRoleProtector KYBKeyPeoplePartyRolesRole = "protector" KYBKeyPeoplePartyRolesRoleCompanyOfficer KYBKeyPeoplePartyRolesRole = "company_officer" KYBKeyPeoplePartyRolesRoleInvestor KYBKeyPeoplePartyRolesRole = "investor" KYBKeyPeoplePartyRolesRoleOther KYBKeyPeoplePartyRolesRole = "other" )
Known values of KYBKeyPeoplePartyRolesRole.
type KYBKeyPeoplePartySource ¶
type KYBKeyPeoplePartySource string
KYBKeyPeoplePartySource: `REGISTRY`: taken from the company registry. `USER`: entered in the Key People screen.
KYBKeyPeoplePartySource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartySourceRegistry KYBKeyPeoplePartySource = "REGISTRY" KYBKeyPeoplePartySourceUser KYBKeyPeoplePartySource = "USER" )
Known values of KYBKeyPeoplePartySource.
type KYBKeyPeoplePartyVerificationWorkflowFeatures ¶
type KYBKeyPeoplePartyVerificationWorkflowFeatures struct {
// Feature code, for example `ID_VERIFICATION` or `LIVENESS`.
Feature string `json:"feature"`
// Feature status, `Not Finished` until it runs.
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBKeyPeoplePartyVerificationWorkflowFeatures is a response object.
func (*KYBKeyPeoplePartyVerificationWorkflowFeatures) UnmarshalJSON ¶
func (r *KYBKeyPeoplePartyVerificationWorkflowFeatures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBKeyPeoplePartyVerificationWorkflowFeatures leniently.
type KYBKeyPeoplePartyVerificationWorkflowType ¶
type KYBKeyPeoplePartyVerificationWorkflowType string
KYBKeyPeoplePartyVerificationWorkflowType: Type of the workflow the child session runs.
KYBKeyPeoplePartyVerificationWorkflowType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBKeyPeoplePartyVerificationWorkflowTypeKYC KYBKeyPeoplePartyVerificationWorkflowType = "kyc" KYBKeyPeoplePartyVerificationWorkflowTypeKYB KYBKeyPeoplePartyVerificationWorkflowType = "kyb" KYBKeyPeoplePartyVerificationWorkflowTypeAdaptiveAgeVerification KYBKeyPeoplePartyVerificationWorkflowType = "adaptive_age_verification" KYBKeyPeoplePartyVerificationWorkflowTypeBiometricAuthentication KYBKeyPeoplePartyVerificationWorkflowType = "biometric_authentication" KYBKeyPeoplePartyVerificationWorkflowTypeAddressVerification KYBKeyPeoplePartyVerificationWorkflowType = "address_verification" KYBKeyPeoplePartyVerificationWorkflowTypeQuestionnaireVerification KYBKeyPeoplePartyVerificationWorkflowType = "questionnaire_verification" KYBKeyPeoplePartyVerificationWorkflowTypeEmailVerification KYBKeyPeoplePartyVerificationWorkflowType = "email_verification" KYBKeyPeoplePartyVerificationWorkflowTypePhoneVerification KYBKeyPeoplePartyVerificationWorkflowType = "phone_verification" )
Known values of KYBKeyPeoplePartyVerificationWorkflowType.
type KYBListShareholdersResponse ¶
type KYBListShareholdersResponse struct {
// (visible in the console) keeps updating if the registry resolves after the
// response.
RequestID string `json:"request_id"`
// `ubo`.
RegistryTierRequested KYBListShareholdersResponseRegistryTierRequested `json:"registry_tier_requested"`
// country's registries hold no ownership data, or the registry has no ownership
// record for this company.
RegistryTierDelivered KYBListShareholdersResponseRegistryTierDelivered `json:"registry_tier_delivered"`
KYBRegistry KYBListShareholdersResponseKYBRegistry `json:"kyb_registry"`
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListShareholdersResponse is a response object.
func (*KYBListShareholdersResponse) UnmarshalJSON ¶
func (r *KYBListShareholdersResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListShareholdersResponse leniently.
type KYBListShareholdersResponseKYBRegistry ¶
type KYBListShareholdersResponseKYBRegistry struct {
// Didit's id for this company record.
// is not active in the registry or ownership data could not be derived).
Status KYBListShareholdersResponseKYBRegistryStatus `json:"status"`
RegistryStatus KYBListShareholdersResponseKYBRegistryRegistryStatus `json:"registry_status"`
// `true` once the registry returned the full profile. `false` when the registry
// was still processing after polling - the stored record completes
// automatically once the registry resolves.
CountryCode string `json:"country_code"`
// Subdivision code when the registry is regional (e.g. `CA` for `US-CA`); empty
// otherwise.
RiskLevel string `json:"risk_level"`
VerificationStatus string `json:"verification_status"`
// registry.
IsFromRegistry bool `json:"is_from_registry"`
FetchStatus KYBListShareholdersResponseKYBRegistryFetchStatus `json:"fetch_status"`
// reported.
AlternativeNames string `json:"alternative_names"`
// Activity description or classification code, when reported.
RegisteredCapitalAmount string `json:"registered_capital_amount"`
// ISO 4217 code, when reported.
LegalEntityIdentifier string `json:"legal_entity_identifier"`
LocationOfRegistration string `json:"location_of_registration"`
// afterwards. At select time this is typically not yet set - VAT and tax ID
// validation runs when the end user submits the registry step in the hosted
// flow.
VATNumber string `json:"vat_number"`
// at registry submit. `valid` / `invalid`: decided by the official registry of
// the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica,
// Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid`
// / `invalid_format`: decided by the country's format and check-digit rules
// where no registry can be queried. `could_not_validate`: the registry was
// unavailable. `not_applicable`: no number, a country without registry or
// rules, or a sandbox session.
VATValidationStatus KYBListShareholdersResponseKYBRegistryVATValidationStatus `json:"vat_validation_status"`
// number derived from a French SIREN or a Dutch RSIN). `null` when no check
// ran.
VATValidatedNumber string `json:"vat_validated_number"`
// `format_rules`. `null` when no check ran.
VATValidationSource KYBListShareholdersResponseKYBRegistryVATValidationSource `json:"vat_validation_source"`
// one. Only set when the status is `valid`.
VATValidatedName string `json:"vat_validated_name"`
// discloses one. Only set when the status is `valid`.
VATValidatedAddress string `json:"vat_validated_address"`
VATCheckedAt time.Time `json:"vat_checked_at"`
// classes), when available.
FinancialSummary map[string]any `json:"financial_summary"`
Officers []KYBListShareholdersResponseKYBRegistryOfficers `json:"officers"`
// registry. Can be empty when the registry does not expose ownership.
BeneficialOwners []KYBListShareholdersResponseKYBRegistryBeneficialOwners `json:"beneficial_owners"`
// none.
Addresses []KYBRegistryAddress `json:"addresses"`
// shape. Null when it states none.
Industries []KYBRegistryIndustry `json:"industries"`
// use last_annual_return_date and last_agm_date; they are distinct from
// financial accounts.
Accounts map[string]any `json:"accounts"`
// differs by country and source and is not a stable contract: read the
// canonical fields (`addresses`, `industries`, `ownership`,
// `beneficial_owners[].shareholding`) instead.
RegistryData map[string]any `json:"registry_data"`
// edit registry data).
UserProvidedData map[string]any `json:"user_provided_data"`
ConfirmedByUserAt time.Time `json:"confirmed_by_user_at"`
LastConsoleEditAt time.Time `json:"last_console_edit_at"`
// flow/console.
IsEditable bool `json:"is_editable"`
RegistryTierDelivered KYBListShareholdersResponseKYBRegistryRegistryTierDelivered `json:"registry_tier_delivered"`
// `delivered` when the ownership data came back, `unavailable` when an
// ownership tier was requested but the registry had none for this company (see
// `registry_data.ownership_error`), `pending` when the ownership section has
// not been retrieved from the registry yet and Didit is still completing it,
// `not_requested` on the Lite tier.
// Also in `ownership.tier_requested`.
RegistryTier string `json:"registry_tier"`
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListShareholdersResponseKYBRegistry: Full registry company profile.
func (*KYBListShareholdersResponseKYBRegistry) UnmarshalJSON ¶
func (r *KYBListShareholdersResponseKYBRegistry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListShareholdersResponseKYBRegistry leniently.
type KYBListShareholdersResponseKYBRegistryBeneficialOwners ¶
type KYBListShareholdersResponseKYBRegistryBeneficialOwners struct {
EntityType KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType `json:"entity_type"`
Roles []string `json:"roles"`
OwnershipMinShares string `json:"ownership_min_shares"`
// Upper bound of the ownership band reported by the registry.
// Parsed ownership percentage (max bound, falling back to min bound).
DateOfBirth string `json:"date_of_birth"`
// Appointment date when reported.
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListShareholdersResponseKYBRegistryBeneficialOwners is a response object.
func (*KYBListShareholdersResponseKYBRegistryBeneficialOwners) UnmarshalJSON ¶
func (r *KYBListShareholdersResponseKYBRegistryBeneficialOwners) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListShareholdersResponseKYBRegistryBeneficialOwners leniently.
type KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType ¶
type KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType string
KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType: Whether the owner is a natural person or a corporate entity.
KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryBeneficialOwnersEntityType.
type KYBListShareholdersResponseKYBRegistryBeneficialOwnersKYCStatus ¶
type KYBListShareholdersResponseKYBRegistryBeneficialOwnersKYCStatus string
KYBListShareholdersResponseKYBRegistryBeneficialOwnersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryBeneficialOwnersKYCStatus.
type KYBListShareholdersResponseKYBRegistryFetchStatus ¶
type KYBListShareholdersResponseKYBRegistryFetchStatus string
KYBListShareholdersResponseKYBRegistryFetchStatus: Registry fetch lifecycle. Mirrored by `data_resolved`.
KYBListShareholdersResponseKYBRegistryFetchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryFetchStatus.
type KYBListShareholdersResponseKYBRegistryOfficers ¶
type KYBListShareholdersResponseKYBRegistryOfficers struct {
Designation string `json:"designation"`
// Normalized role derived from the designation. Full 17-value model set;
// registry parsing on this endpoint typically emits director,
// non_executive_director, secretary, chairman, or company_officer.
IsActive bool `json:"is_active"`
// `null` otherwise.
KYCStatus KYBListShareholdersResponseKYBRegistryOfficersKYCStatus `json:"kyc_status"`
KYCSessionURL string `json:"kyc_session_url"`
// full name.
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
Address string `json:"address"`
AppointmentDate string `json:"appointment_date"`
TerminationDate string `json:"termination_date"`
// is known.
DateOfBirth string `json:"date_of_birth"`
DateOfBirthYear int64 `json:"date_of_birth_year"`
DateOfBirthMonth int64 `json:"date_of_birth_month"`
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListShareholdersResponseKYBRegistryOfficers is a response object.
func (*KYBListShareholdersResponseKYBRegistryOfficers) UnmarshalJSON ¶
func (r *KYBListShareholdersResponseKYBRegistryOfficers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListShareholdersResponseKYBRegistryOfficers leniently.
type KYBListShareholdersResponseKYBRegistryOfficersKYCStatus ¶
type KYBListShareholdersResponseKYBRegistryOfficersKYCStatus string
KYBListShareholdersResponseKYBRegistryOfficersKYCStatus: Status of an associated KYC session, when one was started for this officer. `null` otherwise.
KYBListShareholdersResponseKYBRegistryOfficersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryOfficersKYCStatus.
type KYBListShareholdersResponseKYBRegistryOfficersRole ¶
type KYBListShareholdersResponseKYBRegistryOfficersRole string
KYBListShareholdersResponseKYBRegistryOfficersRole: Normalized role derived from the designation. Full 17-value model set; registry parsing on this endpoint typically emits director, non_executive_director, secretary, chairman, or company_officer.
KYBListShareholdersResponseKYBRegistryOfficersRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryOfficersRole.
type KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus ¶
type KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus string
KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus: `delivered` when the ownership data came back, `unavailable` when an ownership tier was requested but the registry had none for this company (see `registry_data.ownership_error`), `pending` when the ownership section has not been retrieved from the registry yet and Didit is still completing it, `not_requested` on the Lite tier.
KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryRegistryOwnershipStatus.
type KYBListShareholdersResponseKYBRegistryRegistryStatus ¶
type KYBListShareholdersResponseKYBRegistryRegistryStatus string
KYBListShareholdersResponseKYBRegistryRegistryStatus: Normalized company status as reported by the registry.
KYBListShareholdersResponseKYBRegistryRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryRegistryStatus.
type KYBListShareholdersResponseKYBRegistryRegistryTierDelivered ¶
type KYBListShareholdersResponseKYBRegistryRegistryTierDelivered string
KYBListShareholdersResponseKYBRegistryRegistryTierDelivered: Same as the top-level `registry_tier_delivered`.
KYBListShareholdersResponseKYBRegistryRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryRegistryTierDelivered.
type KYBListShareholdersResponseKYBRegistryStatus ¶
type KYBListShareholdersResponseKYBRegistryStatus string
KYBListShareholdersResponseKYBRegistryStatus: Didit's assessment of the registry check (e.g. `In Review` when the company is not active in the registry or ownership data could not be derived).
KYBListShareholdersResponseKYBRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryStatus.
type KYBListShareholdersResponseKYBRegistryVATValidationSource ¶
type KYBListShareholdersResponseKYBRegistryVATValidationSource string
KYBListShareholdersResponseKYBRegistryVATValidationSource: The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.
KYBListShareholdersResponseKYBRegistryVATValidationSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryVATValidationSource.
type KYBListShareholdersResponseKYBRegistryVATValidationStatus ¶
type KYBListShareholdersResponseKYBRegistryVATValidationStatus string
KYBListShareholdersResponseKYBRegistryVATValidationStatus: Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.
KYBListShareholdersResponseKYBRegistryVATValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseKYBRegistryVATValidationStatus.
type KYBListShareholdersResponseRegistryTierDelivered ¶
type KYBListShareholdersResponseRegistryTierDelivered string
KYBListShareholdersResponseRegistryTierDelivered: The tier actually delivered and billed. Lower than requested when the country's registries hold no ownership data, or the registry has no ownership record for this company.
KYBListShareholdersResponseRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseRegistryTierDelivered.
type KYBListShareholdersResponseRegistryTierRequested ¶
type KYBListShareholdersResponseRegistryTierRequested string
KYBListShareholdersResponseRegistryTierRequested: The tier this endpoint sells: `basic` (Lite) for select, `shareholders`, `ubo`.
KYBListShareholdersResponseRegistryTierRequested is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBListShareholdersResponseRegistryTierRequested.
type KYBListUBOsResponse ¶
type KYBListUBOsResponse struct {
// Id of the business session created for this retrieval. The stored record
// (visible in the console) keeps updating if the registry resolves after the
// response.
RequestID string `json:"request_id"`
// The tier this endpoint sells: `basic` (Lite) for select, `shareholders`,
// `ubo`.
RegistryTierRequested KYBListUBOsResponseRegistryTierRequested `json:"registry_tier_requested"`
// The tier actually delivered and billed. Lower than requested when the
// country's registries hold no ownership data, when the registry has no
// ownership record for this company, or when the resolved report of a `ubo`
// request names no natural person as a beneficial owner.
RegistryTierDelivered KYBListUBOsResponseRegistryTierDelivered `json:"registry_tier_delivered"`
// Full registry company profile.
KYBRegistry KYBListUBOsResponseKYBRegistry `json:"kyb_registry"`
// Echo of the `vendor_data` you sent.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListUBOsResponse is a response object.
func (*KYBListUBOsResponse) UnmarshalJSON ¶
func (r *KYBListUBOsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListUBOsResponse leniently.
type KYBListUBOsResponseKYBRegistry ¶
type KYBListUBOsResponseKYBRegistry struct {
// Didit's id for this company record.
UUID string `json:"uuid"`
NodeID string `json:"node_id"`
// Didit's assessment of the registry check (e.g. `In Review` when the company
// is not active in the registry or ownership data could not be derived).
Status KYBListUBOsResponseKYBRegistryStatus `json:"status"`
// Normalized company status as reported by the registry.
RegistryStatus KYBListUBOsResponseKYBRegistryRegistryStatus `json:"registry_status"`
// `true` once the registry returned the full profile. `false` when the registry
// was still processing after polling - the stored record completes
// automatically once the registry resolves.
DataResolved bool `json:"data_resolved"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
// ISO 3166-1 alpha-2.
CountryCode string `json:"country_code"`
// Subdivision code when the registry is regional (e.g. `CA` for `US-CA`); empty
// otherwise.
Region string `json:"region"`
CompanyType string `json:"company_type"`
IncorporationDate string `json:"incorporation_date"`
RegisteredAddress string `json:"registered_address"`
TaxNumber string `json:"tax_number"`
// Registry-reported risk level, when available.
RiskLevel string `json:"risk_level"`
// Registry verification status, when available.
VerificationStatus string `json:"verification_status"`
// Always `true` for this endpoint - the profile was retrieved from an official
// registry.
IsFromRegistry bool `json:"is_from_registry"`
// Registry fetch lifecycle. Mirrored by `data_resolved`.
FetchStatus KYBListUBOsResponseKYBRegistryFetchStatus `json:"fetch_status"`
// Alternative, trading, former or original-language company names as text, when
// reported.
AlternativeNames string `json:"alternative_names"`
// Activity description or classification code, when reported.
NatureOfBusiness string `json:"nature_of_business"`
RegisteredCapital string `json:"registered_capital"`
// Decimal amount as a string, when reported.
RegisteredCapitalAmount string `json:"registered_capital_amount"`
// ISO 4217 code, when reported.
RegisteredCapitalCurrency string `json:"registered_capital_currency"`
Website string `json:"website"`
Email string `json:"email"`
Phone string `json:"phone"`
// LEI, when reported.
LegalEntityIdentifier string `json:"legal_entity_identifier"`
// Registry/jurisdiction the company is registered with, when reported.
LocationOfRegistration string `json:"location_of_registration"`
// EU VAT number, when collected during the hosted registry step or edited
// afterwards. At select time this is typically not yet set - VAT and tax ID
// validation runs when the end user submits the registry step in the hosted
// flow.
VATNumber string `json:"vat_number"`
// Result of validating the VAT number or, when there is none, the `tax_number`,
// at registry submit. `valid` / `invalid`: decided by the official registry of
// the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica,
// Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid`
// / `invalid_format`: decided by the country's format and check-digit rules
// where no registry can be queried. `could_not_validate`: the registry was
// unavailable. `not_applicable`: no number, a country without registry or
// rules, or a sandbox session.
VATValidationStatus KYBListUBOsResponseKYBRegistryVATValidationStatus `json:"vat_validation_status"`
// The number that was checked, as the source knows it (for example the VAT
// number derived from a French SIREN or a Dutch RSIN). `null` when no check
// ran.
VATValidatedNumber string `json:"vat_validated_number"`
// The source that decided `vat_validation_status`: an official registry, or
// `format_rules`. `null` when no check ran.
VATValidationSource KYBListUBOsResponseKYBRegistryVATValidationSource `json:"vat_validation_source"`
// Name registered with the source that validated the number, when it discloses
// one. Only set when the status is `valid`.
VATValidatedName string `json:"vat_validated_name"`
// Address registered with the source that validated the number, when it
// discloses one. Only set when the status is `valid`.
VATValidatedAddress string `json:"vat_validated_address"`
// Timestamp of the check. `null` when no check ran.
VATCheckedAt time.Time `json:"vat_checked_at"`
// Registry-reported share/capital details (currency, total shares, share
// classes), when available.
FinancialSummary map[string]any `json:"financial_summary"`
// Directors, secretaries, and other officers extracted from the registry.
Officers []KYBListUBOsResponseKYBRegistryOfficers `json:"officers"`
// Beneficial owners / persons with significant control extracted from the
// registry. Can be empty when the registry does not expose ownership.
BeneficialOwners []KYBListUBOsResponseKYBRegistryBeneficialOwners `json:"beneficial_owners"`
// Every address the registry states, one canonical shape. Null when it states
// none.
Addresses []KYBRegistryAddress `json:"addresses"`
// The activities the registry classifies the company under, one canonical
// shape. Null when it states none.
Industries []KYBRegistryIndustry `json:"industries"`
// Registry filing dates, when available. Annual returns and general meetings
// use last_annual_return_date and last_agm_date; they are distinct from
// financial accounts.
Accounts map[string]any `json:"accounts"`
// Raw record returned by the registry source, kept for reviewers. Its shape
// differs by country and source and is not a stable contract: read the
// canonical fields (`addresses`, `industries`, `ownership`,
// `beneficial_owners[].shareholding`) instead.
RegistryData map[string]any `json:"registry_data"`
// Always `null` on this endpoint (used by the hosted KYB flow when end users
// edit registry data).
UserProvidedData map[string]any `json:"user_provided_data"`
// Always `null` on this endpoint.
ConfirmedByUserAt time.Time `json:"confirmed_by_user_at"`
// Set when a console reviewer edits the record later.
LastConsoleEditAt time.Time `json:"last_console_edit_at"`
// Whether the registry-sourced data can still be edited in the hosted
// flow/console.
IsEditable bool `json:"is_editable"`
// Same as the top-level `registry_tier_delivered`.
RegistryTierDelivered KYBListUBOsResponseKYBRegistryRegistryTierDelivered `json:"registry_tier_delivered"`
// `delivered` when the ownership data came back, `unavailable` when an
// ownership tier was requested but the registry had none for this company (see
// `registry_data.ownership_error`), `pending` when the ownership section has
// not been retrieved from the registry yet and Didit is still completing it,
// `not_requested` on the Lite tier.
RegistryOwnershipStatus KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus `json:"registry_ownership_status"`
Ownership KYBRegistryOwnership `json:"ownership"`
// The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`.
// Also in `ownership.tier_requested`.
RegistryTier string `json:"registry_tier"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListUBOsResponseKYBRegistry: Full registry company profile.
func (*KYBListUBOsResponseKYBRegistry) UnmarshalJSON ¶
func (r *KYBListUBOsResponseKYBRegistry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListUBOsResponseKYBRegistry leniently.
type KYBListUBOsResponseKYBRegistryBeneficialOwners ¶
type KYBListUBOsResponseKYBRegistryBeneficialOwners struct {
UUID string `json:"uuid"`
Name string `json:"name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
// Whether the owner is a natural person or a corporate entity.
EntityType KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType `json:"entity_type"`
// Normalized roles (e.g. `ubo`, `shareholder`).
Roles []string `json:"roles"`
OwnershipMinShares string `json:"ownership_min_shares"`
// Upper bound of the ownership band reported by the registry.
IsActive bool `json:"is_active"`
KYCStatus KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus `json:"kyc_status"`
KYCSessionURL string `json:"kyc_session_url"`
// Parsed ownership percentage (max bound, falling back to min bound).
EffectiveOwnershipPercent float64 `json:"effective_ownership_percent"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
CountryOfBirth string `json:"country_of_birth"`
Email string `json:"email"`
Nationality string `json:"nationality"`
Designation string `json:"designation"`
// Complete birth date when reported.
DateOfBirth string `json:"date_of_birth"`
// Appointment date when reported.
AppointmentDate string `json:"appointment_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListUBOsResponseKYBRegistryBeneficialOwners is a response object.
func (*KYBListUBOsResponseKYBRegistryBeneficialOwners) UnmarshalJSON ¶
func (r *KYBListUBOsResponseKYBRegistryBeneficialOwners) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListUBOsResponseKYBRegistryBeneficialOwners leniently.
type KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType ¶
type KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType string
KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType: Whether the owner is a natural person or a corporate entity.
KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityTypePerson KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType = "person" KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityTypeCompany KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType = "company" )
Known values of KYBListUBOsResponseKYBRegistryBeneficialOwnersEntityType.
type KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus ¶
type KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus string
KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatusApproved KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus = "Approved" KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatusDeclined KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus = "Declined" KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatusPending KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus = "Pending" )
Known values of KYBListUBOsResponseKYBRegistryBeneficialOwnersKYCStatus.
type KYBListUBOsResponseKYBRegistryFetchStatus ¶
type KYBListUBOsResponseKYBRegistryFetchStatus string
KYBListUBOsResponseKYBRegistryFetchStatus: Registry fetch lifecycle. Mirrored by `data_resolved`.
KYBListUBOsResponseKYBRegistryFetchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryFetchStatusPending KYBListUBOsResponseKYBRegistryFetchStatus = "pending" KYBListUBOsResponseKYBRegistryFetchStatusResolved KYBListUBOsResponseKYBRegistryFetchStatus = "resolved" )
Known values of KYBListUBOsResponseKYBRegistryFetchStatus.
type KYBListUBOsResponseKYBRegistryOfficers ¶
type KYBListUBOsResponseKYBRegistryOfficers struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// Raw registry designation (e.g. `Director`, `Secretary`).
Designation string `json:"designation"`
// Normalized role derived from the designation. Full 17-value model set;
// registry parsing on this endpoint typically emits director,
// non_executive_director, secretary, chairman, or company_officer.
Role KYBListUBOsResponseKYBRegistryOfficersRole `json:"role"`
Nationality string `json:"nationality"`
// `false` when the registry marks the appointment as resigned.
IsActive bool `json:"is_active"`
// Status of an associated KYC session, when one was started for this officer.
// `null` otherwise.
KYCStatus KYBListUBOsResponseKYBRegistryOfficersKYCStatus `json:"kyc_status"`
// Verification URL of the associated KYC session, when one exists.
KYCSessionURL string `json:"kyc_session_url"`
// Given name when explicitly reported by the registry; not inferred from the
// full name.
FirstName string `json:"first_name"`
// Family name when explicitly reported by the registry.
LastName string `json:"last_name"`
// Officer address reported by the registry.
Address string `json:"address"`
// Date the officer was appointed.
AppointmentDate string `json:"appointment_date"`
// Date the appointment ended, when reported.
TerminationDate string `json:"termination_date"`
// Complete registry-reported birth date. Null when only a birth year or month
// is known.
DateOfBirth string `json:"date_of_birth"`
// Registry-reported birth year, including when the full date is unavailable.
DateOfBirthYear int64 `json:"date_of_birth_year"`
// Registry-reported birth month. Null when only the year is known.
DateOfBirthMonth int64 `json:"date_of_birth_month"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBListUBOsResponseKYBRegistryOfficers is a response object.
func (*KYBListUBOsResponseKYBRegistryOfficers) UnmarshalJSON ¶
func (r *KYBListUBOsResponseKYBRegistryOfficers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBListUBOsResponseKYBRegistryOfficers leniently.
type KYBListUBOsResponseKYBRegistryOfficersKYCStatus ¶
type KYBListUBOsResponseKYBRegistryOfficersKYCStatus string
KYBListUBOsResponseKYBRegistryOfficersKYCStatus: Status of an associated KYC session, when one was started for this officer. `null` otherwise.
KYBListUBOsResponseKYBRegistryOfficersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryOfficersKYCStatusApproved KYBListUBOsResponseKYBRegistryOfficersKYCStatus = "Approved" KYBListUBOsResponseKYBRegistryOfficersKYCStatusDeclined KYBListUBOsResponseKYBRegistryOfficersKYCStatus = "Declined" KYBListUBOsResponseKYBRegistryOfficersKYCStatusPending KYBListUBOsResponseKYBRegistryOfficersKYCStatus = "Pending" )
Known values of KYBListUBOsResponseKYBRegistryOfficersKYCStatus.
type KYBListUBOsResponseKYBRegistryOfficersRole ¶
type KYBListUBOsResponseKYBRegistryOfficersRole string
KYBListUBOsResponseKYBRegistryOfficersRole: Normalized role derived from the designation. Full 17-value model set; registry parsing on this endpoint typically emits director, non_executive_director, secretary, chairman, or company_officer.
KYBListUBOsResponseKYBRegistryOfficersRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryOfficersRoleDirector KYBListUBOsResponseKYBRegistryOfficersRole = "director" KYBListUBOsResponseKYBRegistryOfficersRoleNonExecutiveDirector KYBListUBOsResponseKYBRegistryOfficersRole = "non_executive_director" KYBListUBOsResponseKYBRegistryOfficersRoleSecretary KYBListUBOsResponseKYBRegistryOfficersRole = "secretary" KYBListUBOsResponseKYBRegistryOfficersRoleChairman KYBListUBOsResponseKYBRegistryOfficersRole = "chairman" KYBListUBOsResponseKYBRegistryOfficersRoleUBO KYBListUBOsResponseKYBRegistryOfficersRole = "ubo" KYBListUBOsResponseKYBRegistryOfficersRoleRepresentative KYBListUBOsResponseKYBRegistryOfficersRole = "representative" KYBListUBOsResponseKYBRegistryOfficersRoleFounder KYBListUBOsResponseKYBRegistryOfficersRole = "founder" KYBListUBOsResponseKYBRegistryOfficersRoleLegalAdvisor KYBListUBOsResponseKYBRegistryOfficersRole = "legal_advisor" KYBListUBOsResponseKYBRegistryOfficersRoleAuthorizedSignatory KYBListUBOsResponseKYBRegistryOfficersRole = "authorized_signatory" KYBListUBOsResponseKYBRegistryOfficersRoleTrustee KYBListUBOsResponseKYBRegistryOfficersRole = "trustee" KYBListUBOsResponseKYBRegistryOfficersRoleBeneficiary KYBListUBOsResponseKYBRegistryOfficersRole = "beneficiary" KYBListUBOsResponseKYBRegistryOfficersRoleCompanyOfficer KYBListUBOsResponseKYBRegistryOfficersRole = "company_officer" KYBListUBOsResponseKYBRegistryOfficersRoleSettlor KYBListUBOsResponseKYBRegistryOfficersRole = "settlor" KYBListUBOsResponseKYBRegistryOfficersRoleProtector KYBListUBOsResponseKYBRegistryOfficersRole = "protector" KYBListUBOsResponseKYBRegistryOfficersRoleInvestor KYBListUBOsResponseKYBRegistryOfficersRole = "investor" KYBListUBOsResponseKYBRegistryOfficersRoleOther KYBListUBOsResponseKYBRegistryOfficersRole = "other" )
Known values of KYBListUBOsResponseKYBRegistryOfficersRole.
type KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus ¶
type KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus string
KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus: `delivered` when the ownership data came back, `unavailable` when an ownership tier was requested but the registry had none for this company (see `registry_data.ownership_error`), `pending` when the ownership section has not been retrieved from the registry yet and Didit is still completing it, `not_requested` on the Lite tier.
KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryRegistryOwnershipStatusNotRequested KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus = "not_requested" KYBListUBOsResponseKYBRegistryRegistryOwnershipStatusDelivered KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus = "delivered" KYBListUBOsResponseKYBRegistryRegistryOwnershipStatusPending KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus = "pending" )
Known values of KYBListUBOsResponseKYBRegistryRegistryOwnershipStatus.
type KYBListUBOsResponseKYBRegistryRegistryStatus ¶
type KYBListUBOsResponseKYBRegistryRegistryStatus string
KYBListUBOsResponseKYBRegistryRegistryStatus: Normalized company status as reported by the registry.
KYBListUBOsResponseKYBRegistryRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryRegistryStatusActive KYBListUBOsResponseKYBRegistryRegistryStatus = "active" KYBListUBOsResponseKYBRegistryRegistryStatusDissolved KYBListUBOsResponseKYBRegistryRegistryStatus = "dissolved" KYBListUBOsResponseKYBRegistryRegistryStatusDeregistered KYBListUBOsResponseKYBRegistryRegistryStatus = "deregistered" KYBListUBOsResponseKYBRegistryRegistryStatusSeeFullDetails KYBListUBOsResponseKYBRegistryRegistryStatus = "see full details" KYBListUBOsResponseKYBRegistryRegistryStatusAuthorised KYBListUBOsResponseKYBRegistryRegistryStatus = "authorised" KYBListUBOsResponseKYBRegistryRegistryStatusAppointedRepresentative KYBListUBOsResponseKYBRegistryRegistryStatus = "appointed representative" KYBListUBOsResponseKYBRegistryRegistryStatusInactive KYBListUBOsResponseKYBRegistryRegistryStatus = "inactive" KYBListUBOsResponseKYBRegistryRegistryStatusNoLongerAuthorised KYBListUBOsResponseKYBRegistryRegistryStatus = "no longer authorised" KYBListUBOsResponseKYBRegistryRegistryStatusClosed KYBListUBOsResponseKYBRegistryRegistryStatus = "closed" KYBListUBOsResponseKYBRegistryRegistryStatusStruckOff KYBListUBOsResponseKYBRegistryRegistryStatus = "struck off" )
Known values of KYBListUBOsResponseKYBRegistryRegistryStatus.
type KYBListUBOsResponseKYBRegistryRegistryTierDelivered ¶
type KYBListUBOsResponseKYBRegistryRegistryTierDelivered string
KYBListUBOsResponseKYBRegistryRegistryTierDelivered: Same as the top-level `registry_tier_delivered`.
KYBListUBOsResponseKYBRegistryRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryRegistryTierDeliveredBasic KYBListUBOsResponseKYBRegistryRegistryTierDelivered = "basic" KYBListUBOsResponseKYBRegistryRegistryTierDeliveredUBO KYBListUBOsResponseKYBRegistryRegistryTierDelivered = "ubo" )
Known values of KYBListUBOsResponseKYBRegistryRegistryTierDelivered.
type KYBListUBOsResponseKYBRegistryStatus ¶
type KYBListUBOsResponseKYBRegistryStatus string
KYBListUBOsResponseKYBRegistryStatus: Didit's assessment of the registry check (e.g. `In Review` when the company is not active in the registry or ownership data could not be derived).
KYBListUBOsResponseKYBRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryStatusNotFinished KYBListUBOsResponseKYBRegistryStatus = "Not Finished" KYBListUBOsResponseKYBRegistryStatusApproved KYBListUBOsResponseKYBRegistryStatus = "Approved" KYBListUBOsResponseKYBRegistryStatusDeclined KYBListUBOsResponseKYBRegistryStatus = "Declined" KYBListUBOsResponseKYBRegistryStatusInReview KYBListUBOsResponseKYBRegistryStatus = "In Review" )
Known values of KYBListUBOsResponseKYBRegistryStatus.
type KYBListUBOsResponseKYBRegistryVATValidationSource ¶
type KYBListUBOsResponseKYBRegistryVATValidationSource string
KYBListUBOsResponseKYBRegistryVATValidationSource: The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.
KYBListUBOsResponseKYBRegistryVATValidationSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryVATValidationSourceEuVies KYBListUBOsResponseKYBRegistryVATValidationSource = "eu_vies" KYBListUBOsResponseKYBRegistryVATValidationSourcePlVATWhiteList KYBListUBOsResponseKYBRegistryVATValidationSource = "pl_vat_white_list" KYBListUBOsResponseKYBRegistryVATValidationSourceNoBrreg KYBListUBOsResponseKYBRegistryVATValidationSource = "no_brreg" KYBListUBOsResponseKYBRegistryVATValidationSourceChUIDRegister KYBListUBOsResponseKYBRegistryVATValidationSource = "ch_uid_register" KYBListUBOsResponseKYBRegistryVATValidationSourceBrReceitaFederal KYBListUBOsResponseKYBRegistryVATValidationSource = "br_receita_federal" KYBListUBOsResponseKYBRegistryVATValidationSourceCoRues KYBListUBOsResponseKYBRegistryVATValidationSource = "co_rues" KYBListUBOsResponseKYBRegistryVATValidationSourceCrHacienda KYBListUBOsResponseKYBRegistryVATValidationSource = "cr_hacienda" KYBListUBOsResponseKYBRegistryVATValidationSourceEcSri KYBListUBOsResponseKYBRegistryVATValidationSource = "ec_sri" KYBListUBOsResponseKYBRegistryVATValidationSourcePyDnit KYBListUBOsResponseKYBRegistryVATValidationSource = "py_dnit" KYBListUBOsResponseKYBRegistryVATValidationSourceFormatRules KYBListUBOsResponseKYBRegistryVATValidationSource = "format_rules" )
Known values of KYBListUBOsResponseKYBRegistryVATValidationSource.
type KYBListUBOsResponseKYBRegistryVATValidationStatus ¶
type KYBListUBOsResponseKYBRegistryVATValidationStatus string
KYBListUBOsResponseKYBRegistryVATValidationStatus: Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.
KYBListUBOsResponseKYBRegistryVATValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseKYBRegistryVATValidationStatusValid KYBListUBOsResponseKYBRegistryVATValidationStatus = "valid" KYBListUBOsResponseKYBRegistryVATValidationStatusInvalid KYBListUBOsResponseKYBRegistryVATValidationStatus = "invalid" KYBListUBOsResponseKYBRegistryVATValidationStatusFormatValid KYBListUBOsResponseKYBRegistryVATValidationStatus = "format_valid" KYBListUBOsResponseKYBRegistryVATValidationStatusInvalidFormat KYBListUBOsResponseKYBRegistryVATValidationStatus = "invalid_format" KYBListUBOsResponseKYBRegistryVATValidationStatusCouldNotValidate KYBListUBOsResponseKYBRegistryVATValidationStatus = "could_not_validate" KYBListUBOsResponseKYBRegistryVATValidationStatusNotApplicable KYBListUBOsResponseKYBRegistryVATValidationStatus = "not_applicable" )
Known values of KYBListUBOsResponseKYBRegistryVATValidationStatus.
type KYBListUBOsResponseRegistryTierDelivered ¶
type KYBListUBOsResponseRegistryTierDelivered string
KYBListUBOsResponseRegistryTierDelivered: The tier actually delivered and billed. Lower than requested when the country's registries hold no ownership data, when the registry has no ownership record for this company, or when the resolved report of a `ubo` request names no natural person as a beneficial owner.
KYBListUBOsResponseRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseRegistryTierDeliveredBasic KYBListUBOsResponseRegistryTierDelivered = "basic" KYBListUBOsResponseRegistryTierDeliveredUBO KYBListUBOsResponseRegistryTierDelivered = "ubo" )
Known values of KYBListUBOsResponseRegistryTierDelivered.
type KYBListUBOsResponseRegistryTierRequested ¶
type KYBListUBOsResponseRegistryTierRequested string
KYBListUBOsResponseRegistryTierRequested: The tier this endpoint sells: `basic` (Lite) for select, `shareholders`, `ubo`.
KYBListUBOsResponseRegistryTierRequested is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBListUBOsResponseRegistryTierRequestedBasic KYBListUBOsResponseRegistryTierRequested = "basic" KYBListUBOsResponseRegistryTierRequestedUBO KYBListUBOsResponseRegistryTierRequested = "ubo" )
Known values of KYBListUBOsResponseRegistryTierRequested.
type KYBRegistryAddress ¶
type KYBRegistryAddress struct {
// Address type in lower case: `registered` for the registered office; other
// types as the registry names them (for example `postal`, `office`). `null`
// when the registry does not say what the address is.
Type string `json:"type"`
// The full address as one line. Always present on every address.
Address string `json:"address"`
// Street and number.
Street string `json:"street"`
// City or locality.
City string `json:"city"`
// Postal code.
PostalCode string `json:"postal_code"`
// Region, state or province.
Region string `json:"region"`
// ISO 3166-1 alpha-2 country code.
CountryCode string `json:"country_code"`
// The registry's own label for the address, when it gives one.
Description string `json:"description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistryAddress: An address the registry states, in the same shape for every country and registry source. Every key is always present; a part the registry does not publish is null.
func (*KYBRegistryAddress) UnmarshalJSON ¶
func (r *KYBRegistryAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistryAddress leniently.
type KYBRegistryCandidateRequest ¶
type KYBRegistryCandidateRequest struct {
// Candidate handle from `POST /v3/kyb/search/`
// (`kyb_registry.companies[].kyb_response_id`). Ephemeral - use it shortly
// after the search that produced it. Required.
KYBResponseID string `json:"kyb_response_id"`
// Your identifier for this company; echoed back and stored with the business
// session.
VendorData Opt[string] `json:"vendor_data"`
// Free-form JSON stored with the business session and echoed back.
Metadata Opt[map[string]any] `json:"metadata"`
// Must be `true` (the default). KYB registry selects are always persisted so
// billing and retrieval can be tracked; `false` returns `400`.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
}
KYBRegistryCandidateRequest is a request object.
func (KYBRegistryCandidateRequest) MarshalJSON ¶
func (r KYBRegistryCandidateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type KYBRegistryIndustry ¶
type KYBRegistryIndustry struct {
// Activity code as the registry prints it (for example `73110`).
Code string `json:"code"`
// Activity label, when the registry publishes one.
Description string `json:"description"`
// Classification system, one name per system whichever source reported it: `UK
// SIC 2007`, `US SIC`, `NACE Rev. 2`, `NACE Rev. 2.1`, `NAF Rev. 2`, `CNAE`,
// `SBI`, `NOGA 2008`, `CAE Rev. 4`, `Canada SIC 1977`; other national systems
// keep the registry's own name. Null when the registry does not name the
// system.
Scheme string `json:"scheme"`
// True for the company's main activity. Exactly one entry is primary when the
// list is not empty.
IsPrimary bool `json:"is_primary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistryIndustry: An activity the registry classifies the company under, in the same shape for every country and registry source.
func (*KYBRegistryIndustry) UnmarshalJSON ¶
func (r *KYBRegistryIndustry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistryIndustry leniently.
type KYBRegistryOwnership ¶
type KYBRegistryOwnership struct {
// `delivered` when the registry published ownership; `unavailable` when it did
// not (see `unavailable_reason`); `pending` while the registry is still
// fetching it; `not_requested` for the Basic tier.
Status KYBRegistryOwnershipStatus `json:"status"`
// The tier the workflow ordered.
TierRequested KYBRegistryOwnershipTierRequested `json:"tier_requested"`
// The tier the registry delivered (and that is billed). A UBO request answered
// with direct shareholders only is `shareholders`.
TierDelivered KYBRegistryOwnershipTierDelivered `json:"tier_delivered"`
// `unavailable` or `pending`.
UnavailableReason KYBRegistryOwnershipUnavailableReason `json:"unavailable_reason"`
// True when the direct shareholders' stated stakes add up to 100% (within one
// percentage point of rounding); false when they do not; null when ownership
// was not delivered or a stake is not stated.
DirectOwnershipComplete bool `json:"direct_ownership_complete"`
// Parts of the ownership chain the registry could not resolve, for example no
// group structure on record above the direct owners.
Unresolved []KYBRegistryOwnershipUnresolved `json:"unresolved"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistryOwnership: The outcome of the ownership (Shareholders / UBO) tier, in the same shape for every country and registry source.
func (*KYBRegistryOwnership) UnmarshalJSON ¶
func (r *KYBRegistryOwnership) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistryOwnership leniently.
type KYBRegistryOwnershipStatus ¶
type KYBRegistryOwnershipStatus string
KYBRegistryOwnershipStatus: `delivered` when the registry published ownership; `unavailable` when it did not (see `unavailable_reason`); `pending` while the registry is still fetching it; `not_requested` for the Basic tier.
KYBRegistryOwnershipStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBRegistryOwnershipStatusNotRequested KYBRegistryOwnershipStatus = "not_requested" KYBRegistryOwnershipStatusPending KYBRegistryOwnershipStatus = "pending" KYBRegistryOwnershipStatusDelivered KYBRegistryOwnershipStatus = "delivered" )
Known values of KYBRegistryOwnershipStatus.
type KYBRegistryOwnershipTierDelivered ¶
type KYBRegistryOwnershipTierDelivered string
KYBRegistryOwnershipTierDelivered: The tier the registry delivered (and that is billed). A UBO request answered with direct shareholders only is `shareholders`.
KYBRegistryOwnershipTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBRegistryOwnershipTierDeliveredBasic KYBRegistryOwnershipTierDelivered = "basic" KYBRegistryOwnershipTierDeliveredUBO KYBRegistryOwnershipTierDelivered = "ubo" )
Known values of KYBRegistryOwnershipTierDelivered.
type KYBRegistryOwnershipTierRequested ¶
type KYBRegistryOwnershipTierRequested string
KYBRegistryOwnershipTierRequested: The tier the workflow ordered.
KYBRegistryOwnershipTierRequested is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBRegistryOwnershipTierRequestedBasic KYBRegistryOwnershipTierRequested = "basic" KYBRegistryOwnershipTierRequestedUBO KYBRegistryOwnershipTierRequested = "ubo" )
Known values of KYBRegistryOwnershipTierRequested.
type KYBRegistryOwnershipUnavailableReason ¶
type KYBRegistryOwnershipUnavailableReason string
KYBRegistryOwnershipUnavailableReason: Why a requested ownership tier was not delivered. Null unless `status` is `unavailable` or `pending`.
KYBRegistryOwnershipUnavailableReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of KYBRegistryOwnershipUnavailableReason.
type KYBRegistryOwnershipUnresolved ¶
type KYBRegistryOwnershipUnresolved struct {
Reason string `json:"reason"`
Section string `json:"section"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistryOwnershipUnresolved is a response object.
func (*KYBRegistryOwnershipUnresolved) UnmarshalJSON ¶
func (r *KYBRegistryOwnershipUnresolved) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistryOwnershipUnresolved leniently.
type KYBRegistrySearchResults ¶
type KYBRegistrySearchResults struct {
// Deduplicated candidate list. Empty while `search_resolved=false` (webhook
// mode) or when nothing matched.
Companies []KYBRegistrySearchResultsCompanies `json:"companies"`
Pagination KYBRegistrySearchResultsPagination `json:"pagination"`
// Registry search lifecycle status.
SearchStatus KYBRegistrySearchResultsSearchStatus `json:"search_status"`
// `true` once the candidate list is final.
SearchResolved bool `json:"search_resolved"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistrySearchResults is a response object.
func (*KYBRegistrySearchResults) UnmarshalJSON ¶
func (r *KYBRegistrySearchResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistrySearchResults leniently.
type KYBRegistrySearchResultsCompanies ¶
type KYBRegistrySearchResultsCompanies struct {
// Handle for this candidate - pass it to `POST /v3/kyb/select/` to retrieve the
// full profile. Ephemeral and scoped to this search: do not store it long-term;
// re-search to get a fresh one.
KYBResponseID string `json:"kyb_response_id"`
// Registered company name.
Name string `json:"name"`
// Registry registration number.
RegistrationNumber string `json:"registration_number"`
// Normalized registry status of the company (e.g. `active`, `dissolved`,
// `inactive`, `struck off`).
Status string `json:"status"`
// Legal form as reported by the registry.
Type string `json:"type"`
// Registered address of the candidate, when the registry returns one. Use it,
// with the registration number, to tell same-named companies apart: in the
// United States a candidate can be listed under the state where the company
// operates rather than the state you searched.
RegisteredAddress string `json:"registered_address"`
// Registry-reported risk level, when available. Usually `null` at search time.
RiskLevel string `json:"risk_level"`
// Always `pending` for search candidates - the full company profile is only
// fetched (and billed) when you select the candidate.
FetchStatus string `json:"fetch_status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistrySearchResultsCompanies is a response object.
func (*KYBRegistrySearchResultsCompanies) UnmarshalJSON ¶
func (r *KYBRegistrySearchResultsCompanies) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistrySearchResultsCompanies leniently.
type KYBRegistrySearchResultsPagination ¶
type KYBRegistrySearchResultsPagination struct {
// Number of candidates returned.
Total int64 `json:"total"`
Page int64 `json:"page"`
PerPage int64 `json:"per_page"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistrySearchResultsPagination is a response object.
func (*KYBRegistrySearchResultsPagination) UnmarshalJSON ¶
func (r *KYBRegistrySearchResultsPagination) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistrySearchResultsPagination leniently.
type KYBRegistrySearchResultsSearchStatus ¶
type KYBRegistrySearchResultsSearchStatus string
KYBRegistrySearchResultsSearchStatus: Registry search lifecycle status.
KYBRegistrySearchResultsSearchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBRegistrySearchResultsSearchStatusPending KYBRegistrySearchResultsSearchStatus = "pending" KYBRegistrySearchResultsSearchStatusResolved KYBRegistrySearchResultsSearchStatus = "resolved" )
Known values of KYBRegistrySearchResultsSearchStatus.
type KYBRegistryShareholding ¶
type KYBRegistryShareholding struct {
ShareClass string `json:"share_class"`
NumberOfShares float64 `json:"number_of_shares"`
Currency string `json:"currency"`
NominalValue float64 `json:"nominal_value"`
TotalValue float64 `json:"total_value"`
Percentage float64 `json:"percentage"`
// fields.
JSON ResponseJSON `json:"-"`
}
KYBRegistryShareholding: What an owner holds, in the same shape for every country and registry source. Null when the registry states no holding. A band (for example a UK PSC's 25-50%) is not a stake: `percentage` is null and the band stays in `ownership_min_shares` / `ownership_max_shares`.
func (*KYBRegistryShareholding) UnmarshalJSON ¶
func (r *KYBRegistryShareholding) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBRegistryShareholding leniently.
type KYBSearchParams ¶
type KYBSearchParams struct {
// ISO 3166-1 alpha-2 code of the country whose company registry to search. For
// example, `GB`. Where company registries operate at state or province level,
// append the ISO 3166-2 subdivision code as `XX-YY`: `US-CA` searches the
// California registry. United States searches always require the subdivision -
// a bare `US` is rejected. Case-insensitive; normalized to upper case.
// Required.
CountryCode string `json:"country_code"`
// Company name to search for. Either `name` or `registration_number` is
// required.
Name Opt[string] `json:"name"`
// Registry registration number to search for. Either `name` or
// `registration_number` is required.
RegistrationNumber Opt[string] `json:"registration_number"`
// Registry tier whose provider chain this search runs on. `basic` (default)
// searches the country's Lite chain; `shareholders` and `ubo` search that
// tier's ownership chain, which can be a different source, so an empty Lite
// search does not prove the registry lacks the company. A country that does not
// offer the named tier is searched at the highest tier it offers up to that
// one. Retrieve the candidate from the endpoint that sells the tier you
// searched: `POST /v3/kyb/select/` (Lite), `POST /v3/kyb/shareholders/` or
// `POST /v3/kyb/ubo/`.
Tier Opt[KYBSearchParamsTier] `json:"tier"`
// Name-matching strategy applied by the registry search. `contains` is the only
// accepted value: no registry source behind the search offers a prefix or fuzzy
// mode, so `start_with` and `fuzzy` are rejected with `400` (`not a valid
// choice`).
SearchType Opt[KYBSearchParamsSearchType] `json:"search_type"`
// Your identifier for this lookup; echoed back and included in the webhook
// callback.
VendorData Opt[string] `json:"vendor_data"`
// Free-form JSON; echoed back and included in the webhook callback.
Metadata Opt[map[string]any] `json:"metadata"`
// Switches the search to asynchronous mode: the API returns immediately and
// POSTs an unsigned `kyb.registry_search.resolved` callback to this URL when
// the candidate list is ready.
WebhookURL Opt[string] `json:"webhook_url"`
}
KYBSearchParams holds the parameters of Client.KYB.Search.
func (KYBSearchParams) MarshalJSON ¶
func (r KYBSearchParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type KYBSearchParamsSearchType ¶
type KYBSearchParamsSearchType string
KYBSearchParamsSearchType: Name-matching strategy applied by the registry search. `contains` is the only accepted value: no registry source behind the search offers a prefix or fuzzy mode, so `start_with` and `fuzzy` are rejected with `400` (`not a valid choice`).
KYBSearchParamsSearchType is a string with known values below. The set is open: other values may appear and never cause an error.
const (
KYBSearchParamsSearchTypeContains KYBSearchParamsSearchType = "contains"
)
Known values of KYBSearchParamsSearchType.
type KYBSearchParamsTier ¶
type KYBSearchParamsTier string
KYBSearchParamsTier: Registry tier whose provider chain this search runs on. `basic` (default) searches the country's Lite chain; `shareholders` and `ubo` search that tier's ownership chain, which can be a different source, so an empty Lite search does not prove the registry lacks the company. A country that does not offer the named tier is searched at the highest tier it offers up to that one. Retrieve the candidate from the endpoint that sells the tier you searched: `POST /v3/kyb/select/` (Lite), `POST /v3/kyb/shareholders/` or `POST /v3/kyb/ubo/`.
KYBSearchParamsTier is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSearchParamsTierBasic KYBSearchParamsTier = "basic" KYBSearchParamsTierUBO KYBSearchParamsTier = "ubo" )
Known values of KYBSearchParamsTier.
type KYBSearchResponse ¶
type KYBSearchResponse struct {
// With `webhook_url`: the persisted search-request id, echoed as `request_id`
// in the `kyb.registry_search.resolved` callback. Without `webhook_url`: a
// transient correlation UUID (the search is not stored).
RequestID string `json:"request_id"`
KYBRegistry KYBRegistrySearchResults `json:"kyb_registry"`
// Echo of the `vendor_data` you sent.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBSearchResponse is a response object.
func (*KYBSearchResponse) UnmarshalJSON ¶
func (r *KYBSearchResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBSearchResponse leniently.
type KYBSelectResponse ¶
type KYBSelectResponse struct {
// Id of the business session created for this retrieval. The stored record
// (visible in the console) keeps updating if the registry resolves after the
// response.
RequestID string `json:"request_id"`
// The tier this endpoint sells: `basic` (Lite) for select, `shareholders`,
// `ubo`.
RegistryTierRequested KYBSelectResponseRegistryTierRequested `json:"registry_tier_requested"`
// The tier actually delivered and billed. Lower than requested when the
// country's registries hold no ownership data, or the registry has no ownership
// record for this company.
RegistryTierDelivered KYBSelectResponseRegistryTierDelivered `json:"registry_tier_delivered"`
// Full registry company profile.
KYBRegistry KYBSelectResponseKYBRegistry `json:"kyb_registry"`
// Echo of the `vendor_data` you sent.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBSelectResponse is a response object.
func (*KYBSelectResponse) UnmarshalJSON ¶
func (r *KYBSelectResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBSelectResponse leniently.
type KYBSelectResponseKYBRegistry ¶
type KYBSelectResponseKYBRegistry struct {
// Didit's id for this company record.
UUID string `json:"uuid"`
NodeID string `json:"node_id"`
// Didit's assessment of the registry check (e.g. `In Review` when the company
// is not active in the registry or ownership data could not be derived).
Status KYBSelectResponseKYBRegistryStatus `json:"status"`
// Normalized company status as reported by the registry.
RegistryStatus KYBSelectResponseKYBRegistryRegistryStatus `json:"registry_status"`
// `true` once the registry returned the full profile. `false` when the registry
// was still processing after polling - the stored record completes
// automatically once the registry resolves.
DataResolved bool `json:"data_resolved"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
// ISO 3166-1 alpha-2.
CountryCode string `json:"country_code"`
// Subdivision code when the registry is regional (e.g. `CA` for `US-CA`); empty
// otherwise.
Region string `json:"region"`
CompanyType string `json:"company_type"`
IncorporationDate string `json:"incorporation_date"`
RegisteredAddress string `json:"registered_address"`
TaxNumber string `json:"tax_number"`
// Registry-reported risk level, when available.
RiskLevel string `json:"risk_level"`
// Registry verification status, when available.
VerificationStatus string `json:"verification_status"`
// Always `true` for this endpoint - the profile was retrieved from an official
// registry.
IsFromRegistry bool `json:"is_from_registry"`
// Registry fetch lifecycle. Mirrored by `data_resolved`.
FetchStatus KYBSelectResponseKYBRegistryFetchStatus `json:"fetch_status"`
// Alternative, trading, former or original-language company names as text, when
// reported.
AlternativeNames string `json:"alternative_names"`
// Activity description or classification code, when reported.
NatureOfBusiness string `json:"nature_of_business"`
RegisteredCapital string `json:"registered_capital"`
// Decimal amount as a string, when reported.
RegisteredCapitalAmount string `json:"registered_capital_amount"`
// ISO 4217 code, when reported.
RegisteredCapitalCurrency string `json:"registered_capital_currency"`
Website string `json:"website"`
Email string `json:"email"`
Phone string `json:"phone"`
// LEI, when reported.
LegalEntityIdentifier string `json:"legal_entity_identifier"`
// Registry/jurisdiction the company is registered with, when reported.
LocationOfRegistration string `json:"location_of_registration"`
// EU VAT number, when collected during the hosted registry step or edited
// afterwards. At select time this is typically not yet set - VAT and tax ID
// validation runs when the end user submits the registry step in the hosted
// flow.
VATNumber string `json:"vat_number"`
// Result of validating the VAT number or, when there is none, the `tax_number`,
// at registry submit. `valid` / `invalid`: decided by the official registry of
// the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica,
// Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid`
// / `invalid_format`: decided by the country's format and check-digit rules
// where no registry can be queried. `could_not_validate`: the registry was
// unavailable. `not_applicable`: no number, a country without registry or
// rules, or a sandbox session.
VATValidationStatus KYBSelectResponseKYBRegistryVATValidationStatus `json:"vat_validation_status"`
// The number that was checked, as the source knows it (for example the VAT
// number derived from a French SIREN or a Dutch RSIN). `null` when no check
// ran.
VATValidatedNumber string `json:"vat_validated_number"`
// The source that decided `vat_validation_status`: an official registry, or
// `format_rules`. `null` when no check ran.
VATValidationSource KYBSelectResponseKYBRegistryVATValidationSource `json:"vat_validation_source"`
// Name registered with the source that validated the number, when it discloses
// one. Only set when the status is `valid`.
VATValidatedName string `json:"vat_validated_name"`
// Address registered with the source that validated the number, when it
// discloses one. Only set when the status is `valid`.
VATValidatedAddress string `json:"vat_validated_address"`
// Timestamp of the check. `null` when no check ran.
VATCheckedAt time.Time `json:"vat_checked_at"`
// Registry-reported share/capital details (currency, total shares, share
// classes), when available.
FinancialSummary map[string]any `json:"financial_summary"`
// Directors, secretaries, and other officers extracted from the registry.
Officers []KYBSelectResponseKYBRegistryOfficers `json:"officers"`
// Beneficial owners / persons with significant control extracted from the
// registry. Can be empty when the registry does not expose ownership.
BeneficialOwners []KYBSelectResponseKYBRegistryBeneficialOwners `json:"beneficial_owners"`
// Every address the registry states, one canonical shape. Null when it states
// none.
Addresses []KYBRegistryAddress `json:"addresses"`
// The activities the registry classifies the company under, one canonical
// shape. Null when it states none.
Industries []KYBRegistryIndustry `json:"industries"`
// Registry filing dates, when available. Annual returns and general meetings
// use last_annual_return_date and last_agm_date; they are distinct from
// financial accounts.
Accounts map[string]any `json:"accounts"`
// Raw record returned by the registry source, kept for reviewers. Its shape
// differs by country and source and is not a stable contract: read the
// canonical fields (`addresses`, `industries`, `ownership`,
// `beneficial_owners[].shareholding`) instead.
RegistryData map[string]any `json:"registry_data"`
// Always `null` on this endpoint (used by the hosted KYB flow when end users
// edit registry data).
UserProvidedData map[string]any `json:"user_provided_data"`
// Always `null` on this endpoint.
ConfirmedByUserAt time.Time `json:"confirmed_by_user_at"`
// Set when a console reviewer edits the record later.
LastConsoleEditAt time.Time `json:"last_console_edit_at"`
// Whether the registry-sourced data can still be edited in the hosted
// flow/console.
IsEditable bool `json:"is_editable"`
// Same as the top-level `registry_tier_delivered`.
RegistryTierDelivered KYBSelectResponseKYBRegistryRegistryTierDelivered `json:"registry_tier_delivered"`
// `delivered` when the ownership data came back, `unavailable` when an
// ownership tier was requested but the registry had none for this company (see
// `registry_data.ownership_error`), `not_requested` on the Lite tier.
RegistryOwnershipStatus KYBSelectResponseKYBRegistryRegistryOwnershipStatus `json:"registry_ownership_status"`
Ownership KYBRegistryOwnership `json:"ownership"`
// The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`.
// Also in `ownership.tier_requested`.
RegistryTier string `json:"registry_tier"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBSelectResponseKYBRegistry: Full registry company profile.
func (*KYBSelectResponseKYBRegistry) UnmarshalJSON ¶
func (r *KYBSelectResponseKYBRegistry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBSelectResponseKYBRegistry leniently.
type KYBSelectResponseKYBRegistryBeneficialOwners ¶
type KYBSelectResponseKYBRegistryBeneficialOwners struct {
UUID string `json:"uuid"`
Name string `json:"name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
// Whether the owner is a natural person or a corporate entity.
EntityType KYBSelectResponseKYBRegistryBeneficialOwnersEntityType `json:"entity_type"`
// Normalized roles (e.g. `ubo`, `shareholder`).
Roles []string `json:"roles"`
OwnershipMinShares string `json:"ownership_min_shares"`
// Upper bound of the ownership band reported by the registry.
IsActive bool `json:"is_active"`
KYCStatus KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus `json:"kyc_status"`
KYCSessionURL string `json:"kyc_session_url"`
// Parsed ownership percentage (max bound, falling back to min bound).
EffectiveOwnershipPercent float64 `json:"effective_ownership_percent"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
CountryOfBirth string `json:"country_of_birth"`
Email string `json:"email"`
Nationality string `json:"nationality"`
Designation string `json:"designation"`
// Complete birth date when reported.
DateOfBirth string `json:"date_of_birth"`
// Appointment date when reported.
AppointmentDate string `json:"appointment_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBSelectResponseKYBRegistryBeneficialOwners is a response object.
func (*KYBSelectResponseKYBRegistryBeneficialOwners) UnmarshalJSON ¶
func (r *KYBSelectResponseKYBRegistryBeneficialOwners) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBSelectResponseKYBRegistryBeneficialOwners leniently.
type KYBSelectResponseKYBRegistryBeneficialOwnersEntityType ¶
type KYBSelectResponseKYBRegistryBeneficialOwnersEntityType string
KYBSelectResponseKYBRegistryBeneficialOwnersEntityType: Whether the owner is a natural person or a corporate entity.
KYBSelectResponseKYBRegistryBeneficialOwnersEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryBeneficialOwnersEntityTypePerson KYBSelectResponseKYBRegistryBeneficialOwnersEntityType = "person" KYBSelectResponseKYBRegistryBeneficialOwnersEntityTypeCompany KYBSelectResponseKYBRegistryBeneficialOwnersEntityType = "company" )
Known values of KYBSelectResponseKYBRegistryBeneficialOwnersEntityType.
type KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus ¶
type KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus string
KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatusApproved KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus = "Approved" KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatusDeclined KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus = "Declined" KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatusPending KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus = "Pending" )
Known values of KYBSelectResponseKYBRegistryBeneficialOwnersKYCStatus.
type KYBSelectResponseKYBRegistryFetchStatus ¶
type KYBSelectResponseKYBRegistryFetchStatus string
KYBSelectResponseKYBRegistryFetchStatus: Registry fetch lifecycle. Mirrored by `data_resolved`.
KYBSelectResponseKYBRegistryFetchStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryFetchStatusPending KYBSelectResponseKYBRegistryFetchStatus = "pending" KYBSelectResponseKYBRegistryFetchStatusResolved KYBSelectResponseKYBRegistryFetchStatus = "resolved" )
Known values of KYBSelectResponseKYBRegistryFetchStatus.
type KYBSelectResponseKYBRegistryOfficers ¶
type KYBSelectResponseKYBRegistryOfficers struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// Raw registry designation (e.g. `Director`, `Secretary`).
Designation string `json:"designation"`
// Normalized role derived from the designation. Full 17-value model set;
// registry parsing on this endpoint typically emits director,
// non_executive_director, secretary, chairman, or company_officer.
Role KYBSelectResponseKYBRegistryOfficersRole `json:"role"`
Nationality string `json:"nationality"`
// `false` when the registry marks the appointment as resigned.
IsActive bool `json:"is_active"`
// Status of an associated KYC session, when one was started for this officer.
// `null` otherwise.
KYCStatus KYBSelectResponseKYBRegistryOfficersKYCStatus `json:"kyc_status"`
// Verification URL of the associated KYC session, when one exists.
KYCSessionURL string `json:"kyc_session_url"`
// Given name when explicitly reported by the registry; not inferred from the
// full name.
FirstName string `json:"first_name"`
// Family name when explicitly reported by the registry.
LastName string `json:"last_name"`
// Officer address reported by the registry.
Address string `json:"address"`
// Date the officer was appointed.
AppointmentDate string `json:"appointment_date"`
// Date the appointment ended, when reported.
TerminationDate string `json:"termination_date"`
// Complete registry-reported birth date. Null when only a birth year or month
// is known.
DateOfBirth string `json:"date_of_birth"`
// Registry-reported birth year, including when the full date is unavailable.
DateOfBirthYear int64 `json:"date_of_birth_year"`
// Registry-reported birth month. Null when only the year is known.
DateOfBirthMonth int64 `json:"date_of_birth_month"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
KYBSelectResponseKYBRegistryOfficers is a response object.
func (*KYBSelectResponseKYBRegistryOfficers) UnmarshalJSON ¶
func (r *KYBSelectResponseKYBRegistryOfficers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes KYBSelectResponseKYBRegistryOfficers leniently.
type KYBSelectResponseKYBRegistryOfficersKYCStatus ¶
type KYBSelectResponseKYBRegistryOfficersKYCStatus string
KYBSelectResponseKYBRegistryOfficersKYCStatus: Status of an associated KYC session, when one was started for this officer. `null` otherwise.
KYBSelectResponseKYBRegistryOfficersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryOfficersKYCStatusApproved KYBSelectResponseKYBRegistryOfficersKYCStatus = "Approved" KYBSelectResponseKYBRegistryOfficersKYCStatusDeclined KYBSelectResponseKYBRegistryOfficersKYCStatus = "Declined" KYBSelectResponseKYBRegistryOfficersKYCStatusPending KYBSelectResponseKYBRegistryOfficersKYCStatus = "Pending" )
Known values of KYBSelectResponseKYBRegistryOfficersKYCStatus.
type KYBSelectResponseKYBRegistryOfficersRole ¶
type KYBSelectResponseKYBRegistryOfficersRole string
KYBSelectResponseKYBRegistryOfficersRole: Normalized role derived from the designation. Full 17-value model set; registry parsing on this endpoint typically emits director, non_executive_director, secretary, chairman, or company_officer.
KYBSelectResponseKYBRegistryOfficersRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryOfficersRoleDirector KYBSelectResponseKYBRegistryOfficersRole = "director" KYBSelectResponseKYBRegistryOfficersRoleNonExecutiveDirector KYBSelectResponseKYBRegistryOfficersRole = "non_executive_director" KYBSelectResponseKYBRegistryOfficersRoleSecretary KYBSelectResponseKYBRegistryOfficersRole = "secretary" KYBSelectResponseKYBRegistryOfficersRoleChairman KYBSelectResponseKYBRegistryOfficersRole = "chairman" KYBSelectResponseKYBRegistryOfficersRoleUBO KYBSelectResponseKYBRegistryOfficersRole = "ubo" KYBSelectResponseKYBRegistryOfficersRoleRepresentative KYBSelectResponseKYBRegistryOfficersRole = "representative" KYBSelectResponseKYBRegistryOfficersRoleFounder KYBSelectResponseKYBRegistryOfficersRole = "founder" KYBSelectResponseKYBRegistryOfficersRoleLegalAdvisor KYBSelectResponseKYBRegistryOfficersRole = "legal_advisor" KYBSelectResponseKYBRegistryOfficersRoleAuthorizedSignatory KYBSelectResponseKYBRegistryOfficersRole = "authorized_signatory" KYBSelectResponseKYBRegistryOfficersRoleTrustee KYBSelectResponseKYBRegistryOfficersRole = "trustee" KYBSelectResponseKYBRegistryOfficersRoleBeneficiary KYBSelectResponseKYBRegistryOfficersRole = "beneficiary" KYBSelectResponseKYBRegistryOfficersRoleCompanyOfficer KYBSelectResponseKYBRegistryOfficersRole = "company_officer" KYBSelectResponseKYBRegistryOfficersRoleSettlor KYBSelectResponseKYBRegistryOfficersRole = "settlor" KYBSelectResponseKYBRegistryOfficersRoleProtector KYBSelectResponseKYBRegistryOfficersRole = "protector" KYBSelectResponseKYBRegistryOfficersRoleInvestor KYBSelectResponseKYBRegistryOfficersRole = "investor" KYBSelectResponseKYBRegistryOfficersRoleOther KYBSelectResponseKYBRegistryOfficersRole = "other" )
Known values of KYBSelectResponseKYBRegistryOfficersRole.
type KYBSelectResponseKYBRegistryRegistryOwnershipStatus ¶
type KYBSelectResponseKYBRegistryRegistryOwnershipStatus string
KYBSelectResponseKYBRegistryRegistryOwnershipStatus: `delivered` when the ownership data came back, `unavailable` when an ownership tier was requested but the registry had none for this company (see `registry_data.ownership_error`), `not_requested` on the Lite tier.
KYBSelectResponseKYBRegistryRegistryOwnershipStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryRegistryOwnershipStatusNotRequested KYBSelectResponseKYBRegistryRegistryOwnershipStatus = "not_requested" KYBSelectResponseKYBRegistryRegistryOwnershipStatusDelivered KYBSelectResponseKYBRegistryRegistryOwnershipStatus = "delivered" )
Known values of KYBSelectResponseKYBRegistryRegistryOwnershipStatus.
type KYBSelectResponseKYBRegistryRegistryStatus ¶
type KYBSelectResponseKYBRegistryRegistryStatus string
KYBSelectResponseKYBRegistryRegistryStatus: Normalized company status as reported by the registry.
KYBSelectResponseKYBRegistryRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryRegistryStatusActive KYBSelectResponseKYBRegistryRegistryStatus = "active" KYBSelectResponseKYBRegistryRegistryStatusDissolved KYBSelectResponseKYBRegistryRegistryStatus = "dissolved" KYBSelectResponseKYBRegistryRegistryStatusDeregistered KYBSelectResponseKYBRegistryRegistryStatus = "deregistered" KYBSelectResponseKYBRegistryRegistryStatusSeeFullDetails KYBSelectResponseKYBRegistryRegistryStatus = "see full details" KYBSelectResponseKYBRegistryRegistryStatusAuthorised KYBSelectResponseKYBRegistryRegistryStatus = "authorised" KYBSelectResponseKYBRegistryRegistryStatusAppointedRepresentative KYBSelectResponseKYBRegistryRegistryStatus = "appointed representative" KYBSelectResponseKYBRegistryRegistryStatusInactive KYBSelectResponseKYBRegistryRegistryStatus = "inactive" KYBSelectResponseKYBRegistryRegistryStatusNoLongerAuthorised KYBSelectResponseKYBRegistryRegistryStatus = "no longer authorised" KYBSelectResponseKYBRegistryRegistryStatusClosed KYBSelectResponseKYBRegistryRegistryStatus = "closed" KYBSelectResponseKYBRegistryRegistryStatusStruckOff KYBSelectResponseKYBRegistryRegistryStatus = "struck off" )
Known values of KYBSelectResponseKYBRegistryRegistryStatus.
type KYBSelectResponseKYBRegistryRegistryTierDelivered ¶
type KYBSelectResponseKYBRegistryRegistryTierDelivered string
KYBSelectResponseKYBRegistryRegistryTierDelivered: Same as the top-level `registry_tier_delivered`.
KYBSelectResponseKYBRegistryRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryRegistryTierDeliveredBasic KYBSelectResponseKYBRegistryRegistryTierDelivered = "basic" KYBSelectResponseKYBRegistryRegistryTierDeliveredUBO KYBSelectResponseKYBRegistryRegistryTierDelivered = "ubo" )
Known values of KYBSelectResponseKYBRegistryRegistryTierDelivered.
type KYBSelectResponseKYBRegistryStatus ¶
type KYBSelectResponseKYBRegistryStatus string
KYBSelectResponseKYBRegistryStatus: Didit's assessment of the registry check (e.g. `In Review` when the company is not active in the registry or ownership data could not be derived).
KYBSelectResponseKYBRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryStatusNotFinished KYBSelectResponseKYBRegistryStatus = "Not Finished" KYBSelectResponseKYBRegistryStatusApproved KYBSelectResponseKYBRegistryStatus = "Approved" KYBSelectResponseKYBRegistryStatusDeclined KYBSelectResponseKYBRegistryStatus = "Declined" KYBSelectResponseKYBRegistryStatusInReview KYBSelectResponseKYBRegistryStatus = "In Review" )
Known values of KYBSelectResponseKYBRegistryStatus.
type KYBSelectResponseKYBRegistryVATValidationSource ¶
type KYBSelectResponseKYBRegistryVATValidationSource string
KYBSelectResponseKYBRegistryVATValidationSource: The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.
KYBSelectResponseKYBRegistryVATValidationSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryVATValidationSourceEuVies KYBSelectResponseKYBRegistryVATValidationSource = "eu_vies" KYBSelectResponseKYBRegistryVATValidationSourcePlVATWhiteList KYBSelectResponseKYBRegistryVATValidationSource = "pl_vat_white_list" KYBSelectResponseKYBRegistryVATValidationSourceNoBrreg KYBSelectResponseKYBRegistryVATValidationSource = "no_brreg" KYBSelectResponseKYBRegistryVATValidationSourceChUIDRegister KYBSelectResponseKYBRegistryVATValidationSource = "ch_uid_register" KYBSelectResponseKYBRegistryVATValidationSourceBrReceitaFederal KYBSelectResponseKYBRegistryVATValidationSource = "br_receita_federal" KYBSelectResponseKYBRegistryVATValidationSourceCoRues KYBSelectResponseKYBRegistryVATValidationSource = "co_rues" KYBSelectResponseKYBRegistryVATValidationSourceCrHacienda KYBSelectResponseKYBRegistryVATValidationSource = "cr_hacienda" KYBSelectResponseKYBRegistryVATValidationSourceEcSri KYBSelectResponseKYBRegistryVATValidationSource = "ec_sri" KYBSelectResponseKYBRegistryVATValidationSourcePyDnit KYBSelectResponseKYBRegistryVATValidationSource = "py_dnit" KYBSelectResponseKYBRegistryVATValidationSourceFormatRules KYBSelectResponseKYBRegistryVATValidationSource = "format_rules" )
Known values of KYBSelectResponseKYBRegistryVATValidationSource.
type KYBSelectResponseKYBRegistryVATValidationStatus ¶
type KYBSelectResponseKYBRegistryVATValidationStatus string
KYBSelectResponseKYBRegistryVATValidationStatus: Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.
KYBSelectResponseKYBRegistryVATValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseKYBRegistryVATValidationStatusValid KYBSelectResponseKYBRegistryVATValidationStatus = "valid" KYBSelectResponseKYBRegistryVATValidationStatusInvalid KYBSelectResponseKYBRegistryVATValidationStatus = "invalid" KYBSelectResponseKYBRegistryVATValidationStatusFormatValid KYBSelectResponseKYBRegistryVATValidationStatus = "format_valid" KYBSelectResponseKYBRegistryVATValidationStatusInvalidFormat KYBSelectResponseKYBRegistryVATValidationStatus = "invalid_format" KYBSelectResponseKYBRegistryVATValidationStatusCouldNotValidate KYBSelectResponseKYBRegistryVATValidationStatus = "could_not_validate" KYBSelectResponseKYBRegistryVATValidationStatusNotApplicable KYBSelectResponseKYBRegistryVATValidationStatus = "not_applicable" )
Known values of KYBSelectResponseKYBRegistryVATValidationStatus.
type KYBSelectResponseRegistryTierDelivered ¶
type KYBSelectResponseRegistryTierDelivered string
KYBSelectResponseRegistryTierDelivered: The tier actually delivered and billed. Lower than requested when the country's registries hold no ownership data, or the registry has no ownership record for this company.
KYBSelectResponseRegistryTierDelivered is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseRegistryTierDeliveredBasic KYBSelectResponseRegistryTierDelivered = "basic" KYBSelectResponseRegistryTierDeliveredUBO KYBSelectResponseRegistryTierDelivered = "ubo" )
Known values of KYBSelectResponseRegistryTierDelivered.
type KYBSelectResponseRegistryTierRequested ¶
type KYBSelectResponseRegistryTierRequested string
KYBSelectResponseRegistryTierRequested: The tier this endpoint sells: `basic` (Lite) for select, `shareholders`, `ubo`.
KYBSelectResponseRegistryTierRequested is a string with known values below. The set is open: other values may appear and never cause an error.
const ( KYBSelectResponseRegistryTierRequestedBasic KYBSelectResponseRegistryTierRequested = "basic" KYBSelectResponseRegistryTierRequestedUBO KYBSelectResponseRegistryTierRequested = "ubo" )
Known values of KYBSelectResponseRegistryTierRequested.
type KYBService ¶
type KYBService struct {
// contains filtered or unexported fields
}
KYBService holds the kyb operations. Use it through Client.KYB.
func (*KYBService) ListShareholders ¶
func (r *KYBService) ListShareholders(ctx context.Context, params KYBRegistryCandidateRequest, opts ...option.RequestOption) (*KYBListShareholdersResponse, error)
ListShareholders: KYB registry company with shareholders (standalone).
Retrieve the Lite profile **plus the direct shareholders** (natural persons and corporate entities, with their ownership bands) of one candidate returned by `POST /v3/kyb/search/`.
**Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. The search runs on the Lite registry chain; when the country's ownership data lives at another registry Didit re-finds the company there by registration number, at no extra cost.
**Billing.** Billed at the country's Shareholders price - see [KYB registry pricing](/getting-started/kyb-registry-pricing). When the registry holds no shareholder record for the company (or the country offers no ownership data at all) the Lite profile is delivered and billed instead: read `registry_tier_delivered` and `registry_ownership_status`. The balance is checked against the Shareholders price before any registry call (`403` when short).
**Availability.** v3 only. Every call creates a business session (its id is the `request_id`).
**Pending reports.** When a report is still being prepared, or the ownership section has not been retrieved from the registry yet, the endpoint returns 202 Accepted, kyb_registry.fetch_status=pending, kyb_registry.registry_ownership_status=pending, and registry_tier_delivered=null. Keep request_id and retrieve GET /v3/session/{request_id}/decision/ until registry_checks[0].company.fetch_status is resolved. Didit completes the report automatically and charges the delivered tier once it is ready. Do not repeat the purchase while it is pending; every new POST creates a separate request.
POST /v3/kyb/shareholders/
func (*KYBService) ListUBOs ¶
func (r *KYBService) ListUBOs(ctx context.Context, params KYBRegistryCandidateRequest, opts ...option.RequestOption) (*KYBListUBOsResponse, error)
ListUBOs: KYB registry company with ultimate beneficial owners (standalone).
Retrieve the Lite profile, the direct shareholders **and the ultimate beneficial owners** resolved through the ownership chain (`registry_data.ubo_resolution` carries the corporate parent chain) of one candidate returned by `POST /v3/kyb/search/`.
**Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. The search runs on the Lite registry chain; when the country's ownership data lives at another registry Didit re-finds the company there by registration number, at no extra cost.
**Billing.** Billed at the country's UBO price - see [KYB registry pricing](/getting-started/kyb-registry-pricing). The tier delivered is the highest the country and the registry can serve: Shareholders when the resolved report names no natural person as a beneficial owner, Lite when there is no ownership record at all; `registry_tier_delivered` names what was billed. The balance is checked against the UBO price before any registry call (`403` when short).
**Availability.** v3 only. Every call creates a business session (its id is the `request_id`).
**Pending reports.** When a report is still being prepared, or the ownership section has not been retrieved from the registry yet, the endpoint returns 202 Accepted, kyb_registry.fetch_status=pending, kyb_registry.registry_ownership_status=pending, and registry_tier_delivered=null. Keep request_id and retrieve GET /v3/session/{request_id}/decision/ until registry_checks[0].company.fetch_status is resolved. Didit completes the report automatically and charges the delivered tier once it is ready. Do not repeat the purchase while it is pending; every new POST creates a separate request.
POST /v3/kyb/ubo/
func (*KYBService) Search ¶
func (r *KYBService) Search(ctx context.Context, params KYBSearchParams, opts ...option.RequestOption) (*KYBSearchResponse, error)
Search: KYB registry company search (standalone).
Search official company registries for candidate companies by name and/or registration number. This is step 1 of the two-step registry flow: **search** returns lightweight candidates, then `POST /v3/kyb/select/` retrieves the full profile of one candidate.
**Search billing.** Successful searches using a paid company-data source cost USD 0.50 per request, regardless of candidate count. Empty results, failures and results served only by other sources are not charged. The applicable price is reserved before searching; insufficient balance returns 403 with code `insufficient_credits`. Contract rates apply where agreed, and an unconfigured contract search rate returns 403. Sandbox searches are free. Repeating a successful search can incur another charge; callback delivery does not add a charge. Profile retrieval is billed separately. This search fee also applies to v2. Candidates always come back with `fetch_status: "pending"`: the full company data is only fetched (and billed) on select.
**`kyb_response_id` is ephemeral.** It is a per-search handle, not a stable company id. Select promptly after searching and re-search to get a fresh handle instead of storing it.
**`tier` picks the provider chain.** `tier` names the registry tier the search runs on: `basic` (the default, the Lite chain), `shareholders` or `ubo`. The search uses the provider chain that serves that tier, and it is not always the same chain the Lite search reads, so an empty Lite search is not proof that the registry does not hold the company - search again at the tier you need. A country that does not offer the tier you name is searched at the highest tier it offers up to that one. Retrieve the candidate from the endpoint that sells that tier: `POST /v3/kyb/select/` (Lite), `POST /v3/kyb/shareholders/` or `POST /v3/kyb/ubo/`.
**Authentication.** `POST /v3/kyb/search/` (and `/v2/`) takes your application's API key in the `x-api-key` header. The hosted `POST /v1/kyb/search/` is the session-authenticated route a hosted verification flow calls: it answers `403` to an API key and takes no `tier` - the workflow's KYB registry configuration picks the chain.
**Two modes.**
- *Synchronous (default):* the API polls the registry until the search resolves and returns the final candidate list (`search_resolved: true`).
- *Asynchronous:* pass `webhook_url` and the API returns immediately - usually with `search_status: "pending"` and an empty candidate list - then POSTs a `kyb.registry_search.resolved` callback to your URL when the registry finishes. The callback body is `{"event_id", "event_type": "kyb.registry_search.resolved", "request_id", "vendor_data", "metadata", "search_status", "search_resolved", "kyb_registry", "timestamp", "created_at"}` - note `timestamp` and `created_at` in the callback are epoch integers, unlike this endpoint's ISO `created_at` - and is sent **unsigned** (header `X-Didit-Unsigned-Callback: true`, no `X-Signature`).
**Country codes.** ISO 3166-1 alpha-2 (`GB`, `DE`), plus `XX-YY` subdivision codes where registries are regional - e.g. `US-CA` for California.
**Sandbox.** Keys from sandbox applications return one static candidate without contacting any registry.
POST /v3/kyb/search/
func (*KYBService) Select ¶
func (r *KYBService) Select(ctx context.Context, params KYBRegistryCandidateRequest, opts ...option.RequestOption) (*KYBSelectResponse, error)
Select: KYB registry company select - Lite tier (standalone).
Retrieve the **Lite** registry profile of one candidate returned by `POST /v3/kyb/search/` - company details, registered address, identifiers, status, activity and the officers, plus the raw registry payload. Shareholders and ultimate beneficial owners are sold by `POST /v3/kyb/shareholders/` and `POST /v3/kyb/ubo/`.
**Pairing with search.** Pass the candidate's `kyb_response_id` exactly as returned by a search of the same application. The handle is ephemeral and scoped to that search - select promptly, and re-search for a fresh handle rather than storing it.
**Billing.** Each select is billed at the country's Lite price (any search fee is separate); see [KYB registry pricing](/getting-started/kyb-registry-pricing). The balance is checked before any registry call (`403` when short) and the charge is recorded against the created business session.
**Persistence is mandatory.** Every select creates a business session (its id is the `request_id`) so billing and retrieval can be tracked; it appears in the console. `save_api_request` is accepted for symmetry but must be `true` (the default) - sending `false` returns `400`.
POST /v3/kyb/select/
type ListsCreateParams ¶
type ListsCreateParams struct {
// List name. Must differ from the name of every other list of the application,
// system lists included. Required.
Name string `json:"name"`
// Optional free-text description.
Description Opt[string] `json:"description"`
// `allowlist` or `custom`. `blocklist` is refused with `400`. Required.
ListType ListsCreateParamsListType `json:"list_type"`
// What the list holds: `face`, `document` (document number), `phone`, `email`,
// `ip_address` (IP address or CIDR range), `device_fingerprint`,
// `wallet_address`, `bank_account`, `country` (ISO 3166-1 alpha-3), `user` or
// `business` (your `vendor_data`), or `key` (any string). It decides how entry
// values are validated and matched. Cannot be changed later. Required.
EntryType ListsCreateParamsEntryType `json:"entry_type"`
}
ListsCreateParams holds the parameters of Client.Lists.Create.
func (ListsCreateParams) MarshalJSON ¶
func (r ListsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsCreateParamsEntryType ¶
type ListsCreateParamsEntryType string
ListsCreateParamsEntryType: What the list holds: `face`, `document` (document number), `phone`, `email`, `ip_address` (IP address or CIDR range), `device_fingerprint`, `wallet_address`, `bank_account`, `country` (ISO 3166-1 alpha-3), `user` or `business` (your `vendor_data`), or `key` (any string). It decides how entry values are validated and matched. Cannot be changed later.
ListsCreateParamsEntryType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsCreateParamsEntryTypeFace ListsCreateParamsEntryType = "face" ListsCreateParamsEntryTypeDocument ListsCreateParamsEntryType = "document" ListsCreateParamsEntryTypePhone ListsCreateParamsEntryType = "phone" ListsCreateParamsEntryTypeEmail ListsCreateParamsEntryType = "email" ListsCreateParamsEntryTypeIPAddress ListsCreateParamsEntryType = "ip_address" ListsCreateParamsEntryTypeDeviceFingerprint ListsCreateParamsEntryType = "device_fingerprint" ListsCreateParamsEntryTypeWalletAddress ListsCreateParamsEntryType = "wallet_address" ListsCreateParamsEntryTypeBankAccount ListsCreateParamsEntryType = "bank_account" ListsCreateParamsEntryTypeCountry ListsCreateParamsEntryType = "country" ListsCreateParamsEntryTypeUser ListsCreateParamsEntryType = "user" ListsCreateParamsEntryTypeBusiness ListsCreateParamsEntryType = "business" ListsCreateParamsEntryTypeKey ListsCreateParamsEntryType = "key" )
Known values of ListsCreateParamsEntryType.
type ListsCreateParamsListType ¶
type ListsCreateParamsListType string
ListsCreateParamsListType: `allowlist` or `custom`. `blocklist` is refused with `400`.
ListsCreateParamsListType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsCreateParamsListTypeAllowlist ListsCreateParamsListType = "allowlist" ListsCreateParamsListTypeCustom ListsCreateParamsListType = "custom" )
Known values of ListsCreateParamsListType.
type ListsEntriesCreateParams ¶
type ListsEntriesCreateParams struct {
// The value to list, validated against the list's `entry_type`: `email` a valid
// email address; `phone` a valid international number, stored in E.164;
// `ip_address` an IP address or CIDR range (for example `10.0.0.0/8`);
// `device_fingerprint` at least 8 characters among letters, digits, `-`, `_`,
// `:` and `.` (a blocklist refuses a fingerprint that several distinct devices
// have reported); `country` an ISO 3166-1 alpha-2 or alpha-3 code, stored as
// alpha-3; `user` and `business` the `vendor_data`; any other type a non-empty
// string. Stored in lower case except phone numbers and country codes, and a
// list holds each value once (case-insensitive). Required unless
// `reference_session_id` is sent; must be left empty with a document-capture
// `face_image_source`.
Value Opt[string] `json:"value"`
// A person or business verification session of your application to take the
// value from. Didit reads the session's most recent record of the list's entry
// type (`face`, `document`, `phone`, `email`, `ip_address` or
// `device_fingerprint`), links the entry to the session and to that record, and
// fills `display_label` and `metadata` for documents. For a
// `device_fingerprint` blocklist, a session that only has a device-class
// fingerprint, or was completed on more than one device, is refused: send the
// exact fingerprint as `value`. For other entry types, or when the session has
// no such record, send `value` too; your `value` is then stored and the entry
// is still linked to the session.
ReferenceSessionID Opt[string] `json:"reference_session_id"`
// UUID of the record the entry stands for when it does not come from a session:
// a transaction UUID, or the `didit_internal_id` of a user or business. Pair it
// with `metadata.reference_type`. Replaced by the session's record when
// `reference_session_id` provides one.
ReferenceObjectUUID Opt[string] `json:"reference_object_uuid"`
// Face lists with `reference_session_id`: which of the session's images the
// face is taken from. `liveness` (default) is the liveness selfie.
// `front_image_camera_front` and `back_image_camera_front` are the selfies the
// front camera took while the user photographed the front or back of their
// document: accepted only on the system face blocklist, with
// `reference_session_id` and an empty `value`. Each selfie can be added once
// and must show one clear face.
FaceImageSource Opt[ListsEntriesCreateParamsFaceImageSource] `json:"face_image_source"`
// With a document-capture `face_image_source`: the ID verification node whose
// selfie to use, for workflows with more than one. Defaults to the most recent
// ID verification that has that image. Refused with `liveness`.
ReferenceNodeID Opt[string] `json:"reference_node_id"`
// Human-readable label. When empty, Didit derives one from the session where it
// can (for example the holder's name and document number).
DisplayLabel Opt[string] `json:"display_label"`
// Free-text note, such as the reason for listing.
Comment Opt[string] `json:"comment"`
// Free-form JSON stored with the entry and returned as stored. Use
// `reference_type` and `reference_id` so the console links back to the source.
// `reference_image_url` and `front_image_url` are set by Didit only and are
// dropped if you send them. For an entry read from a session, Didit's keys are
// merged with yours.
Metadata Opt[ListsEntriesCreateParamsMetadata] `json:"metadata"`
}
ListsEntriesCreateParams holds the parameters of Client.Lists.Entries.Create.
func (ListsEntriesCreateParams) MarshalJSON ¶
func (r ListsEntriesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsEntriesCreateParamsFaceImageSource ¶
type ListsEntriesCreateParamsFaceImageSource string
ListsEntriesCreateParamsFaceImageSource: Face lists with `reference_session_id`: which of the session's images the face is taken from. `liveness` (default) is the liveness selfie. `front_image_camera_front` and `back_image_camera_front` are the selfies the front camera took while the user photographed the front or back of their document: accepted only on the system face blocklist, with `reference_session_id` and an empty `value`. Each selfie can be added once and must show one clear face.
ListsEntriesCreateParamsFaceImageSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsEntriesCreateParamsFaceImageSourceLiveness ListsEntriesCreateParamsFaceImageSource = "liveness" ListsEntriesCreateParamsFaceImageSourceFrontImageCameraFront ListsEntriesCreateParamsFaceImageSource = "front_image_camera_front" ListsEntriesCreateParamsFaceImageSourceBackImageCameraFront ListsEntriesCreateParamsFaceImageSource = "back_image_camera_front" )
Known values of ListsEntriesCreateParamsFaceImageSource.
type ListsEntriesCreateParamsMetadata ¶
type ListsEntriesCreateParamsMetadata struct {
// What `reference_object_uuid` points to.
ReferenceType Opt[ListsEntriesCreateParamsMetadataReferenceType] `json:"reference_type"`
// Identifier of the source record.
ReferenceID Opt[string] `json:"reference_id"`
}
ListsEntriesCreateParamsMetadata: Free-form JSON stored with the entry and returned as stored. Use `reference_type` and `reference_id` so the console links back to the source. `reference_image_url` and `front_image_url` are set by Didit only and are dropped if you send them. For an entry read from a session, Didit's keys are merged with yours.
func (ListsEntriesCreateParamsMetadata) MarshalJSON ¶
func (r ListsEntriesCreateParamsMetadata) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsEntriesCreateParamsMetadataReferenceType ¶
type ListsEntriesCreateParamsMetadataReferenceType string
ListsEntriesCreateParamsMetadataReferenceType: What `reference_object_uuid` points to.
ListsEntriesCreateParamsMetadataReferenceType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsEntriesCreateParamsMetadataReferenceTypeTransaction ListsEntriesCreateParamsMetadataReferenceType = "transaction" ListsEntriesCreateParamsMetadataReferenceTypeVendorUser ListsEntriesCreateParamsMetadataReferenceType = "vendor_user" ListsEntriesCreateParamsMetadataReferenceTypeVendorBusiness ListsEntriesCreateParamsMetadataReferenceType = "vendor_business" )
Known values of ListsEntriesCreateParamsMetadataReferenceType.
type ListsEntriesListParams ¶
type ListsEntriesListParams struct {
// Case-insensitive text that the entry's `value` or `display_label` must
// contain.
Search Opt[string] `json:"-" query:"search"`
// Only the entries taken from this person verification session, for example to
// see which of its faces are already listed.
ReferenceSessionID Opt[string] `json:"-" query:"reference_session_id"`
// Page size. Defaults to 50. A value above 1000000 returns `400`; zero, a
// negative or a non-numeric value falls back to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based index of the first item to return. Prefer following `next`. A
// value above 1000000 returns `400`; a negative or non-numeric value falls back
// to 0.
Offset Opt[int64] `json:"-" query:"offset"`
}
ListsEntriesListParams holds the parameters of Client.Lists.Entries.List.
func (ListsEntriesListParams) MarshalJSON ¶
func (r ListsEntriesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsEntriesService ¶
type ListsEntriesService struct {
// contains filtered or unexported fields
}
ListsEntriesService holds the lists entries operations. Use it through Client.Lists.Entries.
func (*ListsEntriesService) Create ¶
func (r *ListsEntriesService) Create(ctx context.Context, listUUID string, params ListsEntriesCreateParams, opts ...option.RequestOption) (*ComplianceListEntry, error)
Create: Create a list entry.
Adds one entry to a list, in one of three ways: by `value`; from a verification session with `reference_session_id`, where Didit reads the value from the session's most recent record of the list's entry type and links the entry to it; or by `value` with a `reference_object_uuid` and `metadata.reference_type` pointing back to a transaction, user or business. On the system face, document, phone and email blocklists, the record read from the session is also flagged as blocklisted, so new matching sessions are declined; on the system user and business blocklists, matching users or businesses are set to `BLOCKED`. Sessions and transactions that already finished are not changed. A scoped API key needs `workflows: write`. See [Create a list entry](https://docs.didit.me/management-api/lists/create-entry) for each mode.
POST /v3/lists/{list_uuid}/entries/
func (*ListsEntriesService) Delete ¶
func (r *ListsEntriesService) Delete(ctx context.Context, listUUID string, entryUUID string, opts ...option.RequestOption) error
Delete: Delete a list entry.
Deletes one entry from a list, system lists included. The entry stops matching at once, and deletion is irreversible: to list the value again, create a new entry. On a system face, document, phone or email blocklist, the record the entry stands for is no longer flagged as blocklisted; on the system user or business blocklist, users or businesses of the application whose `vendor_data` equals the entry's value (or whose `didit_internal_id` equals its `reference_object_uuid`) and that are `BLOCKED` return to `ACTIVE`. Sessions and transactions that already finished keep their status. A scoped API key needs `workflows: write`.
DELETE /v3/lists/{list_uuid}/entries/{entry_uuid}/
func (*ListsEntriesService) List ¶
func (r *ListsEntriesService) List(ctx context.Context, listUUID string, params ListsEntriesListParams, opts ...option.RequestOption) (*Page[ComplianceListEntry], error)
List: List list entries.
Returns the current entries of one list, newest first. `search` matches part of an entry's `value` or `display_label` without regard to case, and `reference_session_id` narrows the results to the entries taken from one person verification session. Image URLs in `metadata` are short-lived signed URLs issued again on every call; a scoped API key without `media: read` receives `null` in their place. A scoped API key needs `workflows: read`.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/lists/{list_uuid}/entries/
func (*ListsEntriesService) ListAutoPaging ¶
func (r *ListsEntriesService) ListAutoPaging(ctx context.Context, listUUID string, params ListsEntriesListParams, opts ...option.RequestOption) *PageIterator[ComplianceListEntry]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*ListsEntriesService) UploadFace ¶
func (r *ListsEntriesService) UploadFace(ctx context.Context, listUUID string, params ListsEntriesUploadFaceParams, opts ...option.RequestOption) (*ComplianceListEntry, error)
UploadFace: Upload a face to a list.
Adds a face to a face blocklist or face allowlist from a base64-encoded JPEG or PNG image, for when you have no verification session to reference. Didit detects the faces in the image, uses the largest one, and creates an entry whose `value` and `reference_object_uuid` are the UUID of the new face. A blocklisted face declines new sessions whose face matches; an allowlisted face skips the duplicated-face action and never overrides a blocklist match. In a sandbox application the image is not analyzed and the entry matches nothing. A scoped API key needs `workflows: write`. To list a face from an existing session, use [Create a list entry](https://docs.didit.me/management-api/lists/create-entry) with `reference_session_id` instead.
POST /v3/lists/{list_uuid}/entries/face-upload/
type ListsEntriesUploadFaceParams ¶
type ListsEntriesUploadFaceParams struct {
// Base64-encoded JPEG or PNG, at most 2 MB once decoded, showing a clearly
// visible face. Send the bare base64 string, without a `data:image/...;base64,`
// prefix. Required.
Image string `json:"image"`
// Optional free-text note, such as the reason for listing.
Comment Opt[string] `json:"comment"`
}
ListsEntriesUploadFaceParams holds the parameters of Client.Lists.Entries.UploadFace.
func (ListsEntriesUploadFaceParams) MarshalJSON ¶
func (r ListsEntriesUploadFaceParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsListParams ¶
type ListsListParams struct {
// Only lists of this type.
ListType Opt[ListsListParamsListType] `json:"-" query:"list_type"`
// Only lists of this entry type.
EntryType Opt[ListsListParamsEntryType] `json:"-" query:"entry_type"`
// Sort order: `-created_at` (newest first, the default) or `created_at` (oldest
// first).
Ordering Opt[ListsListParamsOrdering] `json:"-" query:"ordering"`
// Page size. Defaults to 50. A value above 1000000 returns `400`; zero, a
// negative or a non-numeric value falls back to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based index of the first item to return. Prefer following `next`. A
// value above 1000000 returns `400`; a negative or non-numeric value falls back
// to 0.
Offset Opt[int64] `json:"-" query:"offset"`
}
ListsListParams holds the parameters of Client.Lists.List.
func (ListsListParams) MarshalJSON ¶
func (r ListsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsListParamsEntryType ¶
type ListsListParamsEntryType string
ListsListParamsEntryType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsListParamsEntryTypeFace ListsListParamsEntryType = "face" ListsListParamsEntryTypeDocument ListsListParamsEntryType = "document" ListsListParamsEntryTypePhone ListsListParamsEntryType = "phone" ListsListParamsEntryTypeEmail ListsListParamsEntryType = "email" ListsListParamsEntryTypeIPAddress ListsListParamsEntryType = "ip_address" ListsListParamsEntryTypeDeviceFingerprint ListsListParamsEntryType = "device_fingerprint" ListsListParamsEntryTypeWalletAddress ListsListParamsEntryType = "wallet_address" ListsListParamsEntryTypeBankAccount ListsListParamsEntryType = "bank_account" ListsListParamsEntryTypeCountry ListsListParamsEntryType = "country" ListsListParamsEntryTypeUser ListsListParamsEntryType = "user" ListsListParamsEntryTypeBusiness ListsListParamsEntryType = "business" ListsListParamsEntryTypeKey ListsListParamsEntryType = "key" )
Known values of ListsListParamsEntryType.
type ListsListParamsListType ¶
type ListsListParamsListType string
ListsListParamsListType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsListParamsListTypeBlocklist ListsListParamsListType = "blocklist" ListsListParamsListTypeAllowlist ListsListParamsListType = "allowlist" ListsListParamsListTypeCustom ListsListParamsListType = "custom" )
Known values of ListsListParamsListType.
type ListsListParamsOrdering ¶
type ListsListParamsOrdering string
ListsListParamsOrdering is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ListsListParamsOrderingCreatedAt ListsListParamsOrdering = "-created_at" ListsListParamsOrderingCreatedAt2 ListsListParamsOrdering = "created_at" )
Known values of ListsListParamsOrdering.
type ListsService ¶
type ListsService struct {
Entries *ListsEntriesService
// contains filtered or unexported fields
}
ListsService holds the lists operations. Use it through Client.Lists.
func (*ListsService) Create ¶
func (r *ListsService) Create(ctx context.Context, params ListsCreateParams, opts ...option.RequestOption) (*ComplianceList, error)
Create: Create a list.
Creates an allowlist or a custom list in the application the API key belongs to. Blocklists cannot be created: Didit provisions one system blocklist per entry type, and you add to it with [Create a list entry](https://docs.didit.me/management-api/lists/create-entry). `entry_type` cannot change after creation and decides how entry values are validated and matched. Allowlist entries mark matching items as trusted (for example, a face allowlist skips the duplicated-face action) and never override a blocklist match; reference any list from a workflow or transaction rule condition with `value_type: "list"`. A scoped API key needs `workflows: write`.
POST /v3/lists/
func (*ListsService) Delete ¶
func (r *ListsService) Delete(ctx context.Context, listUUID string, opts ...option.RequestOption) error
Delete: Delete a list.
Deletes an allowlist or custom list together with its entries. Deletion is irreversible: the list and its entries no longer appear in any read, and workflow and transaction rule conditions that reference the list evaluate it as an empty list from then on. Sessions and transactions already evaluated keep their results, and the name can be reused for a new list. System lists cannot be deleted and return `400`; to empty one, [delete its entries](https://docs.didit.me/management-api/lists/delete-entry). A scoped API key needs `workflows: write`.
DELETE /v3/lists/{list_uuid}/
func (*ListsService) List ¶
func (r *ListsService) List(ctx context.Context, params ListsListParams, opts ...option.RequestOption) (*Page[ComplianceList], error)
List: List lists.
Returns the application's lists, newest first: the system lists Didit provisions (one blocklist per entry type, the **High Risk Countries** custom list, and any system allowlist) and the allowlists and custom lists you created. Filter with `list_type` and `entry_type`; deleted lists never appear. Results are paginated with `limit` and `offset`. A scoped API key needs `workflows: read`. See [Lists](https://docs.didit.me/management-api/lists/overview) for what each list type does.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/lists/
func (*ListsService) ListAutoPaging ¶
func (r *ListsService) ListAutoPaging(ctx context.Context, params ListsListParams, opts ...option.RequestOption) *PageIterator[ComplianceList]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*ListsService) Retrieve ¶
func (r *ListsService) Retrieve(ctx context.Context, listUUID string, opts ...option.RequestOption) (*ComplianceList, error)
Retrieve: Get a list.
Returns one list of the application with its entry count and when its newest entry was added. A list of another application, or one that was deleted, returns `404`. This returns the list only: read its values with [List list entries](https://docs.didit.me/management-api/lists/list-entries). A scoped API key needs `workflows: read`.
GET /v3/lists/{list_uuid}/
func (*ListsService) Update ¶
func (r *ListsService) Update(ctx context.Context, listUUID string, params ListsUpdateParams, opts ...option.RequestOption) (*ListsUpdateResponse, error)
Update: Update a list.
Renames a list or changes its description. Only `name` and `description` are read; any other field is ignored, so `list_type` and `entry_type` keep the values they were created with. System lists cannot be modified and return `400`. The response contains only `name` and `description`: call [Get a list](https://docs.didit.me/management-api/lists/get) for the full list. A scoped API key needs `workflows: write`.
PATCH /v3/lists/{list_uuid}/
type ListsUpdateParams ¶
type ListsUpdateParams struct {
// New name. Must differ from the name of every other list of the application.
Name Opt[string] `json:"name"`
// New description. Send an empty string to clear it.
Description Opt[string] `json:"description"`
}
ListsUpdateParams holds the parameters of Client.Lists.Update.
func (ListsUpdateParams) MarshalJSON ¶
func (r ListsUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ListsUpdateResponse ¶
type ListsUpdateResponse struct {
// The list's name after the update.
Name string `json:"name"`
// The list's description after the update.
Description string `json:"description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ListsUpdateResponse is a response object.
func (*ListsUpdateResponse) UnmarshalJSON ¶
func (r *ListsUpdateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ListsUpdateResponse leniently.
type LoginRequest ¶
type LoginRequest struct {
// Required.
Email string `json:"email"`
// Required.
Password string `json:"password"`
}
LoginRequest is a request object.
func (LoginRequest) MarshalJSON ¶
func (r LoginRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type LoginResponse ¶
type LoginResponse struct {
// RS256-signed JWT. Use as `Authorization: Bearer <token>` for Account
// Management endpoints.
AccessToken string `json:"access_token"`
RefreshToken string `json:"refresh_token"`
// Lifetime of the access token in seconds (default 86400).
ExpiresIn int64 `json:"expires_in"`
Message string `json:"message"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
LoginResponse is a response object.
func (*LoginResponse) UnmarshalJSON ¶
func (r *LoginResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes LoginResponse leniently.
type MonitoringEvent ¶
type MonitoringEvent struct {
// Didit identifier of the event. Use it as `{event_uuid}` in the retrieve and
// delete calls.
EventUUID string `json:"event_uuid"`
// Your own identifier, the idempotency key you sent.
EventID string `json:"event_id"`
// Event category.
EventCategory MonitoringEventEventCategory `json:"event_category"`
// What happened within the category, as you sent it.
ActionType string `json:"action_type"`
// When the event happened on your side.
OccurredAt time.Time `json:"occurred_at"`
// When Didit accepted the event.
ReceivedAt time.Time `json:"received_at"`
// `ACCEPTED`: stored, no matched rule changed its standing (the normal answer
// for most events, and always the answer in a sandbox application, where no
// rules run). `APPROVED`: a rule matched and the score stayed under your review
// threshold. `IN_REVIEW`: a rule pushed the score over the review threshold or
// set the status. `DECLINED`: a rule declined it or the score crossed your
// decline threshold.
Status MonitoringEventStatus `json:"status"`
// Accumulated rule score. Starts at 0; rule `add_score` actions move it
// (negative deltas are allowed).
Score int64 `json:"score"`
// `subject.vendor_data` of the event: your id for the user or company.
SubjectVendorData string `json:"subject_vendor_data"`
// `individual` or `company`: which kind of subject `subject_vendor_data` names.
SubjectEntityType string `json:"subject_entity_type"`
// UUID of the user (individual) or company the event resolved to, or null when
// that record no longer exists.
SubjectUUID string `json:"subject_uuid"`
// The other player of a P2P event (promoted from
// `payload.counterparty_vendor_data`).
CounterpartyVendorData string `json:"counterparty_vendor_data"`
// `session.session_id` sent with the event.
SessionID string `json:"session_id"`
// `device_context.fingerprint` sent with the event.
DeviceFingerprint string `json:"device_fingerprint"`
// IP address of the event. On the server lane this is
// `device_context.network_context.ip_address` as you sent it; on the device
// lane it is the IP of the request.
IPAddress string `json:"ip_address"`
// Country code of `ip_address` from IP enrichment, or null when the address was
// not enriched (missing, private, or low-value telemetry whose address was not
// already known).
IPCountry string `json:"ip_country"`
// Amount as a decimal string with 18 decimal places, from
// `transaction_context.amount`, `payload.amount` or `payload.stake_amount`, in
// that order.
Amount string `json:"amount"`
// Currency from `transaction_context.currency` or `payload.currency`.
Currency string `json:"currency"`
// Promoted from `payload.game_id`.
GameID string `json:"game_id"`
// Promoted from `payload.round_id`.
RoundID string `json:"round_id"`
// Promoted from `payload.bonus_id`.
BonusID string `json:"bonus_id"`
// Promoted from `payload.affiliate_code`.
AffiliateCode string `json:"affiliate_code"`
// Payment reference from `transaction_context.payment_reference_id` or
// `payload.payment_reference_id`.
PaymentReferenceID string `json:"payment_reference_id"`
// Retention class. Payment and dispute events are `monetary_or_compliance`;
// security and responsible-gambling events are `risk_relevant`;
// `session.page_view`, `session.sdk_heartbeat`, `session.sdk_loaded`,
// `session.device_seen`, `session.bot_signal_observed`,
// `bonus.promotion_viewed` and `affiliate.referral_clicked` are `low_value`;
// everything else is `standard`. An event an active rule matched is promoted to
// `risk_relevant` (never demoted).
RetentionClass MonitoringEventRetentionClass `json:"retention_class"`
// Number of rules that matched the event, including rules in `TEST` mode (which
// record evidence but apply no actions).
RulesMatchedCount int64 `json:"rules_matched_count"`
// `true` while an asynchronous rule (cross-subject correlation, or a sequence
// longer than 24 hours) still has to run for this event. It resolves within
// minutes and `status`, `score` and `rules_matched_count` update in place.
CorrelationPending bool `json:"correlation_pending"`
// Whether an SDK under backpressure may drop events of this kind. `false` for
// every `security`, `payment`, `dispute` and `responsible_gambling` event and
// for `gameplay.bet_placed`, `gameplay.bet_settled` and
// `gameplay.p2p_settlement`.
IsDroppable bool `json:"is_droppable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEvent: One stored monitoring event as returned by the list and subject-timeline endpoints. Restricted evidence (payload, device context, rule evidence) is only returned by `GET /v3/events/{event_uuid}/`.
func (*MonitoringEvent) UnmarshalJSON ¶
func (r *MonitoringEvent) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEvent leniently.
type MonitoringEventCreateRequest ¶
type MonitoringEventCreateRequest struct {
// Your identifier for the event, unique per application. It is the idempotency
// key: resending the same `event_category`, `action_type`, `occurred_at`,
// `subject.vendor_data` and `payload` under it is a replay, anything different
// is a conflict. Required.
EventID string `json:"event_id"`
// Event category. Required.
EventCategory MonitoringEventCreateRequestEventCategory `json:"event_category"`
// What happened within the category. Open vocabulary; the managed actions
// listed in [Event
// ingestion](https://docs.didit.me/transaction-monitoring/events) (for example
// `login`, `deposit_completed`, `chargeback_opened`) unlock typed validation
// and managed rule fields. Leading and trailing whitespace is trimmed.
// Required.
ActionType string `json:"action_type"`
// When the event happened on your side, ISO 8601 (a value without an offset is
// read as UTC). Must be no more than 7 days in the past and no more than 5
// minutes in the future. Required.
OccurredAt time.Time `json:"occurred_at"`
// Time zone of the occurrence on your side, for example `Europe/Madrid`. Stored
// with the event; not returned by the read endpoints.
TimeZone Opt[string] `json:"time_zone"`
// The user or company the event belongs to. It resolves to the user (or
// company) with this `vendor_data` in your application; one is created when
// none exists. Required.
Subject MonitoringEventCreateRequestSubject `json:"subject"`
// The business the event belongs to, when it differs from the subject. Only
// `vendor_data` is read.
Business Opt[MonitoringEventCreateRequestBusiness] `json:"business"`
// Your session context for the event.
Session Opt[MonitoringEventCreateRequestSession] `json:"session"`
// Device and network context, stored as sent and returned by `GET
// /v3/events/{event_uuid}/`. On this server lane Didit does not see the end
// user's connection, so the IP enriched and used by rules is
// `network_context.ip_address` as you send it.
DeviceContext Opt[MonitoringEventCreateRequestDeviceContext] `json:"device_context"`
// Money context. Non-empty values here also satisfy the required payload keys
// of the action.
TransactionContext Opt[MonitoringEventCreateRequestTransactionContext] `json:"transaction_context"`
// The category's domain fields, at most 16384 bytes once JSON-encoded. Some
// actions require keys (in `payload` or `transaction_context`):
// `gameplay.p2p_settlement` needs `game_id`, `counterparty_vendor_data`,
// `stake_amount`, `net_result_amount`, `role` and one of `hand_id`, `round_id`,
// `match_id`; `gameplay.bet_placed` and `gameplay.bet_settled` need `game_id`;
// `payment.deposit_initiated`, `payment.deposit_completed`,
// `payment.withdrawal_requested` and `payment.withdrawal_completed` need
// `payment_reference_id`, `amount`, `currency`, `payment_method`, `status`;
// `payment.withdrawal_address_changed` needs `withdrawal_address_hash`;
// `dispute.chargeback_opened`, `dispute.chargeback_won` and
// `dispute.chargeback_lost` need `payment_reference_id` and one of
// `dispute_id`, `chargeback_id`; `session.bot_signal_observed` needs
// `telemetry_schema_version` and one of `bot_score`, `actions_per_minute`,
// `timing_variance_ms`, `pointer_entropy`, `keystroke_entropy`,
// `reaction_time_ms_p50`; `responsible_gambling.self_exclusion_match` needs
// `registry_source`, `exclusion_status`, `identity_match_ref`. Every `security`
// action ending in `_changed` needs `changed_field`, plus
// `previous_reference_hash` or `new_reference_hash` when the field is
// `password`, `mfa_method`, `mfa`, `email`, `phone`, `withdrawal_address`,
// `payout_method` or `api_key`. Send hashes and references, never a card
// number, a full withdrawal address, a password hash or an MFA secret.
Payload Opt[map[string]any] `json:"payload"`
// Up to 100 keys of your own, addressable from rules as `custom_values.<key>`.
// Values must be scalars (string, number, boolean or null); nested objects and
// arrays are rejected.
CustomValues Opt[map[string]any] `json:"custom_values"`
}
MonitoringEventCreateRequest: The event envelope, the same for every category. camelCase aliases are accepted: `eventId`, `eventCategory` (or `category`), `actionType`, `occurredAt`, `timeZone` (or `zoneId`), `deviceContext` (or `device`), `transactionContext`, `customValues` (or `props`); inside `subject`: `vendorData`, `entityType`, `fullName`; inside `session`: `sessionId`, `pageUrl`; inside `transaction_context`: `paymentReferenceId`.
func (MonitoringEventCreateRequest) MarshalJSON ¶
func (r MonitoringEventCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestBusiness ¶
type MonitoringEventCreateRequestBusiness struct {
// Your id for the business. Filterable as `business_vendor_data`.
VendorData Opt[string] `json:"vendor_data"`
}
MonitoringEventCreateRequestBusiness: The business the event belongs to, when it differs from the subject. Only `vendor_data` is read.
func (MonitoringEventCreateRequestBusiness) MarshalJSON ¶
func (r MonitoringEventCreateRequestBusiness) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestDeviceContext ¶
type MonitoringEventCreateRequestDeviceContext struct {
// Device fingerprint. Filterable as `device_fingerprint`.
Fingerprint Opt[string] `json:"fingerprint"`
// Your persistent device identifier.
PersistentDeviceID Opt[string] `json:"persistent_device_id"`
// Bot score from your own detection, as an integer.
BotScore Opt[int64] `json:"bot_score"`
NetworkContext Opt[MonitoringEventCreateRequestDeviceContextNetworkContext] `json:"network_context"`
}
MonitoringEventCreateRequestDeviceContext: Device and network context, stored as sent and returned by `GET /v3/events/{event_uuid}/`. On this server lane Didit does not see the end user's connection, so the IP enriched and used by rules is `network_context.ip_address` as you send it.
func (MonitoringEventCreateRequestDeviceContext) MarshalJSON ¶
func (r MonitoringEventCreateRequestDeviceContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestDeviceContextNetworkContext ¶
type MonitoringEventCreateRequestDeviceContextNetworkContext struct {
// End user's IP address. Public addresses are enriched once per unique address.
IPAddress Opt[string] `json:"ip_address"`
}
MonitoringEventCreateRequestDeviceContextNetworkContext is a request object.
func (MonitoringEventCreateRequestDeviceContextNetworkContext) MarshalJSON ¶
func (r MonitoringEventCreateRequestDeviceContextNetworkContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestEventCategory ¶
type MonitoringEventCreateRequestEventCategory string
MonitoringEventCreateRequestEventCategory: Event category.
MonitoringEventCreateRequestEventCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventCreateRequestEventCategoryAuth MonitoringEventCreateRequestEventCategory = "auth" MonitoringEventCreateRequestEventCategorySession MonitoringEventCreateRequestEventCategory = "session" MonitoringEventCreateRequestEventCategoryGameplay MonitoringEventCreateRequestEventCategory = "gameplay" MonitoringEventCreateRequestEventCategoryBonus MonitoringEventCreateRequestEventCategory = "bonus" MonitoringEventCreateRequestEventCategoryAffiliate MonitoringEventCreateRequestEventCategory = "affiliate" MonitoringEventCreateRequestEventCategoryPayment MonitoringEventCreateRequestEventCategory = "payment" MonitoringEventCreateRequestEventCategoryDispute MonitoringEventCreateRequestEventCategory = "dispute" MonitoringEventCreateRequestEventCategorySecurity MonitoringEventCreateRequestEventCategory = "security" MonitoringEventCreateRequestEventCategoryResponsibleGambling MonitoringEventCreateRequestEventCategory = "responsible_gambling" MonitoringEventCreateRequestEventCategoryCustom MonitoringEventCreateRequestEventCategory = "custom" )
Known values of MonitoringEventCreateRequestEventCategory.
type MonitoringEventCreateRequestSession ¶
type MonitoringEventCreateRequestSession struct {
// Your session identifier. Filterable and returned as `session_id`.
SessionID Opt[string] `json:"session_id"`
// Position of the event within the session. Returned as `session_sequence`.
Sequence Opt[int64] `json:"sequence"`
// Validated; not stored on the event.
PageURL Opt[string] `json:"page_url"`
// Validated; not stored on the event.
Referrer Opt[string] `json:"referrer"`
}
MonitoringEventCreateRequestSession: Your session context for the event.
func (MonitoringEventCreateRequestSession) MarshalJSON ¶
func (r MonitoringEventCreateRequestSession) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestSubject ¶
type MonitoringEventCreateRequestSubject struct {
// Your id for the subject. Required.
VendorData string `json:"vendor_data"`
// `company` resolves the subject to a company; any other value (default
// `individual`) resolves it to an individual. The same `vendor_data` can name
// one of each.
EntityType Opt[string] `json:"entity_type"`
// Display name, used only when this event creates the user or company.
FullName Opt[string] `json:"full_name"`
// Validated as an email address; not stored on the event.
Email Opt[string] `json:"email"`
// Validated; not stored on the event.
Phone Opt[string] `json:"phone"`
// Validated; not stored on the event.
Country Opt[string] `json:"country"`
}
MonitoringEventCreateRequestSubject: The user or company the event belongs to. It resolves to the user (or company) with this `vendor_data` in your application; one is created when none exists.
func (MonitoringEventCreateRequestSubject) MarshalJSON ¶
func (r MonitoringEventCreateRequestSubject) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventCreateRequestTransactionContext ¶
type MonitoringEventCreateRequestTransactionContext struct {
// Amount as a decimal string (a number is also accepted).
Amount Opt[string] `json:"amount"`
// Currency code.
Currency Opt[string] `json:"currency"`
// Direction of the money movement, for example `inbound` or `outbound`.
Direction Opt[string] `json:"direction"`
// Your payment reference. Filterable as `payment_reference_id`.
PaymentReferenceID Opt[string] `json:"payment_reference_id"`
}
MonitoringEventCreateRequestTransactionContext: Money context. Non-empty values here also satisfy the required payload keys of the action.
func (MonitoringEventCreateRequestTransactionContext) MarshalJSON ¶
func (r MonitoringEventCreateRequestTransactionContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventDetail ¶
type MonitoringEventDetail struct {
// Didit identifier of the event. Use it as `{event_uuid}` in the retrieve and
// delete calls.
EventUUID string `json:"event_uuid"`
// Your own identifier, the idempotency key you sent.
EventID string `json:"event_id"`
// Event category.
EventCategory MonitoringEventDetailEventCategory `json:"event_category"`
// What happened within the category, as you sent it.
ActionType string `json:"action_type"`
// When the event happened on your side.
OccurredAt time.Time `json:"occurred_at"`
// When Didit accepted the event.
ReceivedAt time.Time `json:"received_at"`
// `ACCEPTED`: stored, no matched rule changed its standing (the normal answer
// for most events, and always the answer in a sandbox application, where no
// rules run). `APPROVED`: a rule matched and the score stayed under your review
// threshold. `IN_REVIEW`: a rule pushed the score over the review threshold or
// set the status. `DECLINED`: a rule declined it or the score crossed your
// decline threshold.
Status MonitoringEventDetailStatus `json:"status"`
// Accumulated rule score. Starts at 0; rule `add_score` actions move it
// (negative deltas are allowed).
Score int64 `json:"score"`
// `subject.vendor_data` of the event: your id for the user or company.
SubjectVendorData string `json:"subject_vendor_data"`
// `individual` or `company`: which kind of subject `subject_vendor_data` names.
SubjectEntityType string `json:"subject_entity_type"`
// UUID of the user (individual) or company the event resolved to, or null when
// that record no longer exists.
SubjectUUID string `json:"subject_uuid"`
// The other player of a P2P event (promoted from
// `payload.counterparty_vendor_data`).
CounterpartyVendorData string `json:"counterparty_vendor_data"`
// `session.session_id` sent with the event.
SessionID string `json:"session_id"`
// `device_context.fingerprint` sent with the event.
DeviceFingerprint string `json:"device_fingerprint"`
// IP address of the event. On the server lane this is
// `device_context.network_context.ip_address` as you sent it; on the device
// lane it is the IP of the request.
IPAddress string `json:"ip_address"`
// Country code of `ip_address` from IP enrichment, or null when the address was
// not enriched (missing, private, or low-value telemetry whose address was not
// already known).
IPCountry string `json:"ip_country"`
// Amount as a decimal string with 18 decimal places, from
// `transaction_context.amount`, `payload.amount` or `payload.stake_amount`, in
// that order.
Amount string `json:"amount"`
// Currency from `transaction_context.currency` or `payload.currency`.
Currency string `json:"currency"`
// Promoted from `payload.game_id`.
GameID string `json:"game_id"`
// Promoted from `payload.round_id`.
RoundID string `json:"round_id"`
// Promoted from `payload.bonus_id`.
BonusID string `json:"bonus_id"`
// Promoted from `payload.affiliate_code`.
AffiliateCode string `json:"affiliate_code"`
// Payment reference from `transaction_context.payment_reference_id` or
// `payload.payment_reference_id`.
PaymentReferenceID string `json:"payment_reference_id"`
// Retention class. Payment and dispute events are `monetary_or_compliance`;
// security and responsible-gambling events are `risk_relevant`;
// `session.page_view`, `session.sdk_heartbeat`, `session.sdk_loaded`,
// `session.device_seen`, `session.bot_signal_observed`,
// `bonus.promotion_viewed` and `affiliate.referral_clicked` are `low_value`;
// everything else is `standard`. An event an active rule matched is promoted to
// `risk_relevant` (never demoted).
RetentionClass MonitoringEventDetailRetentionClass `json:"retention_class"`
// Number of rules that matched the event, including rules in `TEST` mode (which
// record evidence but apply no actions).
RulesMatchedCount int64 `json:"rules_matched_count"`
// `true` while an asynchronous rule (cross-subject correlation, or a sequence
// longer than 24 hours) still has to run for this event. It resolves within
// minutes and `status`, `score` and `rules_matched_count` update in place.
CorrelationPending bool `json:"correlation_pending"`
// Whether an SDK under backpressure may drop events of this kind. `false` for
// every `security`, `payment`, `dispute` and `responsible_gambling` event and
// for `gameplay.bet_placed`, `gameplay.bet_settled` and
// `gameplay.p2p_settlement`.
IsDroppable bool `json:"is_droppable"`
// The category fields you sent in `payload`.
Payload map[string]any `json:"payload"`
// The scalar `custom_values` you sent. Didit adds `vpn_or_proxy_detected: true`
// or `is_data_center: true` when IP enrichment flags the address and you did
// not set them.
CustomValues map[string]any `json:"custom_values"`
// The device context as stored: your `device_context` (including `fingerprint`,
// `persistent_device_id` and `bot_score` when sent) with `network_context`
// completed by IP enrichment (`ip_country`, `ip_country_code`, `ip_city`,
// `asn_number`, `asn_organization`, `is_vpn_or_tor`, `is_data_center`,
// `proxy_type`, `connection_type`) for keys you left empty.
DeviceContext map[string]any `json:"device_context"`
// Field path to provenance: `customer` (sent by your backend), `sdk` (sent
// through the device lane) or `server` (derived by Didit, such as `received_at`
// and enriched network fields). Check it before acting on a match.
FieldSources map[string]MonitoringEventDetailFieldSources `json:"field_sources"`
// `session.sequence` sent with the event.
SessionSequence int64 `json:"session_sequence"`
// Promoted from `payload.table_id`.
TableID string `json:"table_id"`
// Promoted from `payload.hand_id`.
HandID string `json:"hand_id"`
// Promoted from `payload.match_id`.
MatchID string `json:"match_id"`
// Promoted from `payload.market_id`.
MarketID string `json:"market_id"`
// Promoted from `payload.side`.
Side string `json:"side"`
// Promoted from `payload.role`.
Role string `json:"role"`
// Promoted from `payload.net_result_amount`, as a decimal string with 18
// decimal places.
NetResultAmount string `json:"net_result_amount"`
// Promoted from `payload.payment_fingerprint`.
PaymentFingerprint string `json:"payment_fingerprint"`
// Promoted from `payload.instrument_reference_hash`.
InstrumentReferenceHash string `json:"instrument_reference_hash"`
// Promoted from `payload.withdrawal_address_hash` (or
// `payload.destination_reference_hash`).
WithdrawalAddressHash string `json:"withdrawal_address_hash"`
// Promoted from `payload.dispute_id`.
DisputeID string `json:"dispute_id"`
// Promoted from `payload.chargeback_id`.
ChargebackID string `json:"chargeback_id"`
// Promoted from `payload.changed_field` (security change events).
ChangedField string `json:"changed_field"`
// Promoted from `payload.identity_match_ref` (responsible-gambling registry
// matches).
IdentityMatchRef string `json:"identity_match_ref"`
// Version of the event envelope schema. Currently `1`.
SchemaVersion int64 `json:"schema_version"`
// When the event expires under its retention class and is deleted:
// `occurred_at` plus the class period (14, 30 or 90 days by default, adjustable
// per application). Null for `monetary_or_compliance` events, which follow
// transaction retention.
ExpiresAt time.Time `json:"expires_at"`
// Number of event rules evaluated for this event.
RulesEvaluatedCount int64 `json:"rules_evaluated_count"`
// Every rule that matched the event, newest first.
RuleRuns []MonitoringEventRuleRun `json:"rule_runs"`
// Enrichment of the event's IP address, or null when the address was not
// enriched. See [IP
// enrichment](https://docs.didit.me/transaction-monitoring/ip-enrichment).
IPEnrichment MonitoringEventDetailIPEnrichment `json:"ip_enrichment"`
// Cached email and phone risk signals of the subject, or null when no profile
// exists for the subject.
SubjectProfile MonitoringEventDetailSubjectProfile `json:"subject_profile"`
// Names of the tags attached to the event (rule `add_tags` actions).
Tags []string `json:"tags"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventDetail: One monitoring event with its full envelope, enrichment and rule evidence. Every field of `MonitoringEvent` plus the fields below.
func (*MonitoringEventDetail) UnmarshalJSON ¶
func (r *MonitoringEventDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventDetail leniently.
type MonitoringEventDetailEventCategory ¶
type MonitoringEventDetailEventCategory string
MonitoringEventDetailEventCategory: Event category.
MonitoringEventDetailEventCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventDetailEventCategoryAuth MonitoringEventDetailEventCategory = "auth" MonitoringEventDetailEventCategorySession MonitoringEventDetailEventCategory = "session" MonitoringEventDetailEventCategoryGameplay MonitoringEventDetailEventCategory = "gameplay" MonitoringEventDetailEventCategoryBonus MonitoringEventDetailEventCategory = "bonus" MonitoringEventDetailEventCategoryAffiliate MonitoringEventDetailEventCategory = "affiliate" MonitoringEventDetailEventCategoryPayment MonitoringEventDetailEventCategory = "payment" MonitoringEventDetailEventCategoryDispute MonitoringEventDetailEventCategory = "dispute" MonitoringEventDetailEventCategorySecurity MonitoringEventDetailEventCategory = "security" MonitoringEventDetailEventCategoryResponsibleGambling MonitoringEventDetailEventCategory = "responsible_gambling" MonitoringEventDetailEventCategoryCustom MonitoringEventDetailEventCategory = "custom" )
Known values of MonitoringEventDetailEventCategory.
type MonitoringEventDetailFieldSources ¶
type MonitoringEventDetailFieldSources string
MonitoringEventDetailFieldSources is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventDetailFieldSourcesCustomer MonitoringEventDetailFieldSources = "customer" MonitoringEventDetailFieldSourcesSDK MonitoringEventDetailFieldSources = "sdk" MonitoringEventDetailFieldSourcesServer MonitoringEventDetailFieldSources = "server" )
Known values of MonitoringEventDetailFieldSources.
type MonitoringEventDetailIPEnrichment ¶
type MonitoringEventDetailIPEnrichment struct {
// Country code of the address.
IPCountryCode string `json:"ip_country_code"`
// City of the address.
IPCity string `json:"ip_city"`
// Autonomous system number.
AsnNumber int64 `json:"asn_number"`
// Organization that operates the autonomous system.
AsnOrganization string `json:"asn_organization"`
// Whether the address is a known VPN or Tor exit.
IsVpnOrTor bool `json:"is_vpn_or_tor"`
// Whether the address belongs to a hosting or data-centre network.
IsDataCenter bool `json:"is_data_center"`
// Proxy classification of the address as an opaque string, or null.
ProxyType string `json:"proxy_type"`
// When the address was last enriched.
LastEnrichedAt time.Time `json:"last_enriched_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventDetailIPEnrichment: Enrichment of the event's IP address, or null when the address was not enriched. See [IP enrichment](https://docs.didit.me/transaction-monitoring/ip-enrichment).
func (*MonitoringEventDetailIPEnrichment) UnmarshalJSON ¶
func (r *MonitoringEventDetailIPEnrichment) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventDetailIPEnrichment leniently.
type MonitoringEventDetailRetentionClass ¶
type MonitoringEventDetailRetentionClass string
MonitoringEventDetailRetentionClass: Retention class. Payment and dispute events are `monetary_or_compliance`; security and responsible-gambling events are `risk_relevant`; `session.page_view`, `session.sdk_heartbeat`, `session.sdk_loaded`, `session.device_seen`, `session.bot_signal_observed`, `bonus.promotion_viewed` and `affiliate.referral_clicked` are `low_value`; everything else is `standard`. An event an active rule matched is promoted to `risk_relevant` (never demoted).
MonitoringEventDetailRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventDetailRetentionClassLowValue MonitoringEventDetailRetentionClass = "low_value" MonitoringEventDetailRetentionClassStandard MonitoringEventDetailRetentionClass = "standard" MonitoringEventDetailRetentionClassRiskRelevant MonitoringEventDetailRetentionClass = "risk_relevant" MonitoringEventDetailRetentionClassMonetaryOrCompliance MonitoringEventDetailRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventDetailRetentionClass.
type MonitoringEventDetailStatus ¶
type MonitoringEventDetailStatus string
MonitoringEventDetailStatus: `ACCEPTED`: stored, no matched rule changed its standing (the normal answer for most events, and always the answer in a sandbox application, where no rules run). `APPROVED`: a rule matched and the score stayed under your review threshold. `IN_REVIEW`: a rule pushed the score over the review threshold or set the status. `DECLINED`: a rule declined it or the score crossed your decline threshold.
MonitoringEventDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventDetailStatusAccepted MonitoringEventDetailStatus = "ACCEPTED" MonitoringEventDetailStatusApproved MonitoringEventDetailStatus = "APPROVED" MonitoringEventDetailStatusInReview MonitoringEventDetailStatus = "IN_REVIEW" MonitoringEventDetailStatusDeclined MonitoringEventDetailStatus = "DECLINED" )
Known values of MonitoringEventDetailStatus.
type MonitoringEventDetailSubjectProfile ¶
type MonitoringEventDetailSubjectProfile struct {
// Email risk score.
EmailRiskScore int64 `json:"email_risk_score"`
// Email deliverability verdict.
EmailDeliverability string `json:"email_deliverability"`
// Whether the email address is disposable.
EmailIsDisposable bool `json:"email_is_disposable"`
// Whether the email address appears in known data breaches.
EmailIsBreached bool `json:"email_is_breached"`
// Number of online accounts linked to the email address.
EmailSocialCount int64 `json:"email_social_count"`
// Names of the online services where an account linked to the email address was
// found.
EmailSocialProviders []string `json:"email_social_providers"`
// Phone risk score.
PhoneRiskScore int64 `json:"phone_risk_score"`
// Phone line type.
PhoneLineType string `json:"phone_line_type"`
// Phone carrier name.
PhoneCarrier string `json:"phone_carrier"`
// Number of online accounts linked to the phone number.
PhoneSocialCount int64 `json:"phone_social_count"`
// Names of the online services where an account linked to the phone number was
// found.
PhoneSocialProviders []string `json:"phone_social_providers"`
// Opaque identifier of the source of the profile.
SourceProvider string `json:"source_provider"`
// When the profile was last refreshed.
LastEnrichedAt time.Time `json:"last_enriched_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventDetailSubjectProfile: Cached email and phone risk signals of the subject, or null when no profile exists for the subject.
func (*MonitoringEventDetailSubjectProfile) UnmarshalJSON ¶
func (r *MonitoringEventDetailSubjectProfile) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventDetailSubjectProfile leniently.
type MonitoringEventEventCategory ¶
type MonitoringEventEventCategory string
MonitoringEventEventCategory: Event category.
MonitoringEventEventCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventEventCategoryAuth MonitoringEventEventCategory = "auth" MonitoringEventEventCategorySession MonitoringEventEventCategory = "session" MonitoringEventEventCategoryGameplay MonitoringEventEventCategory = "gameplay" MonitoringEventEventCategoryBonus MonitoringEventEventCategory = "bonus" MonitoringEventEventCategoryAffiliate MonitoringEventEventCategory = "affiliate" MonitoringEventEventCategoryPayment MonitoringEventEventCategory = "payment" MonitoringEventEventCategoryDispute MonitoringEventEventCategory = "dispute" MonitoringEventEventCategorySecurity MonitoringEventEventCategory = "security" MonitoringEventEventCategoryResponsibleGambling MonitoringEventEventCategory = "responsible_gambling" MonitoringEventEventCategoryCustom MonitoringEventEventCategory = "custom" )
Known values of MonitoringEventEventCategory.
type MonitoringEventIngestResult ¶
type MonitoringEventIngestResult struct {
// Didit identifier of the stored event.
EventUUID string `json:"event_uuid"`
// Your `event_id`.
EventID string `json:"event_id"`
// Status after the real-time rules ran. See `MonitoringEvent.status`.
Status MonitoringEventIngestResultStatus `json:"status"`
// Score after the real-time rules ran.
Score int64 `json:"score"`
// Number of event rules evaluated in the request. 0 in a sandbox application,
// where no rules run.
RulesEvaluatedCount int64 `json:"rules_evaluated_count"`
// Number of rules that matched, including `TEST` mode rules.
RulesMatchedCount int64 `json:"rules_matched_count"`
// `true` when an asynchronous rule still has to run. Read `GET
// /v3/events/{event_uuid}/` a few minutes later for the final `status` and
// `score`.
CorrelationPending bool `json:"correlation_pending"`
// Retention class, after any promotion by a matched rule.
RetentionClass MonitoringEventIngestResultRetentionClass `json:"retention_class"`
// When the event expires under its retention class and is deleted. Null for
// `monetary_or_compliance` (payment and dispute) events.
ExpiresAt time.Time `json:"expires_at"`
// `true` when an event with this `event_id` and the same content was already
// stored; the values are those of the stored event and no rule ran again.
IdempotentReplay bool `json:"idempotent_replay"`
// Rules that matched the event.
RuleMatches []MonitoringEventIngestResultRuleMatches `json:"rule_matches"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventIngestResult: Outcome of ingesting one event. The same shape is returned for a new event and for an idempotent replay.
func (*MonitoringEventIngestResult) UnmarshalJSON ¶
func (r *MonitoringEventIngestResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventIngestResult leniently.
type MonitoringEventIngestResultRetentionClass ¶
type MonitoringEventIngestResultRetentionClass string
MonitoringEventIngestResultRetentionClass: Retention class, after any promotion by a matched rule.
MonitoringEventIngestResultRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventIngestResultRetentionClassLowValue MonitoringEventIngestResultRetentionClass = "low_value" MonitoringEventIngestResultRetentionClassStandard MonitoringEventIngestResultRetentionClass = "standard" MonitoringEventIngestResultRetentionClassRiskRelevant MonitoringEventIngestResultRetentionClass = "risk_relevant" MonitoringEventIngestResultRetentionClassMonetaryOrCompliance MonitoringEventIngestResultRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventIngestResultRetentionClass.
type MonitoringEventIngestResultRuleMatches ¶
type MonitoringEventIngestResultRuleMatches struct {
// UUID of the rule.
RuleID string `json:"rule_id"`
// Library key when the rule was installed from the rules library, otherwise
// null.
LibraryKey string `json:"library_key"`
// `TEST` rules record the match but apply no actions.
Mode MonitoringEventIngestResultRuleMatchesMode `json:"mode"`
// `true` when the match came from the asynchronous pass.
IsAsync bool `json:"is_async"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventIngestResultRuleMatches is a response object.
func (*MonitoringEventIngestResultRuleMatches) UnmarshalJSON ¶
func (r *MonitoringEventIngestResultRuleMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventIngestResultRuleMatches leniently.
type MonitoringEventIngestResultRuleMatchesMode ¶
type MonitoringEventIngestResultRuleMatchesMode string
MonitoringEventIngestResultRuleMatchesMode: `TEST` rules record the match but apply no actions.
MonitoringEventIngestResultRuleMatchesMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventIngestResultRuleMatchesModeActive MonitoringEventIngestResultRuleMatchesMode = "ACTIVE" MonitoringEventIngestResultRuleMatchesModeTest MonitoringEventIngestResultRuleMatchesMode = "TEST" )
Known values of MonitoringEventIngestResultRuleMatchesMode.
type MonitoringEventIngestResultStatus ¶
type MonitoringEventIngestResultStatus string
MonitoringEventIngestResultStatus: Status after the real-time rules ran. See `MonitoringEvent.status`.
MonitoringEventIngestResultStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventIngestResultStatusAccepted MonitoringEventIngestResultStatus = "ACCEPTED" MonitoringEventIngestResultStatusApproved MonitoringEventIngestResultStatus = "APPROVED" MonitoringEventIngestResultStatusInReview MonitoringEventIngestResultStatus = "IN_REVIEW" MonitoringEventIngestResultStatusDeclined MonitoringEventIngestResultStatus = "DECLINED" )
Known values of MonitoringEventIngestResultStatus.
type MonitoringEventRetentionClass ¶
type MonitoringEventRetentionClass string
MonitoringEventRetentionClass: Retention class. Payment and dispute events are `monetary_or_compliance`; security and responsible-gambling events are `risk_relevant`; `session.page_view`, `session.sdk_heartbeat`, `session.sdk_loaded`, `session.device_seen`, `session.bot_signal_observed`, `bonus.promotion_viewed` and `affiliate.referral_clicked` are `low_value`; everything else is `standard`. An event an active rule matched is promoted to `risk_relevant` (never demoted).
MonitoringEventRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventRetentionClassLowValue MonitoringEventRetentionClass = "low_value" MonitoringEventRetentionClassStandard MonitoringEventRetentionClass = "standard" MonitoringEventRetentionClassRiskRelevant MonitoringEventRetentionClass = "risk_relevant" MonitoringEventRetentionClassMonetaryOrCompliance MonitoringEventRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventRetentionClass.
type MonitoringEventRuleRun ¶
type MonitoringEventRuleRun struct {
// UUID of the transaction monitoring rule.
RuleUUID string `json:"rule_uuid"`
// Title of the rule.
RuleTitle string `json:"rule_title"`
// Library key when the rule was installed from the rules library, otherwise
// null.
LibraryKey string `json:"library_key"`
// Always `true`: only matching runs are recorded.
Matched bool `json:"matched"`
// Mode of the rule when it ran. A `TEST` run records evidence but applied no
// actions.
Mode MonitoringEventRuleRunMode `json:"mode"`
// `true` when the run came from the asynchronous correlation pass rather than
// the ingest request.
IsAsync bool `json:"is_async"`
// Severity of the rule. Null for `TEST` runs and for rules without a severity.
Severity MonitoringEventRuleRunSeverity `json:"severity"`
// How much this run changed the event's score (0 for `TEST` runs).
ScoreDelta int64 `json:"score_delta"`
// Short summary of the actions applied, for example `score +40;
// add_tag:VPN_LOGIN`. Null when nothing was applied.
ActionSummary string `json:"action_summary"`
// The conditions and aggregations that matched. Condition entries carry
// `field`, `operator`, `expected_value`, `current_value`, `matched`,
// `group_index`, `group_logic` and `field_source` (`server`, `sdk` or
// `customer`); aggregation entries carry `metric`, `field`, `operator`,
// `expected_value`, `computed_value`, `window`, `filters`, `matched` and
// `sample_references`.
MatchedPayload []map[string]any `json:"matched_payload"`
// When the rule run was recorded.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventRuleRun is a response object.
func (*MonitoringEventRuleRun) UnmarshalJSON ¶
func (r *MonitoringEventRuleRun) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventRuleRun leniently.
type MonitoringEventRuleRunMode ¶
type MonitoringEventRuleRunMode string
MonitoringEventRuleRunMode: Mode of the rule when it ran. A `TEST` run records evidence but applied no actions.
MonitoringEventRuleRunMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventRuleRunModeActive MonitoringEventRuleRunMode = "ACTIVE" MonitoringEventRuleRunModeTest MonitoringEventRuleRunMode = "TEST" )
Known values of MonitoringEventRuleRunMode.
type MonitoringEventRuleRunSeverity ¶
type MonitoringEventRuleRunSeverity string
MonitoringEventRuleRunSeverity: Severity of the rule. Null for `TEST` runs and for rules without a severity.
MonitoringEventRuleRunSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventRuleRunSeverityUnknown MonitoringEventRuleRunSeverity = "UNKNOWN" MonitoringEventRuleRunSeverityLow MonitoringEventRuleRunSeverity = "LOW" MonitoringEventRuleRunSeverityMedium MonitoringEventRuleRunSeverity = "MEDIUM" MonitoringEventRuleRunSeverityHigh MonitoringEventRuleRunSeverity = "HIGH" MonitoringEventRuleRunSeverityCritical MonitoringEventRuleRunSeverity = "CRITICAL" )
Known values of MonitoringEventRuleRunSeverity.
type MonitoringEventStatus ¶
type MonitoringEventStatus string
MonitoringEventStatus: `ACCEPTED`: stored, no matched rule changed its standing (the normal answer for most events, and always the answer in a sandbox application, where no rules run). `APPROVED`: a rule matched and the score stayed under your review threshold. `IN_REVIEW`: a rule pushed the score over the review threshold or set the status. `DECLINED`: a rule declined it or the score crossed your decline threshold.
MonitoringEventStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventStatusAccepted MonitoringEventStatus = "ACCEPTED" MonitoringEventStatusApproved MonitoringEventStatus = "APPROVED" MonitoringEventStatusInReview MonitoringEventStatus = "IN_REVIEW" MonitoringEventStatusDeclined MonitoringEventStatus = "DECLINED" )
Known values of MonitoringEventStatus.
type MonitoringEventsCreateBatchParams ¶
type MonitoringEventsCreateBatchParams struct {
// 1 to 500 events. Each item follows `MonitoringEventCreateRequest`, including
// the 7-day past and 5-minute future window on `occurred_at`. Required.
Events []MonitoringEventCreateRequest `json:"events"`
}
MonitoringEventsCreateBatchParams holds the parameters of Client.MonitoringEvents.CreateBatch.
func (MonitoringEventsCreateBatchParams) MarshalJSON ¶
func (r MonitoringEventsCreateBatchParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventsCreateBatchResponse ¶
type MonitoringEventsCreateBatchResponse struct {
// Items stored and evaluated.
AcceptedCount int64 `json:"accepted_count"`
// Items already stored with the same content.
ReplayedCount int64 `json:"replayed_count"`
// Items not stored.
RejectedCount int64 `json:"rejected_count"`
// One entry per item, in request order.
Results []MonitoringEventsCreateBatchResponseResults `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventsCreateBatchResponse is a response object.
func (*MonitoringEventsCreateBatchResponse) UnmarshalJSON ¶
func (r *MonitoringEventsCreateBatchResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventsCreateBatchResponse leniently.
type MonitoringEventsCreateBatchResponseResults ¶
type MonitoringEventsCreateBatchResponseResults struct {
// Position of the item in your `events` array.
Index int64 `json:"index"`
// `accepted`: stored and evaluated. `replayed`: already stored with the same
// content. `rejected`: not stored; see `errors`.
Outcome MonitoringEventsCreateBatchResponseResultsOutcome `json:"outcome"`
// Your `event_id`. On items rejected by validation it is read from the item's
// snake_case `event_id` key, so it is null when the item omitted it or sent the
// `eventId` alias.
EventID string `json:"event_id"`
// Rejected items only. Validation errors keyed by field, in the same shape as
// the `400` of `POST /v3/events/`; a reused `event_id` with different content
// is reported as a string under `errors.event_id`.
Errors map[string]any `json:"errors"`
// Accepted and replayed items only.
EventUUID string `json:"event_uuid"`
// Accepted and replayed items only.
Status MonitoringEventsCreateBatchResponseResultsStatus `json:"status"`
// Accepted and replayed items only.
Score int64 `json:"score"`
// Accepted and replayed items only.
RulesEvaluatedCount int64 `json:"rules_evaluated_count"`
// Accepted and replayed items only.
RulesMatchedCount int64 `json:"rules_matched_count"`
// Accepted and replayed items only.
CorrelationPending bool `json:"correlation_pending"`
// Accepted and replayed items only.
RetentionClass MonitoringEventsCreateBatchResponseResultsRetentionClass `json:"retention_class"`
// Accepted and replayed items only.
ExpiresAt time.Time `json:"expires_at"`
// Accepted and replayed items only.
IdempotentReplay bool `json:"idempotent_replay"`
// Accepted and replayed items only.
RuleMatches []MonitoringEventsCreateBatchResponseResultsRuleMatches `json:"rule_matches"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventsCreateBatchResponseResults: Outcome of one item. Accepted and replayed items also carry every field of `MonitoringEventIngestResult`; rejected items carry `event_id` and `errors` instead.
func (*MonitoringEventsCreateBatchResponseResults) UnmarshalJSON ¶
func (r *MonitoringEventsCreateBatchResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventsCreateBatchResponseResults leniently.
type MonitoringEventsCreateBatchResponseResultsOutcome ¶
type MonitoringEventsCreateBatchResponseResultsOutcome string
MonitoringEventsCreateBatchResponseResultsOutcome: `accepted`: stored and evaluated. `replayed`: already stored with the same content. `rejected`: not stored; see `errors`.
MonitoringEventsCreateBatchResponseResultsOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateBatchResponseResultsOutcomeAccepted MonitoringEventsCreateBatchResponseResultsOutcome = "accepted" MonitoringEventsCreateBatchResponseResultsOutcomeReplayed MonitoringEventsCreateBatchResponseResultsOutcome = "replayed" MonitoringEventsCreateBatchResponseResultsOutcomeRejected MonitoringEventsCreateBatchResponseResultsOutcome = "rejected" )
Known values of MonitoringEventsCreateBatchResponseResultsOutcome.
type MonitoringEventsCreateBatchResponseResultsRetentionClass ¶
type MonitoringEventsCreateBatchResponseResultsRetentionClass string
MonitoringEventsCreateBatchResponseResultsRetentionClass: Accepted and replayed items only.
MonitoringEventsCreateBatchResponseResultsRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateBatchResponseResultsRetentionClassLowValue MonitoringEventsCreateBatchResponseResultsRetentionClass = "low_value" MonitoringEventsCreateBatchResponseResultsRetentionClassStandard MonitoringEventsCreateBatchResponseResultsRetentionClass = "standard" MonitoringEventsCreateBatchResponseResultsRetentionClassRiskRelevant MonitoringEventsCreateBatchResponseResultsRetentionClass = "risk_relevant" MonitoringEventsCreateBatchResponseResultsRetentionClassMonetaryOrCompliance MonitoringEventsCreateBatchResponseResultsRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventsCreateBatchResponseResultsRetentionClass.
type MonitoringEventsCreateBatchResponseResultsRuleMatches ¶
type MonitoringEventsCreateBatchResponseResultsRuleMatches struct {
// UUID of the rule.
RuleID string `json:"rule_id"`
// Library key when the rule was installed from the rules library, otherwise
// null.
LibraryKey string `json:"library_key"`
// `TEST` rules record the match but apply no actions.
Mode MonitoringEventsCreateBatchResponseResultsRuleMatchesMode `json:"mode"`
// `true` when the match came from the asynchronous pass.
IsAsync bool `json:"is_async"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventsCreateBatchResponseResultsRuleMatches is a response object.
func (*MonitoringEventsCreateBatchResponseResultsRuleMatches) UnmarshalJSON ¶
func (r *MonitoringEventsCreateBatchResponseResultsRuleMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventsCreateBatchResponseResultsRuleMatches leniently.
type MonitoringEventsCreateBatchResponseResultsRuleMatchesMode ¶
type MonitoringEventsCreateBatchResponseResultsRuleMatchesMode string
MonitoringEventsCreateBatchResponseResultsRuleMatchesMode: `TEST` rules record the match but apply no actions.
MonitoringEventsCreateBatchResponseResultsRuleMatchesMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateBatchResponseResultsRuleMatchesModeActive MonitoringEventsCreateBatchResponseResultsRuleMatchesMode = "ACTIVE" MonitoringEventsCreateBatchResponseResultsRuleMatchesModeTest MonitoringEventsCreateBatchResponseResultsRuleMatchesMode = "TEST" )
Known values of MonitoringEventsCreateBatchResponseResultsRuleMatchesMode.
type MonitoringEventsCreateBatchResponseResultsStatus ¶
type MonitoringEventsCreateBatchResponseResultsStatus string
MonitoringEventsCreateBatchResponseResultsStatus: Accepted and replayed items only.
MonitoringEventsCreateBatchResponseResultsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateBatchResponseResultsStatusAccepted MonitoringEventsCreateBatchResponseResultsStatus = "ACCEPTED" MonitoringEventsCreateBatchResponseResultsStatusApproved MonitoringEventsCreateBatchResponseResultsStatus = "APPROVED" MonitoringEventsCreateBatchResponseResultsStatusInReview MonitoringEventsCreateBatchResponseResultsStatus = "IN_REVIEW" MonitoringEventsCreateBatchResponseResultsStatusDeclined MonitoringEventsCreateBatchResponseResultsStatus = "DECLINED" )
Known values of MonitoringEventsCreateBatchResponseResultsStatus.
type MonitoringEventsCreateSDKTokenParams ¶
type MonitoringEventsCreateSDKTokenParams struct {
// Your id for the subject every event submitted with this credential belongs
// to. Required.
VendorData string `json:"vendor_data"`
// `company` binds a company subject; any other value (default `individual`)
// binds an individual.
EntityType Opt[string] `json:"entity_type"`
// Categories the credential may submit. Omit it or send `[]` to allow every
// category.
AllowedEventCategories Opt[[]MonitoringEventsCreateSDKTokenParamsAllowedEventCategories] `json:"allowed_event_categories"`
// Lifetime of the credential in seconds.
TTLSeconds Opt[int64] `json:"ttl_seconds"`
// Number of events the credential may submit (a batch spends one use per
// event). Send `null` for no cap within the lifetime.
MaxUses Opt[int64] `json:"max_uses"`
// When set, the browser `Origin` header of every device request must equal this
// value exactly; a request without `Origin` is refused.
BindToOrigin Opt[string] `json:"bind_to_origin"`
}
MonitoringEventsCreateSDKTokenParams holds the parameters of Client.MonitoringEvents.CreateSDKToken.
func (MonitoringEventsCreateSDKTokenParams) MarshalJSON ¶
func (r MonitoringEventsCreateSDKTokenParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventsCreateSDKTokenParamsAllowedEventCategories ¶
type MonitoringEventsCreateSDKTokenParamsAllowedEventCategories string
MonitoringEventsCreateSDKTokenParamsAllowedEventCategories is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesAuth MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "auth" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesSession MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "session" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesGameplay MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "gameplay" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesBonus MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "bonus" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesAffiliate MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "affiliate" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesPayment MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "payment" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesDispute MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "dispute" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesSecurity MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "security" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesResponsibleGambling MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "responsible_gambling" MonitoringEventsCreateSDKTokenParamsAllowedEventCategoriesCustom MonitoringEventsCreateSDKTokenParamsAllowedEventCategories = "custom" )
Known values of MonitoringEventsCreateSDKTokenParamsAllowedEventCategories.
type MonitoringEventsCreateSDKTokenResponse ¶
type MonitoringEventsCreateSDKTokenResponse struct {
// The device credential (a 43-character URL-safe token). Send it in the
// `X-Monitoring-Token` header.
MonitoringToken string `json:"monitoring_token"`
// When the credential stops being accepted.
ExpiresAt time.Time `json:"expires_at"`
// Categories the credential may submit; `[]` means every category.
AllowedEventCategories []MonitoringEventsCreateSDKTokenResponseAllowedEventCategories `json:"allowed_event_categories"`
// Event budget of the credential; null means no cap.
MaxUses int64 `json:"max_uses"`
// Origin the credential is bound to, or null.
BindToOrigin string `json:"bind_to_origin"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventsCreateSDKTokenResponse is a response object.
func (*MonitoringEventsCreateSDKTokenResponse) UnmarshalJSON ¶
func (r *MonitoringEventsCreateSDKTokenResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventsCreateSDKTokenResponse leniently.
type MonitoringEventsCreateSDKTokenResponseAllowedEventCategories ¶
type MonitoringEventsCreateSDKTokenResponseAllowedEventCategories string
MonitoringEventsCreateSDKTokenResponseAllowedEventCategories is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesAuth MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "auth" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesSession MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "session" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesGameplay MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "gameplay" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesBonus MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "bonus" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesAffiliate MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "affiliate" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesPayment MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "payment" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesDispute MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "dispute" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesSecurity MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "security" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesResponsibleGambling MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "responsible_gambling" MonitoringEventsCreateSDKTokenResponseAllowedEventCategoriesCustom MonitoringEventsCreateSDKTokenResponseAllowedEventCategories = "custom" )
Known values of MonitoringEventsCreateSDKTokenResponseAllowedEventCategories.
type MonitoringEventsListParams ¶
type MonitoringEventsListParams struct {
// Maximum number of events per page. Defaults to 50. Values above 1000000
// return `400`; a non-numeric, zero or negative value falls back to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of events to skip. Defaults to 0. Prefer following the `next` URL from
// the response.
Offset Opt[int64] `json:"-" query:"offset"`
// Only events in these categories. Repeat the parameter for several values
// (`?event_category=payment&event_category=dispute`); an event matching any of
// them is returned.
EventCategory Opt[[]MonitoringEventsListParamsEventCategory] `json:"-" query:"event_category"`
// Only events with these action types (exact, case-sensitive). Repeat for
// several values.
ActionType Opt[[]string] `json:"-" query:"action_type"`
// Only events with these statuses. Repeat for several values.
Status Opt[[]MonitoringEventsListParamsStatus] `json:"-" query:"status"`
// Only events in these retention classes. Repeat for several values.
RetentionClass Opt[[]MonitoringEventsListParamsRetentionClass] `json:"-" query:"retention_class"`
// Exact match on the subject's `vendor_data`. The same id can name an
// individual and a company; add `subject_entity_type` to pick one, or use `GET
// /v3/events/subjects/{vendor_data}/`.
SubjectVendorData Opt[string] `json:"-" query:"subject_vendor_data"`
// `company` returns only events of company subjects; any other non-empty value
// (for example `individual`) returns only events of individuals. Omit it to
// return both.
SubjectEntityType Opt[MonitoringEventsListParamsSubjectEntityType] `json:"-" query:"subject_entity_type"`
// Exact match on the `business.vendor_data` sent with the event.
BusinessVendorData Opt[string] `json:"-" query:"business_vendor_data"`
// Exact match on `session.session_id`.
SessionID Opt[string] `json:"-" query:"session_id"`
// Exact match on `device_context.fingerprint`.
DeviceFingerprint Opt[string] `json:"-" query:"device_fingerprint"`
// Exact match on the event's IP address.
IPAddress Opt[string] `json:"-" query:"ip_address"`
// Exact match on the promoted `game_id`.
GameID Opt[string] `json:"-" query:"game_id"`
// Exact match on the promoted `round_id`.
RoundID Opt[string] `json:"-" query:"round_id"`
// Exact match on the promoted `affiliate_code`.
AffiliateCode Opt[string] `json:"-" query:"affiliate_code"`
// Exact match on the payment reference (from
// `transaction_context.payment_reference_id` or
// `payload.payment_reference_id`).
PaymentReferenceID Opt[string] `json:"-" query:"payment_reference_id"`
// Exact match on the promoted `counterparty_vendor_data`.
CounterpartyVendorData Opt[string] `json:"-" query:"counterparty_vendor_data"`
// `true` (also `1` or `yes`, case-insensitive) returns only events at least one
// rule matched (`rules_matched_count` above 0). Any other value is ignored.
MatchedOnly Opt[bool] `json:"-" query:"matched_only"`
// Only events with `occurred_at` at or after this instant (inclusive). Send an
// ISO 8601 value: `2026-10-01T00:00:00Z`, an explicit offset with the `+`
// percent-encoded (`2026-10-01T02:00:00%2B02:00`; an unencoded `+` is decoded
// as a space and the value no longer parses), or a date alone (`2026-10-01`),
// which means 00:00:00 UTC of that day. A value without an offset is read as
// UTC. Values in any other format are not accepted.
OccurredFrom Opt[time.Time] `json:"-" query:"occurred_from"`
// Only events with `occurred_at` at or before this instant (inclusive). A date
// alone means the start of that day, so `occurred_to=2026-10-15` excludes the
// rest of 15 October; send `2026-10-15T23:59:59Z` to include it. Send an ISO
// 8601 value: `2026-10-01T00:00:00Z`, an explicit offset with the `+`
// percent-encoded (`2026-10-01T02:00:00%2B02:00`; an unencoded `+` is decoded
// as a space and the value no longer parses), or a date alone (`2026-10-01`),
// which means 00:00:00 UTC of that day. A value without an offset is read as
// UTC. Values in any other format are not accepted.
OccurredTo Opt[time.Time] `json:"-" query:"occurred_to"`
// Case-insensitive substring match on `event_id`, `action_type`,
// `subject_vendor_data` or `counterparty_vendor_data`.
Search Opt[string] `json:"-" query:"search"`
}
MonitoringEventsListParams holds the parameters of Client.MonitoringEvents.List.
func (MonitoringEventsListParams) MarshalJSON ¶
func (r MonitoringEventsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventsListParamsEventCategory ¶
type MonitoringEventsListParamsEventCategory string
MonitoringEventsListParamsEventCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsListParamsEventCategoryAuth MonitoringEventsListParamsEventCategory = "auth" MonitoringEventsListParamsEventCategorySession MonitoringEventsListParamsEventCategory = "session" MonitoringEventsListParamsEventCategoryGameplay MonitoringEventsListParamsEventCategory = "gameplay" MonitoringEventsListParamsEventCategoryBonus MonitoringEventsListParamsEventCategory = "bonus" MonitoringEventsListParamsEventCategoryAffiliate MonitoringEventsListParamsEventCategory = "affiliate" MonitoringEventsListParamsEventCategoryPayment MonitoringEventsListParamsEventCategory = "payment" MonitoringEventsListParamsEventCategoryDispute MonitoringEventsListParamsEventCategory = "dispute" MonitoringEventsListParamsEventCategorySecurity MonitoringEventsListParamsEventCategory = "security" MonitoringEventsListParamsEventCategoryResponsibleGambling MonitoringEventsListParamsEventCategory = "responsible_gambling" MonitoringEventsListParamsEventCategoryCustom MonitoringEventsListParamsEventCategory = "custom" )
Known values of MonitoringEventsListParamsEventCategory.
type MonitoringEventsListParamsRetentionClass ¶
type MonitoringEventsListParamsRetentionClass string
MonitoringEventsListParamsRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsListParamsRetentionClassLowValue MonitoringEventsListParamsRetentionClass = "low_value" MonitoringEventsListParamsRetentionClassStandard MonitoringEventsListParamsRetentionClass = "standard" MonitoringEventsListParamsRetentionClassRiskRelevant MonitoringEventsListParamsRetentionClass = "risk_relevant" MonitoringEventsListParamsRetentionClassMonetaryOrCompliance MonitoringEventsListParamsRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventsListParamsRetentionClass.
type MonitoringEventsListParamsStatus ¶
type MonitoringEventsListParamsStatus string
MonitoringEventsListParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsListParamsStatusAccepted MonitoringEventsListParamsStatus = "ACCEPTED" MonitoringEventsListParamsStatusApproved MonitoringEventsListParamsStatus = "APPROVED" MonitoringEventsListParamsStatusInReview MonitoringEventsListParamsStatus = "IN_REVIEW" MonitoringEventsListParamsStatusDeclined MonitoringEventsListParamsStatus = "DECLINED" )
Known values of MonitoringEventsListParamsStatus.
type MonitoringEventsListParamsSubjectEntityType ¶
type MonitoringEventsListParamsSubjectEntityType string
MonitoringEventsListParamsSubjectEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsListParamsSubjectEntityTypeIndividual MonitoringEventsListParamsSubjectEntityType = "individual" MonitoringEventsListParamsSubjectEntityTypeCompany MonitoringEventsListParamsSubjectEntityType = "company" )
Known values of MonitoringEventsListParamsSubjectEntityType.
type MonitoringEventsRetrieveEnrichmentMetricsParams ¶
type MonitoringEventsRetrieveEnrichmentMetricsParams struct {
// Length of the period in days. Defaults to 30; values are clamped to 1 to 365,
// and a non-integer value falls back to 30. The value applied is returned as
// `period_days`.
Days Opt[int64] `json:"-" query:"days"`
}
MonitoringEventsRetrieveEnrichmentMetricsParams holds the parameters of Client.MonitoringEvents.RetrieveEnrichmentMetrics.
func (MonitoringEventsRetrieveEnrichmentMetricsParams) MarshalJSON ¶
func (r MonitoringEventsRetrieveEnrichmentMetricsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventsRetrieveEnrichmentMetricsResponse ¶
type MonitoringEventsRetrieveEnrichmentMetricsResponse struct {
// New events stored. Idempotent replays are not counted.
EventsIngested int64 `json:"events_ingested"`
// Items rejected inside batch requests (server and device lanes). A rejected
// single-event request is not counted.
EventsRejected int64 `json:"events_rejected"`
// Events whose public IP address was resolved, from the cache or freshly.
EnrichmentLookups int64 `json:"enrichment_lookups"`
// Lookups answered from the cache.
EnrichmentCacheHits int64 `json:"enrichment_cache_hits"`
// Lookups that needed a fresh resolution of the address.
EnrichmentProviderCalls int64 `json:"enrichment_provider_calls"`
// Low-value telemetry events whose address was not already known. They never
// trigger a fresh resolution of their own.
EnrichmentSkippedLowValue int64 `json:"enrichment_skipped_low_value"`
// Addresses that needed a fresh resolution.
UniqueIPsSeen int64 `json:"unique_ips_seen"`
// The `days` value applied after clamping.
PeriodDays int64 `json:"period_days"`
// `enrichment_cache_hits / enrichment_lookups`, rounded to 4 decimals. Null
// when there were no lookups.
CacheHitRate float64 `json:"cache_hit_rate"`
// `unique_ips_seen / events_ingested`, rounded to 4 decimals. Null when no
// events were ingested.
UniqueIPRatio float64 `json:"unique_ip_ratio"`
// Fresh resolutions per 1000 ingested events, rounded to 2 decimals. Null when
// no events were ingested.
ProviderCallsPer1kEvents float64 `json:"provider_calls_per_1k_events"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
MonitoringEventsRetrieveEnrichmentMetricsResponse is a response object.
func (*MonitoringEventsRetrieveEnrichmentMetricsResponse) UnmarshalJSON ¶
func (r *MonitoringEventsRetrieveEnrichmentMetricsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes MonitoringEventsRetrieveEnrichmentMetricsResponse leniently.
type MonitoringEventsRetrieveSubjectTimelineParams ¶
type MonitoringEventsRetrieveSubjectTimelineParams struct {
// `company` returns the company with this `vendor_data`; any other value, or
// none, returns the individual. `subject_entity_type` is accepted as an alias
// when `entity_type` is absent.
EntityType Opt[MonitoringEventsRetrieveSubjectTimelineParamsEntityType] `json:"-" query:"entity_type"`
// Maximum number of events per page. Defaults to 50. Values above 1000000
// return `400`; a non-numeric, zero or negative value falls back to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of events to skip. Defaults to 0. Prefer following the `next` URL from
// the response.
Offset Opt[int64] `json:"-" query:"offset"`
// Only events in these categories. Repeat the parameter for several values
// (`?event_category=payment&event_category=dispute`); an event matching any of
// them is returned.
EventCategory Opt[[]MonitoringEventsRetrieveSubjectTimelineParamsEventCategory] `json:"-" query:"event_category"`
// Only events with these action types (exact, case-sensitive). Repeat for
// several values.
ActionType Opt[[]string] `json:"-" query:"action_type"`
// Only events with these statuses. Repeat for several values.
Status Opt[[]MonitoringEventsRetrieveSubjectTimelineParamsStatus] `json:"-" query:"status"`
// Only events in these retention classes. Repeat for several values.
RetentionClass Opt[[]MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass] `json:"-" query:"retention_class"`
// Exact match on the `business.vendor_data` sent with the event.
BusinessVendorData Opt[string] `json:"-" query:"business_vendor_data"`
// Exact match on `session.session_id`.
SessionID Opt[string] `json:"-" query:"session_id"`
// Exact match on `device_context.fingerprint`.
DeviceFingerprint Opt[string] `json:"-" query:"device_fingerprint"`
// Exact match on the event's IP address.
IPAddress Opt[string] `json:"-" query:"ip_address"`
// Exact match on the promoted `game_id`.
GameID Opt[string] `json:"-" query:"game_id"`
// Exact match on the promoted `round_id`.
RoundID Opt[string] `json:"-" query:"round_id"`
// Exact match on the promoted `affiliate_code`.
AffiliateCode Opt[string] `json:"-" query:"affiliate_code"`
// Exact match on the payment reference (from
// `transaction_context.payment_reference_id` or
// `payload.payment_reference_id`).
PaymentReferenceID Opt[string] `json:"-" query:"payment_reference_id"`
// Exact match on the promoted `counterparty_vendor_data`.
CounterpartyVendorData Opt[string] `json:"-" query:"counterparty_vendor_data"`
// `true` (also `1` or `yes`, case-insensitive) returns only events at least one
// rule matched (`rules_matched_count` above 0). Any other value is ignored.
MatchedOnly Opt[bool] `json:"-" query:"matched_only"`
// Only events with `occurred_at` at or after this instant (inclusive). Send an
// ISO 8601 value: `2026-10-01T00:00:00Z`, an explicit offset with the `+`
// percent-encoded (`2026-10-01T02:00:00%2B02:00`; an unencoded `+` is decoded
// as a space and the value no longer parses), or a date alone (`2026-10-01`),
// which means 00:00:00 UTC of that day. A value without an offset is read as
// UTC. Values in any other format are not accepted.
OccurredFrom Opt[time.Time] `json:"-" query:"occurred_from"`
// Only events with `occurred_at` at or before this instant (inclusive). A date
// alone means the start of that day, so `occurred_to=2026-10-15` excludes the
// rest of 15 October; send `2026-10-15T23:59:59Z` to include it. Send an ISO
// 8601 value: `2026-10-01T00:00:00Z`, an explicit offset with the `+`
// percent-encoded (`2026-10-01T02:00:00%2B02:00`; an unencoded `+` is decoded
// as a space and the value no longer parses), or a date alone (`2026-10-01`),
// which means 00:00:00 UTC of that day. A value without an offset is read as
// UTC. Values in any other format are not accepted.
OccurredTo Opt[time.Time] `json:"-" query:"occurred_to"`
// Case-insensitive substring match on `event_id`, `action_type`,
// `subject_vendor_data` or `counterparty_vendor_data`.
Search Opt[string] `json:"-" query:"search"`
}
MonitoringEventsRetrieveSubjectTimelineParams holds the parameters of Client.MonitoringEvents.RetrieveSubjectTimeline.
func (MonitoringEventsRetrieveSubjectTimelineParams) MarshalJSON ¶
func (r MonitoringEventsRetrieveSubjectTimelineParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type MonitoringEventsRetrieveSubjectTimelineParamsEntityType ¶
type MonitoringEventsRetrieveSubjectTimelineParamsEntityType string
MonitoringEventsRetrieveSubjectTimelineParamsEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsRetrieveSubjectTimelineParamsEntityTypeIndividual MonitoringEventsRetrieveSubjectTimelineParamsEntityType = "individual" MonitoringEventsRetrieveSubjectTimelineParamsEntityTypeCompany MonitoringEventsRetrieveSubjectTimelineParamsEntityType = "company" )
Known values of MonitoringEventsRetrieveSubjectTimelineParamsEntityType.
type MonitoringEventsRetrieveSubjectTimelineParamsEventCategory ¶
type MonitoringEventsRetrieveSubjectTimelineParamsEventCategory string
MonitoringEventsRetrieveSubjectTimelineParamsEventCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryAuth MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "auth" MonitoringEventsRetrieveSubjectTimelineParamsEventCategorySession MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "session" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryGameplay MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "gameplay" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryBonus MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "bonus" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryAffiliate MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "affiliate" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryPayment MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "payment" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryDispute MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "dispute" MonitoringEventsRetrieveSubjectTimelineParamsEventCategorySecurity MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "security" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryResponsibleGambling MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "responsible_gambling" MonitoringEventsRetrieveSubjectTimelineParamsEventCategoryCustom MonitoringEventsRetrieveSubjectTimelineParamsEventCategory = "custom" )
Known values of MonitoringEventsRetrieveSubjectTimelineParamsEventCategory.
type MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass ¶
type MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass string
MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsRetrieveSubjectTimelineParamsRetentionClassLowValue MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass = "low_value" MonitoringEventsRetrieveSubjectTimelineParamsRetentionClassStandard MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass = "standard" MonitoringEventsRetrieveSubjectTimelineParamsRetentionClassRiskRelevant MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass = "risk_relevant" MonitoringEventsRetrieveSubjectTimelineParamsRetentionClassMonetaryOrCompliance MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass = "monetary_or_compliance" )
Known values of MonitoringEventsRetrieveSubjectTimelineParamsRetentionClass.
type MonitoringEventsRetrieveSubjectTimelineParamsStatus ¶
type MonitoringEventsRetrieveSubjectTimelineParamsStatus string
MonitoringEventsRetrieveSubjectTimelineParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( MonitoringEventsRetrieveSubjectTimelineParamsStatusAccepted MonitoringEventsRetrieveSubjectTimelineParamsStatus = "ACCEPTED" MonitoringEventsRetrieveSubjectTimelineParamsStatusApproved MonitoringEventsRetrieveSubjectTimelineParamsStatus = "APPROVED" MonitoringEventsRetrieveSubjectTimelineParamsStatusInReview MonitoringEventsRetrieveSubjectTimelineParamsStatus = "IN_REVIEW" MonitoringEventsRetrieveSubjectTimelineParamsStatusDeclined MonitoringEventsRetrieveSubjectTimelineParamsStatus = "DECLINED" )
Known values of MonitoringEventsRetrieveSubjectTimelineParamsStatus.
type MonitoringEventsService ¶
type MonitoringEventsService struct {
// contains filtered or unexported fields
}
MonitoringEventsService holds the monitoring_events operations. Use it through Client.MonitoringEvents.
func (*MonitoringEventsService) Create ¶
func (r *MonitoringEventsService) Create(ctx context.Context, params MonitoringEventCreateRequest, opts ...option.RequestOption) (*MonitoringEventIngestResult, error)
Create: Create monitoring event.
Send one non-monetary event (login, session, gameplay, bonus, affiliate, payment, dispute, security, responsible gambling or custom) from your backend. The event is validated against its category contract, stored, IP-enriched once per unique public address, and evaluated by your real-time event rules before the response returns; cross-subject and long-window rules run asynchronously (`correlation_pending: true`), and in a sandbox application no rules run. `event_id` is the idempotency key: the same `event_id` with the same `event_category`, `action_type`, `occurred_at`, `subject.vendor_data` and `payload` returns `200` with `idempotent_replay: true` and the stored outcome (other envelope fields are not compared), while different values return `409`. Event ingestion is opt-in per application: until it is switched on this endpoint returns `403` with `code: event_monitoring_disabled` and stores nothing. A scoped API key needs `transactions: write`. See [Event ingestion](https://docs.didit.me/transaction-monitoring/events) and [Rules on events](https://docs.didit.me/transaction-monitoring/event-rules); to send events from a browser or app, use [SDK event submission](https://docs.didit.me/transaction-monitoring/sdk-event-submission).
POST /v3/events/
func (*MonitoringEventsService) CreateBatch ¶
func (r *MonitoringEventsService) CreateBatch(ctx context.Context, params MonitoringEventsCreateBatchParams, opts ...option.RequestOption) (*MonitoringEventsCreateBatchResponse, error)
CreateBatch: Create monitoring events in batch.
Submit 1 to 500 events in one request, each in the same envelope as `POST /v3/events/`. Every item is validated, stored and evaluated on its own and gets its own outcome (`accepted`, `replayed` or `rejected`), so one malformed event never rolls back the others: the response is `201` when no item was rejected and `207` when at least one was, and both mean the request was processed. Send `{"events": [...]}`; a bare JSON array of events is also accepted. Event ingestion must be switched on for the application, otherwise the whole request returns `403` with `code: event_monitoring_disabled` and nothing is stored. A scoped API key needs `transactions: write`. See [Batches](https://docs.didit.me/transaction-monitoring/events#batches).
POST /v3/events/batch/
func (*MonitoringEventsService) CreateSDKToken ¶
func (r *MonitoringEventsService) CreateSDKToken(ctx context.Context, params MonitoringEventsCreateSDKTokenParams, opts ...option.RequestOption) (*MonitoringEventsCreateSDKTokenResponse, error)
CreateSDKToken: Mint monitoring SDK token.
Mint a short-lived device credential bound to one subject, so your web or mobile app can send that user's events straight to Didit without an API key. The app sends the returned `monitoring_token` in the `X-Monitoring-Token` header to the device lane (`POST /v1/events/` and `POST /v1/events/batch/`), where the subject is always overwritten with this `vendor_data`, events outside `allowed_event_categories` are rejected, each submitted event spends one use, and a request whose `Origin` does not equal `bind_to_origin` is refused. Call it from your backend only; minting creates the credential and nothing else (no user is created). Event ingestion must be switched on for the application, otherwise this endpoint returns `403` with `code: event_monitoring_disabled` instead of minting a credential that could never write. A scoped API key needs `transactions: write`. See [SDK event submission](https://docs.didit.me/transaction-monitoring/sdk-event-submission).
POST /v3/events/sdk-token/
func (*MonitoringEventsService) Delete ¶
func (r *MonitoringEventsService) Delete(ctx context.Context, eventUUID string, opts ...option.RequestOption) error
Delete: Delete monitoring event.
Permanently delete one monitoring event together with its rule runs, notes and tag links, for example an event sent by mistake. After the `204` the event is gone from every read (retrieve returns `404`, and it no longer appears in the list or the subject timeline), the deletion is irreversible, and its `event_id` is free to be used for a new event. Not affected: the user or company the event resolved to, cases a rule opened, list entries a rule added, and the scores and statuses already applied to other events. To erase everything about a person or a company, delete the user or the company instead, which also deletes their events. A scoped API key needs `transactions: write`.
DELETE /v3/events/{event_uuid}/delete/
func (*MonitoringEventsService) List ¶
func (r *MonitoringEventsService) List(ctx context.Context, params MonitoringEventsListParams, opts ...option.RequestOption) (*Page[MonitoringEvent], error)
List: List monitoring events.
List the monitoring events stored for your application, newest `occurred_at` first, with optional filters that combine with AND. Multi-value filters (`event_category`, `action_type`, `status`, `retention_class`) repeat the parameter and match any of the values; the other filters are exact matches, and unknown values simply return no events. Each result is a summary: call `GET /v3/events/{event_uuid}/` for the payload, device context, IP enrichment and rule evidence, and prefer `GET /v3/events/subjects/{vendor_data}/` for one subject's history. Reads work whether or not event ingestion is switched on. A scoped API key needs `transactions: read`. See [Event ingestion](https://docs.didit.me/transaction-monitoring/events).
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/events/
func (*MonitoringEventsService) ListAutoPaging ¶
func (r *MonitoringEventsService) ListAutoPaging(ctx context.Context, params MonitoringEventsListParams, opts ...option.RequestOption) *PageIterator[MonitoringEvent]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*MonitoringEventsService) Retrieve ¶
func (r *MonitoringEventsService) Retrieve(ctx context.Context, eventUUID string, opts ...option.RequestOption) (*MonitoringEventDetail, error)
Retrieve: Get monitoring event.
Retrieve one monitoring event with everything the list returns plus the payload, custom values, device context, field provenance (`field_sources`), the promoted domain fields, `expires_at`, every matching rule run with its evidence, the IP enrichment and the tags rules attached. While `correlation_pending` is `true` an asynchronous rule still has to run; read the event again a few minutes later for the final `status`, `score` and `rule_runs`. Reads work whether or not event ingestion is switched on. A scoped API key needs `transactions: read`. See [Evidence](https://docs.didit.me/transaction-monitoring/event-rules#evidence) and [IP enrichment](https://docs.didit.me/transaction-monitoring/ip-enrichment).
GET /v3/events/{event_uuid}/
func (*MonitoringEventsService) RetrieveEnrichmentMetrics ¶
func (r *MonitoringEventsService) RetrieveEnrichmentMetrics(ctx context.Context, params MonitoringEventsRetrieveEnrichmentMetricsParams, opts ...option.RequestOption) (*MonitoringEventsRetrieveEnrichmentMetricsResponse, error)
RetrieveEnrichmentMetrics: Get event enrichment metrics.
Return the event ingestion and IP-enrichment counters of your application for a period, summed over every lane (server, batch and device), so you can watch event volume and confirm that enrichment is resolved once per unique address rather than once per event. The period covers today plus the previous `days` days, counted by UTC calendar date. The three ratios are null when their denominator is zero. A scoped API key needs `transactions: read`. See [IP enrichment](https://docs.didit.me/transaction-monitoring/events#ip-enrichment).
GET /v3/events/enrichment-metrics/
func (*MonitoringEventsService) RetrieveSubjectTimeline ¶
func (r *MonitoringEventsService) RetrieveSubjectTimeline(ctx context.Context, vendorData string, params MonitoringEventsRetrieveSubjectTimelineParams, opts ...option.RequestOption) (*Page[MonitoringEvent], error)
RetrieveSubjectTimeline: Get subject event timeline.
List every monitoring event of one subject, newest `occurred_at` first. A `vendor_data` is unique only within an entity type, so the same id can name an individual and a company: `entity_type` picks which timeline you get, and it defaults to `individual`, so a company's events need `entity_type=company`. The filters of `GET /v3/events/` apply on top, and a `vendor_data` with no events returns an empty page rather than `404`. A scoped API key needs `transactions: read`. See [Reading events back](https://docs.didit.me/transaction-monitoring/events#reading-events-back).
It returns one page; RetrieveSubjectTimelineAutoPaging iterates over every item of every page.
GET /v3/events/subjects/{vendor_data}/
func (*MonitoringEventsService) RetrieveSubjectTimelineAutoPaging ¶
func (r *MonitoringEventsService) RetrieveSubjectTimelineAutoPaging(ctx context.Context, vendorData string, params MonitoringEventsRetrieveSubjectTimelineParams, opts ...option.RequestOption) *PageIterator[MonitoringEvent]
RetrieveSubjectTimelineAutoPaging iterates over every item of every page of RetrieveSubjectTimeline, fetching pages as needed.
type NetworkDetail ¶
type NetworkDetail struct {
UUID string `json:"uuid"`
// Human-readable per-organization sequential id, e.g. N-0001.
NetworkID string `json:"network_id"`
Name string `json:"name"`
// Network lifecycle status. Distinct from the per-applicant outcome_status
// inside a network (approved/in_review/declined/not_completed).
Status NetworkDetailStatus `json:"status"`
Risk NetworkRiskDisplay `json:"risk"`
// The clustering patterns detected in this network.
PatternTypes []NetworkDetailPatternTypes `json:"pattern_types"`
// The distinct signal types present in this network.
SignalTypes []NetworkDetailSignalTypes `json:"signal_types"`
// Counts of members by category (e.g. total, per outcome_status).
MemberCounts map[string]any `json:"member_counts"`
// Breakdown of members by outcome_status.
MemberStatus map[string]any `json:"member_status"`
// Per signal_type coverage of this network's members.
SignalCoverage map[string]any `json:"signal_coverage"`
FirstActivityAt time.Time `json:"first_activity_at"`
LastActivityAt time.Time `json:"last_activity_at"`
// Aggregate stats for the network (e.g. member totals).
Stats map[string]any `json:"stats"`
// Fraud-pattern tags surfaced on the network.
FraudTags []map[string]any `json:"fraud_tags"`
// Risk-signal summaries: residential_proxy_reuse, email_intelligence,
// phone_intelligence.
RiskSignals map[string]any `json:"risk_signals"`
ReviewedAt time.Time `json:"reviewed_at"`
ReviewedBy string `json:"reviewed_by"`
ReviewReason string `json:"review_reason"`
// Number of private analyst notes in this investigation.
NotesCount int64 `json:"notes_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkDetail is a response object.
func (*NetworkDetail) UnmarshalJSON ¶
func (r *NetworkDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkDetail leniently.
type NetworkDetailPatternTypes ¶
type NetworkDetailPatternTypes string
NetworkDetailPatternTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailPatternTypesExactSameDevice NetworkDetailPatternTypes = "exact_same_device" NetworkDetailPatternTypesSimilarDevice NetworkDetailPatternTypes = "similar_device" NetworkDetailPatternTypesSameIPAddress NetworkDetailPatternTypes = "same_ip_address" NetworkDetailPatternTypesSameAddress NetworkDetailPatternTypes = "same_address" NetworkDetailPatternTypesSimilarSelfieBackgrounds NetworkDetailPatternTypes = "similar_selfie_backgrounds" NetworkDetailPatternTypesSimilarPOADocuments NetworkDetailPatternTypes = "similar_poa_documents" NetworkDetailPatternTypesSameDocumentNumber NetworkDetailPatternTypes = "same_document_number" NetworkDetailPatternTypesSamePhoneNumber NetworkDetailPatternTypes = "same_phone_number" NetworkDetailPatternTypesSameEmail NetworkDetailPatternTypes = "same_email" )
Known values of NetworkDetailPatternTypes.
type NetworkDetailResponse ¶
type NetworkDetailResponse struct {
UUID string `json:"uuid"`
// Human-readable per-organization sequential id, e.g. N-0001.
NetworkID string `json:"network_id"`
Name string `json:"name"`
// Network lifecycle status. Distinct from the per-applicant outcome_status
// inside a network (approved/in_review/declined/not_completed).
Status NetworkDetailResponseStatus `json:"status"`
Risk NetworkRiskDisplay `json:"risk"`
// The clustering patterns detected in this network.
PatternTypes []NetworkDetailResponsePatternTypes `json:"pattern_types"`
// The distinct signal types present in this network.
SignalTypes []NetworkDetailResponseSignalTypes `json:"signal_types"`
// Counts of members by category (e.g. total, per outcome_status).
MemberCounts map[string]any `json:"member_counts"`
// Breakdown of members by outcome_status.
MemberStatus map[string]any `json:"member_status"`
// Per signal_type coverage of this network's members.
SignalCoverage map[string]any `json:"signal_coverage"`
FirstActivityAt time.Time `json:"first_activity_at"`
LastActivityAt time.Time `json:"last_activity_at"`
// Aggregate stats for the network (e.g. member totals).
Stats map[string]any `json:"stats"`
// Fraud-pattern tags surfaced on the network.
FraudTags []map[string]any `json:"fraud_tags"`
// Risk-signal summaries: residential_proxy_reuse, email_intelligence,
// phone_intelligence.
RiskSignals map[string]any `json:"risk_signals"`
ReviewedAt time.Time `json:"reviewed_at"`
ReviewedBy string `json:"reviewed_by"`
ReviewReason string `json:"review_reason"`
// Number of private analyst notes in this investigation.
NotesCount int64 `json:"notes_count"`
// The organization's cross-organization sharing mode. Only `global` compares
// networks across organizations; `private` and `off` keep them to the
// organization's own history.
SharingMode NetworkDetailResponseSharingMode `json:"sharing_mode"`
// Whether cross-organization signals apply to this organization. They need both
// the Identity Enterprise plan and the `global` sharing mode.
CrossOrgAvailable bool `json:"cross_org_available"`
// the organization's Identity plan does not include the cross-organization
// fraud network (it needs Identity Enterprise), whatever the sharing mode.
// `sharing_mode`: the plan includes it, but the sharing mode is `private` or
// `off`. Null when `cross_org_available` is `true`.
CrossOrgUnavailableReason NetworkDetailResponseCrossOrgUnavailableReason `json:"cross_org_unavailable_reason"`
// Your application's tags on the network, oldest first. Each application sees
// only its own tags. `fraud_tags` is separate and unchanged: the tags the
// network's members carry.
Tags []NetworkTag `json:"tags"`
Outcomes NetworkOutcomes `json:"outcomes"`
// Pattern scores over the whole network. Today one item, `background`.
Patterns []NetworkPatternScore `json:"patterns"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkDetailResponse: The network detail, plus the organization's sharing mode, whether cross-organization signals apply to it, your application's tags on the network, member outcomes and pattern scores.
func (*NetworkDetailResponse) UnmarshalJSON ¶
func (r *NetworkDetailResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkDetailResponse leniently.
type NetworkDetailResponseCrossOrgUnavailableReason ¶
type NetworkDetailResponseCrossOrgUnavailableReason string
NetworkDetailResponseCrossOrgUnavailableReason: Why cross-organization signals do not apply, checked in this order. `plan`: the organization's Identity plan does not include the cross-organization fraud network (it needs Identity Enterprise), whatever the sharing mode. `sharing_mode`: the plan includes it, but the sharing mode is `private` or `off`. Null when `cross_org_available` is `true`.
NetworkDetailResponseCrossOrgUnavailableReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of NetworkDetailResponseCrossOrgUnavailableReason.
type NetworkDetailResponsePatternTypes ¶
type NetworkDetailResponsePatternTypes string
NetworkDetailResponsePatternTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailResponsePatternTypesExactSameDevice NetworkDetailResponsePatternTypes = "exact_same_device" NetworkDetailResponsePatternTypesSimilarDevice NetworkDetailResponsePatternTypes = "similar_device" NetworkDetailResponsePatternTypesSameIPAddress NetworkDetailResponsePatternTypes = "same_ip_address" NetworkDetailResponsePatternTypesSameAddress NetworkDetailResponsePatternTypes = "same_address" NetworkDetailResponsePatternTypesSimilarSelfieBackgrounds NetworkDetailResponsePatternTypes = "similar_selfie_backgrounds" NetworkDetailResponsePatternTypesSimilarPOADocuments NetworkDetailResponsePatternTypes = "similar_poa_documents" NetworkDetailResponsePatternTypesSameDocumentNumber NetworkDetailResponsePatternTypes = "same_document_number" NetworkDetailResponsePatternTypesSamePhoneNumber NetworkDetailResponsePatternTypes = "same_phone_number" NetworkDetailResponsePatternTypesSameEmail NetworkDetailResponsePatternTypes = "same_email" )
Known values of NetworkDetailResponsePatternTypes.
type NetworkDetailResponseSharingMode ¶
type NetworkDetailResponseSharingMode string
NetworkDetailResponseSharingMode: The organization's cross-organization sharing mode. Only `global` compares networks across organizations; `private` and `off` keep them to the organization's own history.
NetworkDetailResponseSharingMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailResponseSharingModeOff NetworkDetailResponseSharingMode = "off" NetworkDetailResponseSharingModePrivate NetworkDetailResponseSharingMode = "private" NetworkDetailResponseSharingModeGlobal NetworkDetailResponseSharingMode = "global" )
Known values of NetworkDetailResponseSharingMode.
type NetworkDetailResponseSignalTypes ¶
type NetworkDetailResponseSignalTypes string
NetworkDetailResponseSignalTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailResponseSignalTypesIPAddress NetworkDetailResponseSignalTypes = "ip_address" NetworkDetailResponseSignalTypesDevice NetworkDetailResponseSignalTypes = "device" NetworkDetailResponseSignalTypesFace NetworkDetailResponseSignalTypes = "face" NetworkDetailResponseSignalTypesDocumentNumber NetworkDetailResponseSignalTypes = "document_number" NetworkDetailResponseSignalTypesPhone NetworkDetailResponseSignalTypes = "phone" NetworkDetailResponseSignalTypesEmail NetworkDetailResponseSignalTypes = "email" NetworkDetailResponseSignalTypesAddress NetworkDetailResponseSignalTypes = "address" )
Known values of NetworkDetailResponseSignalTypes.
type NetworkDetailResponseStatus ¶
type NetworkDetailResponseStatus string
NetworkDetailResponseStatus: Network lifecycle status. Distinct from the per-applicant outcome_status inside a network (approved/in_review/declined/not_completed).
NetworkDetailResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailResponseStatusActive NetworkDetailResponseStatus = "active" NetworkDetailResponseStatusInReview NetworkDetailResponseStatus = "in_review" NetworkDetailResponseStatusResolved NetworkDetailResponseStatus = "resolved" NetworkDetailResponseStatusDismissed NetworkDetailResponseStatus = "dismissed" )
Known values of NetworkDetailResponseStatus.
type NetworkDetailSignalTypes ¶
type NetworkDetailSignalTypes string
NetworkDetailSignalTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailSignalTypesIPAddress NetworkDetailSignalTypes = "ip_address" NetworkDetailSignalTypesDevice NetworkDetailSignalTypes = "device" NetworkDetailSignalTypesFace NetworkDetailSignalTypes = "face" NetworkDetailSignalTypesDocumentNumber NetworkDetailSignalTypes = "document_number" NetworkDetailSignalTypesPhone NetworkDetailSignalTypes = "phone" NetworkDetailSignalTypesEmail NetworkDetailSignalTypes = "email" NetworkDetailSignalTypesAddress NetworkDetailSignalTypes = "address" )
Known values of NetworkDetailSignalTypes.
type NetworkDetailStatus ¶
type NetworkDetailStatus string
NetworkDetailStatus: Network lifecycle status. Distinct from the per-applicant outcome_status inside a network (approved/in_review/declined/not_completed).
NetworkDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkDetailStatusActive NetworkDetailStatus = "active" NetworkDetailStatusInReview NetworkDetailStatus = "in_review" NetworkDetailStatusResolved NetworkDetailStatus = "resolved" NetworkDetailStatusDismissed NetworkDetailStatus = "dismissed" )
Known values of NetworkDetailStatus.
type NetworkGraph ¶
type NetworkGraph struct {
Network NetworkDetail `json:"network"`
// Effective depth applied, or null when unbounded (depth=all).
Depth int64 `json:"depth"`
// True if the neighborhood was cut off by depth.
Truncated bool `json:"truncated"`
Nodes []NetworkGraphNode `json:"nodes"`
Edges []NetworkGraphEdge `json:"edges"`
Metrics NetworkGraphMetrics `json:"metrics"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkGraph is a response object.
func (*NetworkGraph) UnmarshalJSON ¶
func (r *NetworkGraph) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkGraph leniently.
type NetworkGraphEdge ¶
type NetworkGraphEdge struct {
ID string `json:"id"`
// Subject node id.
Source string `json:"source"`
// Signal node id.
Target string `json:"target"`
SubjectKind NetworkGraphEdgeSubjectKind `json:"subject_kind"`
SignalType NetworkGraphEdgeSignalType `json:"signal_type"`
// 1.0 for an exact match.
Confidence float64 `json:"confidence"`
ObservationCount int64 `json:"observation_count"`
FirstSeenAt time.Time `json:"first_seen_at"`
LastSeenAt time.Time `json:"last_seen_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkGraphEdge is a response object.
func (*NetworkGraphEdge) UnmarshalJSON ¶
func (r *NetworkGraphEdge) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkGraphEdge leniently.
type NetworkGraphEdgeSignalType ¶
type NetworkGraphEdgeSignalType string
NetworkGraphEdgeSignalType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkGraphEdgeSignalTypeIPAddress NetworkGraphEdgeSignalType = "ip_address" NetworkGraphEdgeSignalTypeDevice NetworkGraphEdgeSignalType = "device" NetworkGraphEdgeSignalTypeFace NetworkGraphEdgeSignalType = "face" NetworkGraphEdgeSignalTypeDocumentNumber NetworkGraphEdgeSignalType = "document_number" NetworkGraphEdgeSignalTypePhone NetworkGraphEdgeSignalType = "phone" NetworkGraphEdgeSignalTypeEmail NetworkGraphEdgeSignalType = "email" NetworkGraphEdgeSignalTypeAddress NetworkGraphEdgeSignalType = "address" )
Known values of NetworkGraphEdgeSignalType.
type NetworkGraphEdgeSubjectKind ¶
type NetworkGraphEdgeSubjectKind string
NetworkGraphEdgeSubjectKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkGraphEdgeSubjectKindVendorUser NetworkGraphEdgeSubjectKind = "vendor_user" NetworkGraphEdgeSubjectKindVendorBusiness NetworkGraphEdgeSubjectKind = "vendor_business" NetworkGraphEdgeSubjectKindTransactionParty NetworkGraphEdgeSubjectKind = "transaction_party" )
Known values of NetworkGraphEdgeSubjectKind.
type NetworkGraphMetrics ¶
type NetworkGraphMetrics struct {
NodeCount int64 `json:"node_count"`
EdgeCount int64 `json:"edge_count"`
HubSignalCount int64 `json:"hub_signal_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkGraphMetrics is a response object.
func (*NetworkGraphMetrics) UnmarshalJSON ¶
func (r *NetworkGraphMetrics) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkGraphMetrics leniently.
type NetworkGraphNode ¶
type NetworkGraphNode struct {
ID string `json:"id"`
Kind NetworkGraphNodeKind `json:"kind"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkGraphNode: A subject node or a signal node, distinguished by kind. Subject nodes (kind: vendor_user | vendor_business | transaction_party) carry id, kind, subject, node_status (approved | in_review | declined | not_completed), and tags. Signal nodes (kind: signal) carry id, kind, uuid, signal_type, subject_count, coverage, is_hub, is_datacenter_ip, is_high_collision_device, node_status (signal_active | signal_guarded), tags, risk_evidence, first_seen_at, and last_seen_at.
func (*NetworkGraphNode) UnmarshalJSON ¶
func (r *NetworkGraphNode) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkGraphNode leniently.
type NetworkGraphNodeKind ¶
type NetworkGraphNodeKind string
NetworkGraphNodeKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkGraphNodeKindVendorUser NetworkGraphNodeKind = "vendor_user" NetworkGraphNodeKindVendorBusiness NetworkGraphNodeKind = "vendor_business" NetworkGraphNodeKindTransactionParty NetworkGraphNodeKind = "transaction_party" NetworkGraphNodeKindSignal NetworkGraphNodeKind = "signal" )
Known values of NetworkGraphNodeKind.
type NetworkListItem ¶
type NetworkListItem struct {
UUID string `json:"uuid"`
// Human-readable per-organization sequential id, e.g. N-0001.
NetworkID string `json:"network_id"`
Name string `json:"name"`
// Network lifecycle status. Distinct from the per-applicant outcome_status
// inside a network (approved/in_review/declined/not_completed).
Status NetworkListItemStatus `json:"status"`
Risk NetworkRiskDisplay `json:"risk"`
// The clustering patterns detected in this network.
PatternTypes []NetworkListItemPatternTypes `json:"pattern_types"`
// The distinct signal types present in this network.
SignalTypes []NetworkListItemSignalTypes `json:"signal_types"`
// Counts of members by category (e.g. total, per outcome_status).
MemberCounts map[string]any `json:"member_counts"`
// Breakdown of members by outcome_status.
MemberStatus map[string]any `json:"member_status"`
// Per signal_type coverage of this network's members.
SignalCoverage map[string]any `json:"signal_coverage"`
FirstActivityAt time.Time `json:"first_activity_at"`
LastActivityAt time.Time `json:"last_activity_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkListItem is a response object.
func (*NetworkListItem) UnmarshalJSON ¶
func (r *NetworkListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkListItem leniently.
type NetworkListItemPatternTypes ¶
type NetworkListItemPatternTypes string
NetworkListItemPatternTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkListItemPatternTypesExactSameDevice NetworkListItemPatternTypes = "exact_same_device" NetworkListItemPatternTypesSimilarDevice NetworkListItemPatternTypes = "similar_device" NetworkListItemPatternTypesSameIPAddress NetworkListItemPatternTypes = "same_ip_address" NetworkListItemPatternTypesSameAddress NetworkListItemPatternTypes = "same_address" NetworkListItemPatternTypesSimilarSelfieBackgrounds NetworkListItemPatternTypes = "similar_selfie_backgrounds" NetworkListItemPatternTypesSimilarPOADocuments NetworkListItemPatternTypes = "similar_poa_documents" NetworkListItemPatternTypesSameDocumentNumber NetworkListItemPatternTypes = "same_document_number" NetworkListItemPatternTypesSamePhoneNumber NetworkListItemPatternTypes = "same_phone_number" NetworkListItemPatternTypesSameEmail NetworkListItemPatternTypes = "same_email" )
Known values of NetworkListItemPatternTypes.
type NetworkListItemSignalTypes ¶
type NetworkListItemSignalTypes string
NetworkListItemSignalTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkListItemSignalTypesIPAddress NetworkListItemSignalTypes = "ip_address" NetworkListItemSignalTypesDevice NetworkListItemSignalTypes = "device" NetworkListItemSignalTypesFace NetworkListItemSignalTypes = "face" NetworkListItemSignalTypesDocumentNumber NetworkListItemSignalTypes = "document_number" NetworkListItemSignalTypesPhone NetworkListItemSignalTypes = "phone" NetworkListItemSignalTypesEmail NetworkListItemSignalTypes = "email" NetworkListItemSignalTypesAddress NetworkListItemSignalTypes = "address" )
Known values of NetworkListItemSignalTypes.
type NetworkListItemStatus ¶
type NetworkListItemStatus string
NetworkListItemStatus: Network lifecycle status. Distinct from the per-applicant outcome_status inside a network (approved/in_review/declined/not_completed).
NetworkListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkListItemStatusActive NetworkListItemStatus = "active" NetworkListItemStatusInReview NetworkListItemStatus = "in_review" NetworkListItemStatusResolved NetworkListItemStatus = "resolved" NetworkListItemStatusDismissed NetworkListItemStatus = "dismissed" )
Known values of NetworkListItemStatus.
type NetworkMap ¶
type NetworkMap struct {
Network NetworkDetail `json:"network"`
// Number of distinct address/location points members converge on.
ConvergenceCount int64 `json:"convergence_count"`
Countries []string `json:"countries"`
Points []NetworkMapPoints `json:"points"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkMap is a response object.
func (*NetworkMap) UnmarshalJSON ¶
func (r *NetworkMap) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkMap leniently.
type NetworkMapPoints ¶
type NetworkMapPoints struct {
UUID string `json:"uuid"`
Country string `json:"country"`
CountryCode string `json:"country_code"`
City string `json:"city"`
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
ObservedAt time.Time `json:"observed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkMapPoints is a response object.
func (*NetworkMapPoints) UnmarshalJSON ¶
func (r *NetworkMapPoints) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkMapPoints leniently.
type NetworkMember ¶
type NetworkMember struct {
// The vendor_user, vendor_business, or transaction_party this member
// represents.
Subject map[string]any `json:"subject"`
// The subject's verification/decision outcome.
OutcomeStatus string `json:"outcome_status"`
// For a member row this is always one of the subject-outcome values: approved,
// in_review, declined, or not_completed.
NodeStatus NetworkMemberNodeStatus `json:"node_status"`
Tags []NetworkNodeTag `json:"tags"`
Risk NetworkRiskDisplay `json:"risk"`
SignalCoverage map[string]any `json:"signal_coverage"`
JoinedAt time.Time `json:"joined_at"`
LastSeenAt time.Time `json:"last_seen_at"`
Provenance NetworkMemberProvenance `json:"provenance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkMember is a response object.
func (*NetworkMember) UnmarshalJSON ¶
func (r *NetworkMember) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkMember leniently.
type NetworkMemberNodeStatus ¶
type NetworkMemberNodeStatus string
NetworkMemberNodeStatus: For a member row this is always one of the subject-outcome values: approved, in_review, declined, or not_completed.
NetworkMemberNodeStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkMemberNodeStatusApproved NetworkMemberNodeStatus = "approved" NetworkMemberNodeStatusInReview NetworkMemberNodeStatus = "in_review" NetworkMemberNodeStatusDeclined NetworkMemberNodeStatus = "declined" NetworkMemberNodeStatusNotCompleted NetworkMemberNodeStatus = "not_completed" NetworkMemberNodeStatusSignalActive NetworkMemberNodeStatus = "signal_active" NetworkMemberNodeStatusSignalGuarded NetworkMemberNodeStatus = "signal_guarded" )
Known values of NetworkMemberNodeStatus.
type NetworkMemberProvenance ¶
type NetworkMemberProvenance struct {
SessionIDs []string `json:"session_ids"`
BusinessSessionIDs []string `json:"business_session_ids"`
TransactionIDs []string `json:"transaction_ids"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkMemberProvenance is a response object.
func (*NetworkMemberProvenance) UnmarshalJSON ¶
func (r *NetworkMemberProvenance) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkMemberProvenance leniently.
type NetworkNodeTag ¶
type NetworkNodeTag struct {
ID string `json:"id"`
Name string `json:"name"`
// Null for guard tags, whose color token the renderer owns.
Color string `json:"color"`
// Where the tag came from: a tag on the user/business, a tag on a session in
// this network, a tag on a transaction a party belongs to, or a signal guard
// condition (e.g. hub, datacenter IP).
Source NetworkNodeTagSource `json:"source"`
// customer for customer-defined tags, quality for signal-quality guard tags.
// Null when not applicable.
Category NetworkNodeTagCategory `json:"category"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkNodeTag is a response object.
func (*NetworkNodeTag) UnmarshalJSON ¶
func (r *NetworkNodeTag) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkNodeTag leniently.
type NetworkNodeTagCategory ¶
type NetworkNodeTagCategory string
NetworkNodeTagCategory: customer for customer-defined tags, quality for signal-quality guard tags. Null when not applicable.
NetworkNodeTagCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkNodeTagCategoryCustomer NetworkNodeTagCategory = "customer" NetworkNodeTagCategoryQuality NetworkNodeTagCategory = "quality" )
Known values of NetworkNodeTagCategory.
type NetworkNodeTagSource ¶
type NetworkNodeTagSource string
NetworkNodeTagSource: Where the tag came from: a tag on the user/business, a tag on a session in this network, a tag on a transaction a party belongs to, or a signal guard condition (e.g. hub, datacenter IP).
NetworkNodeTagSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkNodeTagSourceSubjectTag NetworkNodeTagSource = "subject_tag" NetworkNodeTagSourceSessionTag NetworkNodeTagSource = "session_tag" NetworkNodeTagSourceTransactionTag NetworkNodeTagSource = "transaction_tag" NetworkNodeTagSourceSignalGuard NetworkNodeTagSource = "signal_guard" )
Known values of NetworkNodeTagSource.
type NetworkNote ¶
type NetworkNote struct {
UUID string `json:"uuid"`
// Authenticated author, assigned by the server.
ActorEmail string `json:"actor_email"`
Comment string `json:"comment"`
ClientReference string `json:"client_reference"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkNote is a response object.
func (*NetworkNote) UnmarshalJSON ¶
func (r *NetworkNote) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkNote leniently.
type NetworkOutcomes ¶
type NetworkOutcomes struct {
// Members whose most recent decided verification was approved.
Approved int64 `json:"approved"`
// Members whose most recent decided verification was declined.
Declined int64 `json:"declined"`
// Members whose most recent decided verification is in review.
InReview int64 `json:"in_review"`
// Members with at least one verification, decided or not. A member whose
// verifications are all undecided (not started, in progress, expired or
// abandoned) counts here and in no other key.
Total int64 `json:"total"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkOutcomes: Where the network's people and businesses stand. Each member you may see counts once, by the status of their most recent verification that reached a decision. Transaction parties are not counted.
func (*NetworkOutcomes) UnmarshalJSON ¶
func (r *NetworkOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkOutcomes leniently.
type NetworkPatternScore ¶
type NetworkPatternScore struct {
// `background`: the mean similarity of every pair of member selfie backgrounds,
// with the person masked out. It reads the newest selfie of each person, at
// most the 50 newest, and leaves out age assurance sessions. It covers the
// whole network, not only the members of your applications.
Type NetworkPatternScoreType `json:"type"`
// From 0 to 1, rounded to 4 decimals. Null when `reason` is set.
Score float64 `json:"score"`
// How many members' selfies the score compared. A selfie that cannot be read,
// or shows too little background, is not compared. Null while `computing`; 0 or
// 1 with `not_enough_selfies`.
Members int64 `json:"members"`
// Why there is no score. `computing`: the score for the current members is
// being computed; read the network again later. `not_enough_selfies`: fewer
// than two members have a usable selfie. Null when there is a score.
Reason NetworkPatternScoreReason `json:"reason"`
// When the score was computed. Null while `computing`.
ComputedAt time.Time `json:"computed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkPatternScore: How alike one kind of the members' data is across the whole network. A pattern is not a signal: no shared value links the members.
func (*NetworkPatternScore) UnmarshalJSON ¶
func (r *NetworkPatternScore) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkPatternScore leniently.
type NetworkPatternScoreReason ¶
type NetworkPatternScoreReason string
NetworkPatternScoreReason: Why there is no score. `computing`: the score for the current members is being computed; read the network again later. `not_enough_selfies`: fewer than two members have a usable selfie. Null when there is a score.
NetworkPatternScoreReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkPatternScoreReasonComputing NetworkPatternScoreReason = "computing" NetworkPatternScoreReasonNotEnoughSelfies NetworkPatternScoreReason = "not_enough_selfies" )
Known values of NetworkPatternScoreReason.
type NetworkPatternScoreType ¶
type NetworkPatternScoreType string
NetworkPatternScoreType: `background`: the mean similarity of every pair of member selfie backgrounds, with the person masked out. It reads the newest selfie of each person, at most the 50 newest, and leaves out age assurance sessions. It covers the whole network, not only the members of your applications.
NetworkPatternScoreType is a string with known values below. The set is open: other values may appear and never cause an error.
const (
NetworkPatternScoreTypeBackground NetworkPatternScoreType = "background"
)
Known values of NetworkPatternScoreType.
type NetworkRiskDisplay ¶
type NetworkRiskDisplay struct {
// Risk score, 0-100.
Score int64 `json:"score"`
// Band the score renders as. high >= 70, medium >= 40, otherwise low.
Band NetworkRiskDisplayBand `json:"band"`
// Normalized 0-1 value for rendering a risk bar.
Bar float64 `json:"bar"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkRiskDisplay is a response object.
func (*NetworkRiskDisplay) UnmarshalJSON ¶
func (r *NetworkRiskDisplay) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkRiskDisplay leniently.
type NetworkRiskDisplayBand ¶
type NetworkRiskDisplayBand string
NetworkRiskDisplayBand: Band the score renders as. high >= 70, medium >= 40, otherwise low.
NetworkRiskDisplayBand is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkRiskDisplayBandLow NetworkRiskDisplayBand = "low" NetworkRiskDisplayBandMedium NetworkRiskDisplayBand = "medium" NetworkRiskDisplayBandHigh NetworkRiskDisplayBand = "high" )
Known values of NetworkRiskDisplayBand.
type NetworkSignal ¶
type NetworkSignal struct {
UUID string `json:"uuid"`
SignalType NetworkSignalSignalType `json:"signal_type"`
SubjectCount int64 `json:"subject_count"`
Coverage float64 `json:"coverage"`
// True when this signal links an unusually large number of subjects.
IsHub bool `json:"is_hub"`
IsDatacenterIP bool `json:"is_datacenter_ip"`
IsHighCollisionDevice bool `json:"is_high_collision_device"`
NodeStatus NetworkSignalNodeStatus `json:"node_status"`
Tags []NetworkNodeTag `json:"tags"`
RiskEvidence map[string]any `json:"risk_evidence"`
FirstSeenAt time.Time `json:"first_seen_at"`
LastSeenAt time.Time `json:"last_seen_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkSignal is a response object.
func (*NetworkSignal) UnmarshalJSON ¶
func (r *NetworkSignal) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkSignal leniently.
type NetworkSignalNodeStatus ¶
type NetworkSignalNodeStatus string
NetworkSignalNodeStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkSignalNodeStatusSignalActive NetworkSignalNodeStatus = "signal_active" NetworkSignalNodeStatusSignalGuarded NetworkSignalNodeStatus = "signal_guarded" )
Known values of NetworkSignalNodeStatus.
type NetworkSignalSignalType ¶
type NetworkSignalSignalType string
NetworkSignalSignalType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkSignalSignalTypeIPAddress NetworkSignalSignalType = "ip_address" NetworkSignalSignalTypeDevice NetworkSignalSignalType = "device" NetworkSignalSignalTypeFace NetworkSignalSignalType = "face" NetworkSignalSignalTypeDocumentNumber NetworkSignalSignalType = "document_number" NetworkSignalSignalTypePhone NetworkSignalSignalType = "phone" NetworkSignalSignalTypeEmail NetworkSignalSignalType = "email" NetworkSignalSignalTypeAddress NetworkSignalSignalType = "address" )
Known values of NetworkSignalSignalType.
type NetworkTag ¶
type NetworkTag struct {
// The tag's UUID, the same value you pass as `tag_uuid`.
UUID string `json:"uuid"`
Name string `json:"name"`
// Hex color, for example `#6366F1`.
Color string `json:"color"`
// `didit` for a Didit preset tag, `custom` for a tag your team created.
Source NetworkTagSource `json:"source"`
// Email of the console member who added the tag. Null when an API key added it.
AddedBy string `json:"added_by"`
AddedAt time.Time `json:"added_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTag: One of your application's tags on the network.
func (*NetworkTag) UnmarshalJSON ¶
func (r *NetworkTag) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTag leniently.
type NetworkTagRequest ¶
type NetworkTagRequest struct {
// UUID of one of your application's tags. Required.
TagUUID string `json:"tag_uuid"`
}
NetworkTagRequest is a request object.
func (NetworkTagRequest) MarshalJSON ¶
func (r NetworkTagRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworkTagSource ¶
type NetworkTagSource string
NetworkTagSource: `didit` for a Didit preset tag, `custom` for a tag your team created.
NetworkTagSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkTagSourceDidit NetworkTagSource = "didit" NetworkTagSourceCustom NetworkTagSource = "custom" )
Known values of NetworkTagSource.
type NetworkTimelineAccount ¶
type NetworkTimelineAccount struct {
// `<kind>:<uuid>`, where kind is `vendor_user`, `vendor_business` or
// `transaction_party`.
NodeID string `json:"node_id"`
NodeType NetworkTimelineAccountNodeType `json:"node_type"`
UUID string `json:"uuid"`
VendorData string `json:"vendor_data"`
DisplayName string `json:"display_name"`
// `owned` when the record belongs to the application you called (for a console
// member, to an application they were granted). `organization` when it belongs
// to another application of your organization.
Ownership NetworkTimelineAccountOwnership `json:"ownership"`
Route NetworkTimelineRoute `json:"route"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineAccount: The member account the event belongs to.
func (*NetworkTimelineAccount) UnmarshalJSON ¶
func (r *NetworkTimelineAccount) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineAccount leniently.
type NetworkTimelineAccountNodeType ¶
type NetworkTimelineAccountNodeType string
NetworkTimelineAccountNodeType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkTimelineAccountNodeTypeAccount NetworkTimelineAccountNodeType = "account" NetworkTimelineAccountNodeTypeBusinessAccount NetworkTimelineAccountNodeType = "business_account" NetworkTimelineAccountNodeTypeTransactionParty NetworkTimelineAccountNodeType = "transaction_party" )
Known values of NetworkTimelineAccountNodeType.
type NetworkTimelineAccountOwnership ¶
type NetworkTimelineAccountOwnership string
NetworkTimelineAccountOwnership: `owned` when the record belongs to the application you called (for a console member, to an application they were granted). `organization` when it belongs to another application of your organization.
NetworkTimelineAccountOwnership is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkTimelineAccountOwnershipOwned NetworkTimelineAccountOwnership = "owned" NetworkTimelineAccountOwnershipOrganization NetworkTimelineAccountOwnership = "organization" )
Known values of NetworkTimelineAccountOwnership.
type NetworkTimelineAmount ¶
type NetworkTimelineAmount struct {
// Decimal amount as a string.
Value string `json:"value"`
Currency string `json:"currency"`
Direction string `json:"direction"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineAmount is a response object.
func (*NetworkTimelineAmount) UnmarshalJSON ¶
func (r *NetworkTimelineAmount) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineAmount leniently.
type NetworkTimelineAttempt ¶
type NetworkTimelineAttempt struct {
// The session UUID, or the business session UUID for a company.
SessionID string `json:"session_id"`
SessionNumber int64 `json:"session_number"`
// This session's position among the account's sessions, in creation order.
Attempt int64 `json:"attempt"`
// How many sessions the account has.
AttemptCount int64 `json:"attempt_count"`
// The session status, for example `Approved` or `Declined`.
Status string `json:"status"`
StatusChangedAt time.Time `json:"status_changed_at"`
// For a declined session only: its warnings, oldest first, once per warning.
// Empty otherwise.
DeclineReasons []NetworkTimelineDeclineReason `json:"decline_reasons"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineAttempt: One verification session of the account.
func (*NetworkTimelineAttempt) UnmarshalJSON ¶
func (r *NetworkTimelineAttempt) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineAttempt leniently.
type NetworkTimelineCaseLinked ¶
type NetworkTimelineCaseLinked struct {
CaseID string `json:"case_id"`
CaseNumber string `json:"case_number"`
Status string `json:"status"`
AuthorEmail string `json:"author_email"`
AuthorName string `json:"author_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineCaseLinked: A case opened for the network in your organization. `source_ref.ownership` says whether it belongs to the application you called.
func (*NetworkTimelineCaseLinked) UnmarshalJSON ¶
func (r *NetworkTimelineCaseLinked) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineCaseLinked leniently.
type NetworkTimelineDeclineReason ¶
type NetworkTimelineDeclineReason struct {
// The warning code.
Risk string `json:"risk"`
// The feature that raised the warning.
Feature string `json:"feature"`
ShortDescription string `json:"short_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineDeclineReason is a response object.
func (*NetworkTimelineDeclineReason) UnmarshalJSON ¶
func (r *NetworkTimelineDeclineReason) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineDeclineReason leniently.
type NetworkTimelineDevice ¶
type NetworkTimelineDevice struct {
Fingerprint string `json:"fingerprint"`
// A readable device label built from the event's device context.
Label string `json:"label"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineDevice is a response object.
func (*NetworkTimelineDevice) UnmarshalJSON ¶
func (r *NetworkTimelineDevice) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineDevice leniently.
type NetworkTimelineIP ¶
type NetworkTimelineIP struct {
Address string `json:"address"`
CountryCode string `json:"country_code"`
City string `json:"city"`
// The connection type label for the address, as free text.
ConnectionType string `json:"connection_type"`
IsVpnOrTor bool `json:"is_vpn_or_tor"`
IsDataCenter bool `json:"is_data_center"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineIP is a response object.
func (*NetworkTimelineIP) UnmarshalJSON ¶
func (r *NetworkTimelineIP) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineIP leniently.
type NetworkTimelineLogin ¶
type NetworkTimelineLogin struct {
// `<event_category>.<action_type>`: `auth.login` or `security.login_succeeded`
// for a sign-in, `auth.login_failed` or `security.login_failed` for a failed
// one.
Action string `json:"action"`
Succeeded bool `json:"succeeded"`
// The event's status.
Status string `json:"status"`
// Null when the event has no IP address.
IP NetworkTimelineIP `json:"ip"`
// Null when the event has no device fingerprint or context.
Device NetworkTimelineDevice `json:"device"`
// The account's first successful sign-in on record.
IsFirstLogin bool `json:"is_first_login"`
// A successful sign-in from a device none of the account's earlier successful
// sign-ins came from. Never true on the first sign-in.
IsNewDevice bool `json:"is_new_device"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineLogin: A sign-in event you posted for a person through the events API.
func (*NetworkTimelineLogin) UnmarshalJSON ¶
func (r *NetworkTimelineLogin) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineLogin leniently.
type NetworkTimelineNoteAdded ¶
type NetworkTimelineNoteAdded struct {
NoteID string `json:"note_id"`
AuthorEmail string `json:"author_email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineNoteAdded: A note left on the network. The note text is not included.
func (*NetworkTimelineNoteAdded) UnmarshalJSON ¶
func (r *NetworkTimelineNoteAdded) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineNoteAdded leniently.
type NetworkTimelineRoute ¶
type NetworkTimelineRoute struct {
// `user`, `business` or `transaction_party` for an account; `session`,
// `business_session` or `transaction` for a source record.
Kind string `json:"kind"`
ID string `json:"id"`
ApplicationID string `json:"application_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineRoute: Where the record opens: its kind, its UUID and the application it belongs to.
func (*NetworkTimelineRoute) UnmarshalJSON ¶
func (r *NetworkTimelineRoute) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineRoute leniently.
type NetworkTimelineRuleHit ¶
type NetworkTimelineRuleHit struct {
RuleID string `json:"rule_id"`
RuleTitle string `json:"rule_title"`
RuleCategory string `json:"rule_category"`
RuleSource string `json:"rule_source"`
Severity string `json:"severity"`
ScoreDelta int64 `json:"score_delta"`
StatusTarget string `json:"status_target"`
ActionSummary string `json:"action_summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineRuleHit: A live rule that matched a member's transaction or event. Test-mode matches are not included.
func (*NetworkTimelineRuleHit) UnmarshalJSON ¶
func (r *NetworkTimelineRuleHit) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineRuleHit leniently.
type NetworkTimelineSourceRef ¶
type NetworkTimelineSourceRef struct {
Kind NetworkTimelineSourceRefKind `json:"kind"`
ID string `json:"id"`
// `owned` when the record belongs to the application you called (for a console
// member, to an application they were granted). `organization` when it belongs
// to another application of your organization.
Ownership NetworkTimelineSourceRefOwnership `json:"ownership"`
// Absent for `monitoring_event` and `case`.
Route NetworkTimelineRoute `json:"route"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineSourceRef: The record the event was read from.
func (*NetworkTimelineSourceRef) UnmarshalJSON ¶
func (r *NetworkTimelineSourceRef) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineSourceRef leniently.
type NetworkTimelineSourceRefKind ¶
type NetworkTimelineSourceRefKind string
NetworkTimelineSourceRefKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkTimelineSourceRefKindSession NetworkTimelineSourceRefKind = "session" NetworkTimelineSourceRefKindBusinessSession NetworkTimelineSourceRefKind = "business_session" NetworkTimelineSourceRefKindTransaction NetworkTimelineSourceRefKind = "transaction" NetworkTimelineSourceRefKindMonitoringEvent NetworkTimelineSourceRefKind = "monitoring_event" NetworkTimelineSourceRefKindCase NetworkTimelineSourceRefKind = "case" )
Known values of NetworkTimelineSourceRefKind.
type NetworkTimelineSourceRefOwnership ¶
type NetworkTimelineSourceRefOwnership string
NetworkTimelineSourceRefOwnership: `owned` when the record belongs to the application you called (for a console member, to an application they were granted). `organization` when it belongs to another application of your organization.
NetworkTimelineSourceRefOwnership is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworkTimelineSourceRefOwnershipOwned NetworkTimelineSourceRefOwnership = "owned" NetworkTimelineSourceRefOwnershipOrganization NetworkTimelineSourceRefOwnership = "organization" )
Known values of NetworkTimelineSourceRefOwnership.
type NetworkTimelineTransaction ¶
type NetworkTimelineTransaction struct {
TransactionID string `json:"transaction_id"`
TransactionNumber int64 `json:"transaction_number"`
TransactionType string `json:"transaction_type"`
ActionType string `json:"action_type"`
// Null when the transaction has no amount.
Amount NetworkTimelineAmount `json:"amount"`
Status string `json:"status"`
DecisionReasonCode string `json:"decision_reason_code"`
DecisionReasonLabel string `json:"decision_reason_label"`
// The account's role in the transaction: `APPLICANT`, `REMITTER`, `BENEFICIARY`
// or `COUNTERPARTY`.
PartyRole string `json:"party_role"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworkTimelineTransaction: A transaction a member account took part in, dated by its transaction date.
func (*NetworkTimelineTransaction) UnmarshalJSON ¶
func (r *NetworkTimelineTransaction) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworkTimelineTransaction leniently.
type NetworksDownloadReportParams ¶
type NetworksDownloadReportParams struct {
// Console user access token in the form Bearer <token>. Required.
Authorization string `json:"-" header:"Authorization"`
}
NetworksDownloadReportParams holds the parameters of Client.Networks.DownloadReport.
func (NetworksDownloadReportParams) MarshalJSON ¶
func (r NetworksDownloadReportParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksListMembersResponse ¶
type NetworksListMembersResponse struct {
Results []NetworkMember `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworksListMembersResponse is a response object.
func (*NetworksListMembersResponse) UnmarshalJSON ¶
func (r *NetworksListMembersResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworksListMembersResponse leniently.
type NetworksListParams ¶
type NetworksListParams struct {
// Comma-separated statuses to include: active,in_review,resolved,dismissed.
// Omit to exclude dismissed.
Status Opt[string] `json:"-" query:"status"`
// `transactions` keeps networks whose members are all transaction parties;
// `identity` keeps every other network. Omit for both. It also narrows
// `counts.views` and `counts.facets`. Any other value returns 400.
Scope Opt[NetworksListParamsScope] `json:"-" query:"scope"`
// Comma-separated signal types:
// ip_address,device,face,document_number,phone,email,address.
SignalType Opt[string] `json:"-" query:"signal_type"`
// Comma-separated pattern types, e.g. exact_same_device,same_email.
PatternType Opt[string] `json:"-" query:"pattern_type"`
// Comma-separated bands: low,medium,high.
RiskBand Opt[string] `json:"-" query:"risk_band"`
// Minimum member count.
MinSize Opt[int64] `json:"-" query:"min_size"`
// Maximum member count.
MaxSize Opt[int64] `json:"-" query:"max_size"`
// Comma-separated assignees: `unassigned`, member emails (matched
// case-insensitively), or `me` for the calling console member. A network
// matches any value. `me` needs a console member token: an API key gets 400
// `{"assignee": ["\"me\" needs a user token; an API key has no assignee
// identity."]}`.
Assignee Opt[string] `json:"-" query:"assignee"`
// Comma-separated priorities: `low`, `medium`, `high`, or `none` for networks
// without a priority. Any other value returns 400 `{"priority": "Unknown
// priority: <values>."}`.
Priority Opt[string] `json:"-" query:"priority"`
// Minimum risk score, a whole number from 0 to 100. A value that is not a whole
// number returns 400 `{"risk_min": "Use a whole number from 0 to 100."}`.
RiskMin Opt[int64] `json:"-" query:"risk_min"`
// `true` keeps the networks your application opened a case for, `false` the
// others. Any other value is ignored.
HasCase Opt[bool] `json:"-" query:"has_case"`
// Lower bound on last_activity_at (ISO 8601 date or datetime).
DateFrom Opt[string] `json:"-" query:"date_from"`
// Upper bound on first_activity_at (ISO 8601 date or datetime).
DateTo Opt[string] `json:"-" query:"date_to"`
// Free-text search across network name, member names, the network_id (N-0001),
// and exact pattern_type tokens.
Q Opt[string] `json:"-" query:"q"`
// One of risk_score, -risk_score, last_activity_at, -last_activity_at,
// first_activity_at, -first_activity_at, network_number, -network_number.
// Defaults to -risk_score,-last_activity_at.
Ordering Opt[string] `json:"-" query:"ordering"`
// Page size, 1-500. Defaults to 100.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record.
Offset Opt[int64] `json:"-" query:"offset"`
// `false` returns the page and its `count` only, without `kpis` and `counts`.
// Defaults to `true`. Any value other than `true` or `false` returns 400.
Summary Opt[bool] `json:"-" query:"summary"`
}
NetworksListParams holds the parameters of Client.Networks.List.
func (NetworksListParams) MarshalJSON ¶
func (r NetworksListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksListParamsScope ¶
type NetworksListParamsScope string
NetworksListParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworksListParamsScopeIdentity NetworksListParamsScope = "identity" NetworksListParamsScopeTransactions NetworksListParamsScope = "transactions" )
Known values of NetworksListParamsScope.
type NetworksListSignalsResponse ¶
type NetworksListSignalsResponse struct {
Results []NetworkSignal `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworksListSignalsResponse is a response object.
func (*NetworksListSignalsResponse) UnmarshalJSON ¶
func (r *NetworksListSignalsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworksListSignalsResponse leniently.
type NetworksNotesCreateParams ¶
type NetworksNotesCreateParams struct {
// Required.
Comment string `json:"comment"`
// Required.
ClientReference string `json:"client_reference"`
// Console user access token in the form Bearer <token>. Required.
Authorization string `json:"-" header:"Authorization"`
}
NetworksNotesCreateParams holds the parameters of Client.Networks.Notes.Create.
func (NetworksNotesCreateParams) MarshalJSON ¶
func (r NetworksNotesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksNotesDeleteParams ¶
type NetworksNotesDeleteParams struct {
// Console user access token in the form Bearer <token>. Required.
Authorization string `json:"-" header:"Authorization"`
}
NetworksNotesDeleteParams holds the parameters of Client.Networks.Notes.Delete.
func (NetworksNotesDeleteParams) MarshalJSON ¶
func (r NetworksNotesDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksNotesListParams ¶
type NetworksNotesListParams struct {
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
// Console user access token in the form Bearer <token>. Required.
Authorization string `json:"-" header:"Authorization"`
}
NetworksNotesListParams holds the parameters of Client.Networks.Notes.List.
func (NetworksNotesListParams) MarshalJSON ¶
func (r NetworksNotesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksNotesService ¶
type NetworksNotesService struct {
// contains filtered or unexported fields
}
NetworksNotesService holds the networks notes operations. Use it through Client.Networks.Notes.
func (*NetworksNotesService) Create ¶
func (r *NetworksNotesService) Create(ctx context.Context, networkUUID string, params NetworksNotesCreateParams, opts ...option.RequestOption) (*NetworkNote, error)
Create: Add a private network note.
Requires a console user with write:networks. The author is assigned from the authenticated user. Supply a new random UUID client_reference for each note; retry the same body and reference after an uncertain response to avoid duplicates. Reusing a reference for another body, author or network returns 409. Notes follow the surviving investigation when networks merge.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/notes/
func (*NetworksNotesService) Delete ¶
func (r *NetworksNotesService) Delete(ctx context.Context, networkUUID string, noteUUID string, params NetworksNotesDeleteParams, opts ...option.RequestOption) error
Delete: Delete your network note.
Requires write:networks and the authenticated author of the note. Deletion is irreversible. Connected account and verification data are unaffected.
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/notes/{note_uuid}/
func (*NetworksNotesService) List ¶
func (r *NetworksNotesService) List(ctx context.Context, networkUUID string, params NetworksNotesListParams, opts ...option.RequestOption) (*Page[NetworkNote], error)
List: List private network notes.
Console users with read:networks can read notes on a network visible to the application. Notes stay within the organization and are not contributed to shared intelligence. Newest notes appear first.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/notes/
func (*NetworksNotesService) ListAutoPaging ¶
func (r *NetworksNotesService) ListAutoPaging(ctx context.Context, networkUUID string, params NetworksNotesListParams, opts ...option.RequestOption) *PageIterator[NetworkNote]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type NetworksRetrieveGraphParams ¶
type NetworksRetrieveGraphParams struct {
// Hops from the focus subject to include. Defaults to all (unbounded).
Depth Opt[NetworksRetrieveGraphParamsDepth] `json:"-" query:"depth"`
// Subject type to center the graph on. Must be supplied together with focus_id;
// defaults to an arbitrary member when depth is bounded and neither is
// supplied.
FocusKind Opt[NetworksRetrieveGraphParamsFocusKind] `json:"-" query:"focus_kind"`
// Subject UUID to center the graph on.
FocusID Opt[string] `json:"-" query:"focus_id"`
}
NetworksRetrieveGraphParams holds the parameters of Client.Networks.RetrieveGraph.
func (NetworksRetrieveGraphParams) MarshalJSON ¶
func (r NetworksRetrieveGraphParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksRetrieveGraphParamsDepth ¶
type NetworksRetrieveGraphParamsDepth string
NetworksRetrieveGraphParamsDepth is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworksRetrieveGraphParamsDepth1 NetworksRetrieveGraphParamsDepth = "1" NetworksRetrieveGraphParamsDepth2 NetworksRetrieveGraphParamsDepth = "2" NetworksRetrieveGraphParamsDepth3 NetworksRetrieveGraphParamsDepth = "3" NetworksRetrieveGraphParamsDepthAll NetworksRetrieveGraphParamsDepth = "all" )
Known values of NetworksRetrieveGraphParamsDepth.
type NetworksRetrieveGraphParamsFocusKind ¶
type NetworksRetrieveGraphParamsFocusKind string
NetworksRetrieveGraphParamsFocusKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworksRetrieveGraphParamsFocusKindVendorUser NetworksRetrieveGraphParamsFocusKind = "vendor_user" NetworksRetrieveGraphParamsFocusKindVendorBusiness NetworksRetrieveGraphParamsFocusKind = "vendor_business" NetworksRetrieveGraphParamsFocusKindTransactionParty NetworksRetrieveGraphParamsFocusKind = "transaction_party" )
Known values of NetworksRetrieveGraphParamsFocusKind.
type NetworksRetrieveTimelineParams ¶
type NetworksRetrieveTimelineParams struct {
// `2` returns the typed timeline. Omit it for the default timeline. Any other
// value returns 400.
Contract Opt[NetworksRetrieveTimelineParamsContract] `json:"-" query:"contract"`
// Typed timeline only. Events per page, 1 to 500. Defaults to 100.
Limit Opt[int64] `json:"-" query:"limit"`
// Typed timeline only. The previous page's `next_cursor`. An invalid or empty
// cursor returns 400.
Cursor Opt[string] `json:"-" query:"cursor"`
// Typed timeline only. Event types to keep, repeated or comma-separated, at
// most 20 values. Defaults to every type.
EventType Opt[[]NetworksRetrieveTimelineParamsEventType] `json:"-" query:"event_type"`
}
NetworksRetrieveTimelineParams holds the parameters of Client.Networks.RetrieveTimeline.
func (NetworksRetrieveTimelineParams) MarshalJSON ¶
func (r NetworksRetrieveTimelineParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type NetworksRetrieveTimelineParamsContract ¶
type NetworksRetrieveTimelineParamsContract string
NetworksRetrieveTimelineParamsContract is a string with known values below. The set is open: other values may appear and never cause an error.
const (
NetworksRetrieveTimelineParamsContract2 NetworksRetrieveTimelineParamsContract = "2"
)
Known values of NetworksRetrieveTimelineParamsContract.
type NetworksRetrieveTimelineParamsEventType ¶
type NetworksRetrieveTimelineParamsEventType string
NetworksRetrieveTimelineParamsEventType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( NetworksRetrieveTimelineParamsEventTypeNetworkDetected NetworksRetrieveTimelineParamsEventType = "network_detected" NetworksRetrieveTimelineParamsEventTypeSignalObserved NetworksRetrieveTimelineParamsEventType = "signal_observed" NetworksRetrieveTimelineParamsEventTypeNetworkActive NetworksRetrieveTimelineParamsEventType = "network_active" NetworksRetrieveTimelineParamsEventTypeNetworkInReview NetworksRetrieveTimelineParamsEventType = "network_in_review" NetworksRetrieveTimelineParamsEventTypeNetworkResolved NetworksRetrieveTimelineParamsEventType = "network_resolved" NetworksRetrieveTimelineParamsEventTypeNetworkDismissed NetworksRetrieveTimelineParamsEventType = "network_dismissed" NetworksRetrieveTimelineParamsEventTypeVerificationAttempt NetworksRetrieveTimelineParamsEventType = "verification_attempt" NetworksRetrieveTimelineParamsEventTypeTransaction NetworksRetrieveTimelineParamsEventType = "transaction" NetworksRetrieveTimelineParamsEventTypeLogin NetworksRetrieveTimelineParamsEventType = "login" NetworksRetrieveTimelineParamsEventTypeRuleHit NetworksRetrieveTimelineParamsEventType = "rule_hit" NetworksRetrieveTimelineParamsEventTypeCaseLinked NetworksRetrieveTimelineParamsEventType = "case_linked" NetworksRetrieveTimelineParamsEventTypeNoteAdded NetworksRetrieveTimelineParamsEventType = "note_added" )
Known values of NetworksRetrieveTimelineParamsEventType.
type NetworksRetrieveTimelineResponse ¶
type NetworksRetrieveTimelineResponse struct {
Results []NetworksRetrieveTimelineResponseResults `json:"results"`
// Pass as `cursor` to read the next page. Null on the last page.
NextCursor string `json:"next_cursor"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworksRetrieveTimelineResponse is a response object.
func (*NetworksRetrieveTimelineResponse) UnmarshalJSON ¶
func (r *NetworksRetrieveTimelineResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworksRetrieveTimelineResponse leniently.
type NetworksRetrieveTimelineResponseResults ¶
type NetworksRetrieveTimelineResponseResults struct {
// e.g. network_detected, signal_observed, network_in_review, network_resolved,
// network_dismissed.
EventType string `json:"event_type"`
OccurredAt time.Time `json:"occurred_at"`
Label string `json:"label"`
Metadata any `json:"metadata"`
// `<source>:<uuid>`, unique within the timeline.
ID string `json:"id"`
// When Didit stored it.
IngestedAt time.Time `json:"ingested_at"`
// The member account. Null for the network's own events, `case_linked` and
// `note_added`.
Account NetworkTimelineAccount `json:"account"`
// The source record. Null for the network's own events and `note_added`.
SourceRef NetworkTimelineSourceRef `json:"source_ref"`
// Set on `verification_attempt` events.
VerificationAttempt NetworkTimelineAttempt `json:"verification_attempt"`
// Set on `transaction` events.
Transaction NetworkTimelineTransaction `json:"transaction"`
// Set on `login` events.
Login NetworkTimelineLogin `json:"login"`
// Set on `rule_hit` events.
RuleHit NetworkTimelineRuleHit `json:"rule_hit"`
// Set on `case_linked` events.
CaseLinked NetworkTimelineCaseLinked `json:"case_linked"`
// Set on `note_added` events. Never returned to an API key.
NoteAdded NetworkTimelineNoteAdded `json:"note_added"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
NetworksRetrieveTimelineResponseResults is a response object.
func (*NetworksRetrieveTimelineResponseResults) UnmarshalJSON ¶
func (r *NetworksRetrieveTimelineResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes NetworksRetrieveTimelineResponseResults leniently.
type NetworksService ¶
type NetworksService struct {
Notes *NetworksNotesService
// contains filtered or unexported fields
}
NetworksService holds the networks operations. Use it through Client.Networks.
func (*NetworksService) AddTag ¶
func (r *NetworksService) AddTag(ctx context.Context, networkUUID string, params NetworkTagRequest, opts ...option.RequestOption) (*NetworkDetailResponse, error)
AddTag: Add a tag to a network.
Put one of your application's tags on the network. Returns the network detail, whose `tags` lists your application's tags on the network, with `201` when the tag was added and `200` when it was already on the network. A tag that belongs to another application, or does not exist, returns 404 `Tag not found.`. Requires a full-access API key, or `write:networks` for a console member.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/add/
func (*NetworksService) DownloadReport ¶
func (r *NetworksService) DownloadReport(ctx context.Context, networkUUID string, params NetworksDownloadReportParams, opts ...option.RequestOption) (*http.Response, error)
DownloadReport: Download a network evidence report.
Download a PDF of the current organization network, its observed account connections, signal references and review status. Requires read:networks. Global intelligence and private analyst notes are not included. Each account and signal list is capped at 500 entries and the report states when it is incomplete. The request does not change network status. Errors are returned as JSON.
The response is a file (application/pdf). Read it from the returned response's body and close it.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/report/
func (*NetworksService) List ¶
func (r *NetworksService) List(ctx context.Context, params NetworksListParams, opts ...option.RequestOption) (*Page[NetworkListItem], error)
List: List networks.
List fraud networks detected within this application's organization, highest risk first by default. By default dismissed networks are excluded; pass status to include them. Sandbox applications never have networks: clustering excludes sandbox data entirely. Every response carries the organization's `sharing_mode` and whether cross-organization signals apply to it (`cross_org_available`, `cross_org_unavailable_reason`). `kpis` aggregate the networks that match your filters and `counts` aggregate every network the application can see; pass `summary=false` to skip both when you only need the page. Requires a full-access API key, or `list:networks` for a console member.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/
func (*NetworksService) ListAutoPaging ¶
func (r *NetworksService) ListAutoPaging(ctx context.Context, params NetworksListParams, opts ...option.RequestOption) *PageIterator[NetworkListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*NetworksService) ListMembers ¶
func (r *NetworksService) ListMembers(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworksListMembersResponse, error)
ListMembers: List network members.
List the subjects (vendor users, vendor businesses, or transaction parties) that belong to this network.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/members/
func (*NetworksService) ListSignals ¶
func (r *NetworksService) ListSignals(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworksListSignalsResponse, error)
ListSignals: List network signals.
List the signals (shared device, IP, face, document number, phone, email, or address values) that link this network's members.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/signals/
func (*NetworksService) RemoveTag ¶
func (r *NetworksService) RemoveTag(ctx context.Context, networkUUID string, params NetworkTagRequest, opts ...option.RequestOption) (*NetworkDetailResponse, error)
RemoveTag: Remove a tag from a network.
Remove one of your application's tags from the network. Returns the network detail. 404 when the tag is not on the network, or does not belong to your application. Requires a full-access API key, or `write:networks` for a console member.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/tags/remove/
func (*NetworksService) Retrieve ¶
func (r *NetworksService) Retrieve(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworkDetailResponse, error)
Retrieve: Get network.
Retrieve a single network's full detail: stats, fraud tags and risk signals, plus the organization's `sharing_mode` and cross-organization availability, your application's `tags` on the network, member `outcomes` and pattern scores (`patterns`). Requires a full-access API key, or `read:networks` for a console member.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/
func (*NetworksService) RetrieveGraph ¶
func (r *NetworksService) RetrieveGraph(ctx context.Context, networkUUID string, params NetworksRetrieveGraphParams, opts ...option.RequestOption) (*NetworkGraph, error)
RetrieveGraph: Get network graph.
Retrieve the network as a graph of subject nodes (vendor users, vendor businesses, transaction parties) and signal nodes (the shared device/IP/face/document/phone/email/address values linking them), with edges representing memberships.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/graph/
func (*NetworksService) RetrieveMap ¶
func (r *NetworksService) RetrieveMap(ctx context.Context, networkUUID string, opts ...option.RequestOption) (*NetworkMap, error)
RetrieveMap: Get network map.
Geographic points where this network's members' addresses/locations converge, sourced from the sessions, business sessions, and transactions backing its memberships.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/map/
func (*NetworksService) RetrieveTimeline ¶
func (r *NetworksService) RetrieveTimeline(ctx context.Context, networkUUID string, params NetworksRetrieveTimelineParams, opts ...option.RequestOption) (*NetworksRetrieveTimelineResponse, error)
RetrieveTimeline: Get network timeline.
Without `contract`: the network's own events (detection, each signal's latest observation and its review), oldest first and not paginated. `limit`, `cursor` and `event_type` are ignored. With `contract=2`: the typed timeline, newest first and paginated by cursor. It adds what the member accounts did (verification attempts, transactions, sign-ins you post through the events API and the live rules they hit) and the cases opened for the network. `note_added` events are returned to console members only, never to an API key. Requires a full-access API key, or `read:networks` for a console member.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/networks/{network_uuid}/timeline/
type NotFoundError ¶
type NotFoundError struct{ *APIStatusError }
NotFoundError is an *APIStatusError with status 404.
func (*NotFoundError) Unwrap ¶
func (e *NotFoundError) Unwrap() error
type OngoingMonitoringJob ¶
type OngoingMonitoringJob struct {
JobID string `json:"job_id"`
Status OngoingMonitoringJobStatus `json:"status"`
IsEnabled bool `json:"is_enabled"`
Total int64 `json:"total"`
Processed int64 `json:"processed"`
// Per-entity outcome counters. Nothing is silently skipped: every requested
// entity resolves to exactly one counter.
Outcomes OngoingMonitoringJobOutcomes `json:"outcomes"`
Error string `json:"error"`
// Cost preview. Returned directly when estimate_only is true (no writes are
// performed).
Estimate OngoingMonitoringJobEstimate `json:"estimate"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
OngoingMonitoringJob is a response object.
func (*OngoingMonitoringJob) UnmarshalJSON ¶
func (r *OngoingMonitoringJob) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes OngoingMonitoringJob leniently.
type OngoingMonitoringJobEstimate ¶
type OngoingMonitoringJobEstimate struct {
// Entities in the selection.
UsersTotal int64 `json:"users_total"`
AlreadyEnabled int64 `json:"already_enabled"`
// Entities whose existing AML screening will be switched to monitored.
WithExistingAML int64 `json:"with_existing_aml"`
// Entities without any AML screening that will be screened first (billed).
NeedingScreening int64 `json:"needing_screening"`
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
SkippedBlocked int64 `json:"skipped_blocked"`
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
OngoingMonitoringJobEstimate: Cost preview. Returned directly when estimate_only is true (no writes are performed).
func (*OngoingMonitoringJobEstimate) UnmarshalJSON ¶
func (r *OngoingMonitoringJobEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes OngoingMonitoringJobEstimate leniently.
type OngoingMonitoringJobOutcomes ¶
type OngoingMonitoringJobOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active (legacy duplicate rows are consolidated).
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring disabled on every AML row of the entity.
Disabled int64 `json:"disabled"`
// Skipped: no full name + date of birth + country available to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening provider call failed.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out mid-job.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
OngoingMonitoringJobOutcomes: Per-entity outcome counters. Nothing is silently skipped: every requested entity resolves to exactly one counter.
func (*OngoingMonitoringJobOutcomes) UnmarshalJSON ¶
func (r *OngoingMonitoringJobOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes OngoingMonitoringJobOutcomes leniently.
type OngoingMonitoringJobStatus ¶
type OngoingMonitoringJobStatus string
OngoingMonitoringJobStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( OngoingMonitoringJobStatusPending OngoingMonitoringJobStatus = "PENDING" OngoingMonitoringJobStatusProcessing OngoingMonitoringJobStatus = "PROCESSING" OngoingMonitoringJobStatusCompleted OngoingMonitoringJobStatus = "COMPLETED" OngoingMonitoringJobStatusFailed OngoingMonitoringJobStatus = "FAILED" )
Known values of OngoingMonitoringJobStatus.
type OngoingMonitoringToggleRequest ¶
type OngoingMonitoringToggleRequest struct {
// true to enable monitoring, false to disable it. Required.
IsEnabled bool `json:"is_enabled"`
// When true, returns the cost estimate and performs no writes.
EstimateOnly Opt[bool] `json:"estimate_only"`
// Apply to every entity of the application (scoped by the filter_* params when
// present).
UpdateAll Opt[bool] `json:"update_all"`
FilterSearch Opt[string] `json:"filter_search"`
FilterStatus Opt[[]string] `json:"filter_status"`
FilterCountry Opt[string] `json:"filter_country"`
FilterDateFrom Opt[string] `json:"filter_date_from"`
FilterDateTo Opt[string] `json:"filter_date_to"`
// Entities to toggle. Required unless update_all is true.
DiditInternalIDList Opt[[]string] `json:"didit_internal_id_list"`
}
OngoingMonitoringToggleRequest is a request object.
func (OngoingMonitoringToggleRequest) MarshalJSON ¶
func (r OngoingMonitoringToggleRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type Opt ¶
type Opt[T any] struct { // contains filtered or unexported fields }
Opt is an optional request field. Its zero value is omitted: the field is not sent at all, so a Go zero value is never sent by accident.
didit.SessionsCreateParams{
WorkflowID: "...",
VendorData: didit.String("user-42"), // sent
Callback: didit.Null[string](), // sent as null
// other Opt fields: not sent
}
Use the constructors String, Int, Float, Bool, Time, Some and Null.
func (Opt[T]) MarshalJSON ¶
MarshalJSON encodes the value, or null. Omitted values are skipped by the enclosing parameter type and also encode as null when marshalled directly.
func (Opt[T]) Or ¶
func (o Opt[T]) Or(fallback T) T
Or returns the value of o, or fallback when o holds no value.
func (*Opt[T]) UnmarshalJSON ¶
UnmarshalJSON sets o from JSON: null gives Null, anything else a value.
type Organization ¶
type Organization struct {
// Use as `{org_id}` on the application endpoints.
UUID string `json:"uuid"`
// Display name of the organization.
Name string `json:"name"`
// Primary contact email for the organization.
ContactEmail string `json:"contact_email"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
Organization is a response object.
func (*Organization) UnmarshalJSON ¶
func (r *Organization) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes Organization leniently.
type OrganizationSummary ¶
type OrganizationSummary struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
OrganizationSummary: Minimal organization shape returned inline by `POST /programmatic/verify-email/`.
func (*OrganizationSummary) UnmarshalJSON ¶
func (r *OrganizationSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes OrganizationSummary leniently.
type Page ¶
type Page[T any] struct { // Count is the total number of items, on every page. Count int64 `json:"count"` // Next is the URL of the next page, empty on the last page. Next string `json:"next"` // Previous is the URL of the previous page, empty on the first page. Previous string `json:"previous"` // Results holds the items of this page. Results []T `json:"results"` JSON ResponseJSON `json:"-"` // contains filtered or unexported fields }
Page is one page of a list: the fields of the API's {count, next, previous, results} envelope. List methods return it, and their AutoPaging variants iterate over every item of every page.
Lists that send more top-level fields (for example kpis or total_transactions) keep them readable through JSON.Field.
func (*Page[T]) GetNextPage ¶
GetNextPage fetches the next page. It returns nil and no error after the last page. A next link on an origin other than the configured base URL is refused with an *UnexpectedResponseError, so the API key never leaves it, and so is a next link back to this page or one fetched before it, which would loop forever.
func (*Page[T]) HasNextPage ¶
HasNextPage reports whether the API announced a next page.
func (*Page[T]) UnmarshalJSON ¶
UnmarshalJSON decodes a page leniently, like every response type.
type PageIterator ¶
type PageIterator[T any] struct { // contains filtered or unexported fields }
PageIterator iterates over the items of every page of a list, fetching the next page when needed:
iter := client.Sessions.ListAutoPaging(ctx, didit.SessionsListParams{})
for iter.Next() {
session := iter.Current()
// ...
}
if err := iter.Err(); err != nil {
// ...
}
With Go 1.23 or later, All returns an iter.Seq2 for a range loop.
func (*PageIterator[T]) All ¶
func (it *PageIterator[T]) All() iter.Seq2[T, error]
All returns an iterator over the remaining items, for a range loop:
for session, err := range client.Sessions.ListAutoPaging(ctx, params).All() {
if err != nil {
return err
}
// ...
}
An error ends the iteration after it is yielded. It needs Go 1.23 or later; use Next, Current and Err on Go 1.22.
func (*PageIterator[T]) Current ¶
func (it *PageIterator[T]) Current() T
Current returns the current item.
func (*PageIterator[T]) Err ¶
func (it *PageIterator[T]) Err() error
Err returns the error that stopped the iteration, if any.
func (*PageIterator[T]) Next ¶
func (it *PageIterator[T]) Next() bool
Next advances to the next item, fetching pages as needed. It returns false at the end or on an error; check Err afterwards.
func (*PageIterator[T]) Page ¶
func (it *PageIterator[T]) Page() *Page[T]
Page returns the page holding the current item.
type PassiveLivenessCheckParams ¶
type PassiveLivenessCheckParams struct {
// Front-facing face image (e.g. a selfie). Allowed extensions: `tiff`, `jpg`,
// `jpeg`, `png`, `webp`. Maximum upload size: **5 MB** (larger files are
// rejected with `400`). Images are automatically compressed to ~0.5 MB before
// processing, so very high resolutions do not improve accuracy. The image
// should contain a single subject - when several faces are present, the largest
// one is evaluated and a `MULTIPLE_FACES_DETECTED` warning is added. Required.
UserImage File `json:"-" form:"user_image"`
// Liveness score threshold (0-100). A computed score **at or below** this value
// emits a `LOW_LIVENESS_SCORE` warning and sets `status` to `Declined`. Default
// `30`; raise it for a stricter anti-spoofing posture. Values outside 0-100
// return `400`.
FaceLivenessScoreDeclineThreshold Opt[float64] `json:"face_liveness_score_decline_threshold"`
// When `true`, the service tries 90-degree rotations of the input and uses the
// orientation that yields the best face detection. Useful when EXIF orientation
// is missing. Adds latency.
RotateImage Opt[bool] `json:"rotate_image"`
// When `true` (default), persists the call as an API-type session, stores the
// face images, emits a `status.updated` webhook, and enrolls the detected face
// into your face search index. When `false`, the call is one-shot - nothing is
// stored and the face is not enrolled. Blocklist and duplicate screening run
// either way.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque identifier (your user id, email, UUID…) stored on the
// persisted session and echoed back. Also used to exclude prior sessions with
// the same `vendor_data` from the duplicate-face check, so re-verifying the
// same user does not raise `DUPLICATED_FACE`.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back. In multipart requests, send it as a JSON-encoded string
// field - it is parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
PassiveLivenessCheckParams holds the parameters of Client.PassiveLiveness.Check.
func (PassiveLivenessCheckParams) MarshalJSON ¶
func (r PassiveLivenessCheckParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PassiveLivenessCheckResponse ¶
type PassiveLivenessCheckResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
Liveness PassiveLivenessCheckResponseLiveness `json:"liveness"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated, e.g.
// `2026-06-12T01:04:42.763237+00:00`.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PassiveLivenessCheckResponse is a response object.
func (*PassiveLivenessCheckResponse) UnmarshalJSON ¶
func (r *PassiveLivenessCheckResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PassiveLivenessCheckResponse leniently.
type PassiveLivenessCheckResponseLiveness ¶
type PassiveLivenessCheckResponseLiveness struct {
// `Declined` when at least one `error`-severity warning fired (no face, low
// score, presentation attack, or a blocklist hit); `Approved` otherwise.
// `warning`/`information` entries (multiple faces, duplicates) never decline on
// their own.
Status PassiveLivenessCheckResponseLivenessStatus `json:"status"`
// Always `PASSIVE` for this endpoint.
Method PassiveLivenessCheckResponseLivenessMethod `json:"method"`
// Liveness confidence (0-100, two decimals) that the image depicts a live
// person rather than a spoof. `null` when the model returned no confidence.
Score float64 `json:"score"`
// Face-detection results for the submitted image.
UserImage PassiveLivenessCheckResponseLivenessUserImage `json:"user_image"`
// Risk signals. `error` severity (declines): `NO_FACE_DETECTED`,
// `LOW_LIVENESS_SCORE` (score at or below the threshold),
// `LIVENESS_FACE_ATTACK`, `FACE_IN_BLOCKLIST`, `POSSIBLE_FACE_IN_BLOCKLIST`.
// `warning` severity (review, no decline): `MULTIPLE_FACES_DETECTED`.
// `information` severity (no decline): `DUPLICATED_FACE`,
// `POSSIBLE_DUPLICATED_FACE` - the same face already appeared in another
// approved session.
Warnings []PassiveLivenessCheckResponseLivenessWarnings `json:"warnings"`
// Capture-quality score of the detected face, normalized to 0-100. `null` when
// the model could not produce a reliable value.
FaceQuality float64 `json:"face_quality"`
// Brightness of the detected face, normalized to 0-100. `null` when
// unavailable.
FaceLuminance float64 `json:"face_luminance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PassiveLivenessCheckResponseLiveness is a response object.
func (*PassiveLivenessCheckResponseLiveness) UnmarshalJSON ¶
func (r *PassiveLivenessCheckResponseLiveness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PassiveLivenessCheckResponseLiveness leniently.
type PassiveLivenessCheckResponseLivenessMethod ¶
type PassiveLivenessCheckResponseLivenessMethod string
PassiveLivenessCheckResponseLivenessMethod: Always `PASSIVE` for this endpoint.
PassiveLivenessCheckResponseLivenessMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const (
PassiveLivenessCheckResponseLivenessMethodPassive PassiveLivenessCheckResponseLivenessMethod = "PASSIVE"
)
Known values of PassiveLivenessCheckResponseLivenessMethod.
type PassiveLivenessCheckResponseLivenessStatus ¶
type PassiveLivenessCheckResponseLivenessStatus string
PassiveLivenessCheckResponseLivenessStatus: `Declined` when at least one `error`-severity warning fired (no face, low score, presentation attack, or a blocklist hit); `Approved` otherwise. `warning`/`information` entries (multiple faces, duplicates) never decline on their own.
PassiveLivenessCheckResponseLivenessStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PassiveLivenessCheckResponseLivenessStatusApproved PassiveLivenessCheckResponseLivenessStatus = "Approved" PassiveLivenessCheckResponseLivenessStatusDeclined PassiveLivenessCheckResponseLivenessStatus = "Declined" )
Known values of PassiveLivenessCheckResponseLivenessStatus.
type PassiveLivenessCheckResponseLivenessUserImage ¶
type PassiveLivenessCheckResponseLivenessUserImage struct {
// One entry per detected face. The largest face is the one evaluated.
Entities []PassiveLivenessCheckResponseLivenessUserImageEntities `json:"entities"`
// Rotation (degrees) that produced the best face detection; non-zero only when
// `rotate_image=true` corrected the orientation.
BestAngle int64 `json:"best_angle"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PassiveLivenessCheckResponseLivenessUserImage: Face-detection results for the submitted image.
func (*PassiveLivenessCheckResponseLivenessUserImage) UnmarshalJSON ¶
func (r *PassiveLivenessCheckResponseLivenessUserImage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PassiveLivenessCheckResponseLivenessUserImage leniently.
type PassiveLivenessCheckResponseLivenessUserImageEntities ¶
type PassiveLivenessCheckResponseLivenessUserImageEntities struct {
// Bounding box of the detected face as `[x_min, y_min, x_max, y_max]` pixel
// coordinates in the processed image.
Bbox []int64 `json:"bbox"`
// Face-detection confidence (0-1).
Confidence float64 `json:"confidence"`
// Model-estimated age of the detected face, in years. Informational only - it
// does not affect the liveness decision.
Age float64 `json:"age"`
// Model-predicted gender of the detected face (`male` or `female`).
// Informational only.
Gender string `json:"gender"`
// Reserved field - always `null` in responses from this endpoint.
Race string `json:"race"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PassiveLivenessCheckResponseLivenessUserImageEntities is a response object.
func (*PassiveLivenessCheckResponseLivenessUserImageEntities) UnmarshalJSON ¶
func (r *PassiveLivenessCheckResponseLivenessUserImageEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PassiveLivenessCheckResponseLivenessUserImageEntities leniently.
type PassiveLivenessCheckResponseLivenessWarnings ¶
type PassiveLivenessCheckResponseLivenessWarnings struct {
// Machine-readable risk code.
Risk PassiveLivenessCheckResponseLivenessWarningsRisk `json:"risk"`
// Feature that raised the warning. Always `LIVENESS` on this endpoint.
Feature PassiveLivenessCheckResponseLivenessWarningsFeature `json:"feature"`
// `null` for most warnings. Blocklist hits carry `{blocklisted_session_id,
// blocklisted_session_number, api_service}`; duplicate hits carry
// `{duplicated_session_id, duplicated_session_number, api_service}` pointing at
// the matching session.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` warnings drive `status` to `Declined`; `warning` and
// `information` entries are advisory and never decline on their own.
LogType PassiveLivenessCheckResponseLivenessWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PassiveLivenessCheckResponseLivenessWarnings is a response object.
func (*PassiveLivenessCheckResponseLivenessWarnings) UnmarshalJSON ¶
func (r *PassiveLivenessCheckResponseLivenessWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PassiveLivenessCheckResponseLivenessWarnings leniently.
type PassiveLivenessCheckResponseLivenessWarningsFeature ¶
type PassiveLivenessCheckResponseLivenessWarningsFeature string
PassiveLivenessCheckResponseLivenessWarningsFeature: Feature that raised the warning. Always `LIVENESS` on this endpoint.
PassiveLivenessCheckResponseLivenessWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
PassiveLivenessCheckResponseLivenessWarningsFeatureLiveness PassiveLivenessCheckResponseLivenessWarningsFeature = "LIVENESS"
)
Known values of PassiveLivenessCheckResponseLivenessWarningsFeature.
type PassiveLivenessCheckResponseLivenessWarningsLogType ¶
type PassiveLivenessCheckResponseLivenessWarningsLogType string
PassiveLivenessCheckResponseLivenessWarningsLogType: Severity. `error` warnings drive `status` to `Declined`; `warning` and `information` entries are advisory and never decline on their own.
PassiveLivenessCheckResponseLivenessWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PassiveLivenessCheckResponseLivenessWarningsLogTypeError PassiveLivenessCheckResponseLivenessWarningsLogType = "error" PassiveLivenessCheckResponseLivenessWarningsLogTypeWarning PassiveLivenessCheckResponseLivenessWarningsLogType = "warning" PassiveLivenessCheckResponseLivenessWarningsLogTypeInformation PassiveLivenessCheckResponseLivenessWarningsLogType = "information" )
Known values of PassiveLivenessCheckResponseLivenessWarningsLogType.
type PassiveLivenessCheckResponseLivenessWarningsRisk ¶
type PassiveLivenessCheckResponseLivenessWarningsRisk string
PassiveLivenessCheckResponseLivenessWarningsRisk: Machine-readable risk code.
PassiveLivenessCheckResponseLivenessWarningsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PassiveLivenessCheckResponseLivenessWarningsRiskNoFaceDetected PassiveLivenessCheckResponseLivenessWarningsRisk = "NO_FACE_DETECTED" PassiveLivenessCheckResponseLivenessWarningsRiskLowLivenessScore PassiveLivenessCheckResponseLivenessWarningsRisk = "LOW_LIVENESS_SCORE" PassiveLivenessCheckResponseLivenessWarningsRiskLivenessFaceAttack PassiveLivenessCheckResponseLivenessWarningsRisk = "LIVENESS_FACE_ATTACK" PassiveLivenessCheckResponseLivenessWarningsRiskMultipleFacesDetected PassiveLivenessCheckResponseLivenessWarningsRisk = "MULTIPLE_FACES_DETECTED" PassiveLivenessCheckResponseLivenessWarningsRiskFaceInBlocklist PassiveLivenessCheckResponseLivenessWarningsRisk = "FACE_IN_BLOCKLIST" PassiveLivenessCheckResponseLivenessWarningsRiskPossibleFaceInBlocklist PassiveLivenessCheckResponseLivenessWarningsRisk = "POSSIBLE_FACE_IN_BLOCKLIST" PassiveLivenessCheckResponseLivenessWarningsRiskDuplicatedFace PassiveLivenessCheckResponseLivenessWarningsRisk = "DUPLICATED_FACE" PassiveLivenessCheckResponseLivenessWarningsRiskPossibleDuplicatedFace PassiveLivenessCheckResponseLivenessWarningsRisk = "POSSIBLE_DUPLICATED_FACE" )
Known values of PassiveLivenessCheckResponseLivenessWarningsRisk.
type PassiveLivenessService ¶
type PassiveLivenessService struct {
// contains filtered or unexported fields
}
PassiveLivenessService holds the passive_liveness operations. Use it through Client.PassiveLiveness.
func (*PassiveLivenessService) Check ¶
func (r *PassiveLivenessService) Check(ctx context.Context, params PassiveLivenessCheckParams, opts ...option.RequestOption) (*PassiveLivenessCheckResponse, error)
Check: Passive Liveness.
Detect presentation attacks - printed photos, screen replays, masks, deepfakes - from a single face image. No video, motion, or user interaction required.
**How it works.** The image is analyzed by a biometric model; the largest detected face is evaluated and a liveness `score` (0-100) is computed. `status` is `Declined` when any `error`-severity warning fires:
- `NO_FACE_DETECTED` - the liveness model found no face,
- `LOW_LIVENESS_SCORE` - score at or below `face_liveness_score_decline_threshold` (default `30`),
- `LIVENESS_FACE_ATTACK` - the model detected a presentation attack,
- `FACE_IN_BLOCKLIST` / `POSSIBLE_FACE_IN_BLOCKLIST` - the face matches an entry on your face blocklist.
`MULTIPLE_FACES_DETECTED` is a `warning`-severity signal (does not decline), and `DUPLICATED_FACE` / `POSSIBLE_DUPLICATED_FACE` are `information`-severity signals that the same face already appeared in another approved session (they never decline). `face_quality` and `face_luminance` (0-100, nullable) describe capture quality.
**Blocklist and duplicate screening.** Runs on **every** call - with or without `save_api_request` - by matching the detected face against your application's face search index. Prior faces with the same `vendor_data` are excluded from the entire index search - so re-running liveness for the same user does not trigger `DUPLICATED_FACE`, and a blocklisted face originating from a session with the caller's own `vendor_data` is also NOT flagged (`FACE_IN_BLOCKLIST` screening is bypassed for same-`vendor_data` faces).
**Billing.** Each `200` response consumes one Passive Liveness API credit (standalone APIs have no free tier). Insufficient balance returns `403` before any image processing.
**Session persistence and face enrollment (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session (Business Console, `GET /v3/session/{sessionId}/decision/` via the returned `request_id`, `status.updated` webhook), the reference image and face crop are stored, and the detected face is **enrolled into your face search index** so later Face Search calls and duplicate checks can match it. When `false`, the call is one-shot: nothing is stored and the face is not enrolled (blocklist/duplicate screening still runs).
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload, no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
POST /v3/passive-liveness/
type PermissionDeniedError ¶
type PermissionDeniedError struct{ *APIStatusError }
PermissionDeniedError is an *APIStatusError with status 403.
func (*PermissionDeniedError) Unwrap ¶
func (e *PermissionDeniedError) Unwrap() error
type PhoneCheckCodeParams ¶
type PhoneCheckCodeParams struct {
// The same phone number used in the matching [`POST
// /v3/phone/send/`](/standalone-apis/phone-send) call, in E.164 format. This is
// what links the check to the send. Required.
PhoneNumber string `json:"phone_number"`
// The OTP the end user received. Must be 4-8 numeric digits - anything else
// returns `400` without consuming an attempt. A well-formed but wrong code
// returns `200` with `status: "Failed"` and consumes one of the 3 attempts.
// Required.
Code string `json:"code"`
// What to do when the same number was already used by a different user
// (different `vendor_data`) of your application. `DECLINE` flips the final
// `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings` and
// fills `phone.matches`.
DuplicatedPhoneNumberAction Opt[PhoneCheckCodeParamsDuplicatedPhoneNumberAction] `json:"duplicated_phone_number_action"`
// What to do when the carrier lookup flags the number as a temporary/burner
// line (`phone.is_disposable`). `DECLINE` flips the final `status` to
// `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
DisposableNumberAction Opt[PhoneCheckCodeParamsDisposableNumberAction] `json:"disposable_number_action"`
// What to do when the carrier lookup reports a virtual line type - `voip`,
// `isp`, or `vpn` (`phone.is_virtual`). `DECLINE` flips the final `status` to
// `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
VoipNumberAction Opt[PhoneCheckCodeParamsVoipNumberAction] `json:"voip_number_action"`
// When true, also look up the social footprint of the number - the messaging,
// social, e-commerce and professional platforms it is registered on. Billed as
// one `phone_social` unit per request in addition to this endpoint's own price.
EnableSocial Opt[bool] `json:"enable_social"`
// Action when the social footprint check finds the number registered on none of
// the platforms it covers. Only NO_ACTION and DECLINE are accepted on this
// endpoint; REVIEW is available on the workflow configuration key of the same
// name.
PhoneNoSocialPresenceAction Opt[PhoneCheckCodeParamsPhoneNoSocialPresenceAction] `json:"phone_no_social_presence_action"`
}
PhoneCheckCodeParams holds the parameters of Client.Phone.CheckCode.
func (PhoneCheckCodeParams) MarshalJSON ¶
func (r PhoneCheckCodeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PhoneCheckCodeParamsDisposableNumberAction ¶
type PhoneCheckCodeParamsDisposableNumberAction string
PhoneCheckCodeParamsDisposableNumberAction: What to do when the carrier lookup flags the number as a temporary/burner line (`phone.is_disposable`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
PhoneCheckCodeParamsDisposableNumberAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneCheckCodeParamsDisposableNumberActionNoAction PhoneCheckCodeParamsDisposableNumberAction = "NO_ACTION" PhoneCheckCodeParamsDisposableNumberActionDecline PhoneCheckCodeParamsDisposableNumberAction = "DECLINE" )
Known values of PhoneCheckCodeParamsDisposableNumberAction.
type PhoneCheckCodeParamsDuplicatedPhoneNumberAction ¶
type PhoneCheckCodeParamsDuplicatedPhoneNumberAction string
PhoneCheckCodeParamsDuplicatedPhoneNumberAction: What to do when the same number was already used by a different user (different `vendor_data`) of your application. `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings` and fills `phone.matches`.
PhoneCheckCodeParamsDuplicatedPhoneNumberAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneCheckCodeParamsDuplicatedPhoneNumberActionNoAction PhoneCheckCodeParamsDuplicatedPhoneNumberAction = "NO_ACTION" PhoneCheckCodeParamsDuplicatedPhoneNumberActionDecline PhoneCheckCodeParamsDuplicatedPhoneNumberAction = "DECLINE" )
Known values of PhoneCheckCodeParamsDuplicatedPhoneNumberAction.
type PhoneCheckCodeParamsPhoneNoSocialPresenceAction ¶
type PhoneCheckCodeParamsPhoneNoSocialPresenceAction string
PhoneCheckCodeParamsPhoneNoSocialPresenceAction: Action when the social footprint check finds the number registered on none of the platforms it covers. Only NO_ACTION and DECLINE are accepted on this endpoint; REVIEW is available on the workflow configuration key of the same name.
PhoneCheckCodeParamsPhoneNoSocialPresenceAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneCheckCodeParamsPhoneNoSocialPresenceActionNoAction PhoneCheckCodeParamsPhoneNoSocialPresenceAction = "NO_ACTION" PhoneCheckCodeParamsPhoneNoSocialPresenceActionDecline PhoneCheckCodeParamsPhoneNoSocialPresenceAction = "DECLINE" )
Known values of PhoneCheckCodeParamsPhoneNoSocialPresenceAction.
type PhoneCheckCodeParamsVoipNumberAction ¶
type PhoneCheckCodeParamsVoipNumberAction string
PhoneCheckCodeParamsVoipNumberAction: What to do when the carrier lookup reports a virtual line type - `voip`, `isp`, or `vpn` (`phone.is_virtual`). `DECLINE` flips the final `status` to `Declined`; `NO_ACTION` records the risk in `phone.warnings`.
PhoneCheckCodeParamsVoipNumberAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneCheckCodeParamsVoipNumberActionNoAction PhoneCheckCodeParamsVoipNumberAction = "NO_ACTION" PhoneCheckCodeParamsVoipNumberActionDecline PhoneCheckCodeParamsVoipNumberAction = "DECLINE" )
Known values of PhoneCheckCodeParamsVoipNumberAction.
type PhoneIntelligence ¶
type PhoneIntelligence struct {
// Normalized 0-100 risk score. Higher is riskier.
Score float64 `json:"score"`
// `Low`, `Medium` or `High`, derived from the score.
PhoneTypeRisk string `json:"phone_type_risk"`
// Inverse of the score, for dashboards that prefer higher is better.
PhoneTrustIndex float64 `json:"phone_trust_index"`
// Stability of the line's network.
NetworkStabilityIndex float64 `json:"network_stability_index"`
// `true` when the number looks disposable or virtual.
IsDisposable bool `json:"is_disposable"`
// `true` when the number has moved carrier.
IsPorted bool `json:"is_ported"`
// `true` when the port happened recently.
IsRecentlyPorted bool `json:"is_recently_ported"`
// Line classification reported by the lookup (e.g., `mobile`).
CarrierType string `json:"carrier_type"`
// Machine-readable codes explaining the score. Values can grow over time, so do
// not reject unknown codes.
ReasonCodes []string `json:"reason_codes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneIntelligence: Normalized phone-intelligence block. Present only when the intelligence add-on ran for this lookup; when present it is also exposed under the `enrichment` alias with identical values.
func (*PhoneIntelligence) UnmarshalJSON ¶
func (r *PhoneIntelligence) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneIntelligence leniently.
type PhoneMatchItem ¶
type PhoneMatchItem struct {
// Session id of the other verification that used this phone number.
SessionID string `json:"session_id"`
// Human-friendly sequential number of that session.
SessionNumber int64 `json:"session_number"`
// `vendor_data` of that session.
VendorData string `json:"vendor_data"`
// When that session was created (`YYYY-MM-DDTHH:MM:SSZ`).
VerificationDate string `json:"verification_date"`
// The matched phone number.
PhoneNumber string `json:"phone_number"`
// Status of that session (e.g., `Approved`, `Declined`, `In Progress`).
Status string `json:"status"`
// Whether the phone number is on your application's blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// For API-type sessions, the standalone API that created it; `null` for regular
// verification sessions.
APIService string `json:"api_service"`
// Where the match was found. Usually `session`; a blocklist hit via an
// organization list entry uses `list_entry`.
Source string `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneMatchItem: Another session of your application that used the same phone number with a different `vendor_data`.
func (*PhoneMatchItem) UnmarshalJSON ¶
func (r *PhoneMatchItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneMatchItem leniently.
type PhoneRiskRequest ¶
type PhoneRiskRequest struct {
// Phone number to score. It is validated and normalized to E.164. Required.
PhoneNumber string `json:"phone_number"`
// Optional ISO 3166-1 alpha-2 or alpha-3 country hint for intelligence
// coverage.
CountryCode Opt[string] `json:"country_code"`
Signals Opt[RiskSignals] `json:"signals"`
// Your stable reference for this request. Stored on the API session and echoed
// in the response.
VendorData Opt[string] `json:"vendor_data"`
// Your non-sensitive JSON metadata. Stored on the API session and echoed in the
// response.
Metadata Opt[map[string]any] `json:"metadata"`
// When true, also look up the social footprint of the number - the messaging,
// social, e-commerce and professional platforms it is registered on. Billed as
// one `phone_social` unit per request in addition to this endpoint's own price.
EnableSocial Opt[bool] `json:"enable_social"`
}
PhoneRiskRequest is a request object.
func (PhoneRiskRequest) MarshalJSON ¶
func (r PhoneRiskRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PhoneRiskResponse ¶
type PhoneRiskResponse struct {
// Id of the API session created for this request. Store it with `vendor_data`
// if you need to correlate the result with later webhooks or console activity.
RequestID string `json:"request_id"`
// Final decision for this API session. Normally `Approved`; the risk evaluation
// can produce `In Review` or `Declined`.
Status PhoneRiskResponseStatus `json:"status"`
// Echo of the `vendor_data` you sent, `null` when you did not send one.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` you sent, `null` when you did not send one.
Metadata map[string]any `json:"metadata"`
// Timestamp of this response.
CreatedAt time.Time `json:"created_at"`
// Normalized phone report, the same block used by Phone Verification responses.
Phone PhoneRiskResponsePhone `json:"phone"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneRiskResponse is a response object.
func (*PhoneRiskResponse) UnmarshalJSON ¶
func (r *PhoneRiskResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneRiskResponse leniently.
type PhoneRiskResponsePhone ¶
type PhoneRiskResponsePhone struct {
// Decision for this phone number. Mirrors the top-level `status`.
Status PhoneRiskResponsePhoneStatus `json:"status"`
// Country calling code with leading `+` (e.g., `+1`).
PhoneNumberPrefix string `json:"phone_number_prefix"`
// National number without the country calling code.
PhoneNumber string `json:"phone_number"`
// Complete number in E.164 format.
FullNumber string `json:"full_number"`
// ISO 3166-1 alpha-2 country of the number.
CountryCode string `json:"country_code"`
// Full country name derived from `country_code`.
CountryName string `json:"country_name"`
// Current network serving the number. `null` when the lookup could not resolve
// a carrier.
Carrier PhoneRiskResponsePhoneCarrier `json:"carrier"`
// `true` when the number belongs to a temporary or burner number service.
IsDisposable bool `json:"is_disposable"`
// `true` when the line type is virtual (`voip`, `isp`, or `vpn`).
IsVirtual bool `json:"is_virtual"`
// OTP channel of the underlying verification. `null` for risk lookups, which
// never send a code.
VerificationMethod string `json:"verification_method"`
// OTP sends for this number. `0` for risk lookups.
VerificationAttempts int64 `json:"verification_attempts"`
// When the number was last verified by an OTP. `null` for risk lookups.
VerifiedAt time.Time `json:"verified_at"`
// Risk warnings recorded for this request. Empty array when there are none.
Warnings []RiskWarning `json:"warnings"`
// Chronological audit trail of the request. Empty array for risk lookups
// without send events.
Lifecycle []RiskLifecycleEvent `json:"lifecycle"`
// Other sessions of your application where the same phone number was used by a
// different user (different `vendor_data`). Up to 5 entries. Empty array when
// there are no matches.
Matches []PhoneMatchItem `json:"matches"`
PhoneIntelligence PhoneIntelligence `json:"phone_intelligence"`
Enrichment PhoneIntelligence `json:"enrichment"`
PhoneSocial PhoneSocialFootprint `json:"phone_social"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneRiskResponsePhone: Normalized phone report, the same block used by Phone Verification responses.
func (*PhoneRiskResponsePhone) UnmarshalJSON ¶
func (r *PhoneRiskResponsePhone) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneRiskResponsePhone leniently.
type PhoneRiskResponsePhoneCarrier ¶
type PhoneRiskResponsePhoneCarrier struct {
// Carrier name. Empty string when the lookup could not identify it.
Name string `json:"name"`
// Line type reported by the lookup: `mobile`, `fixed_line`, `voip`, `isp`,
// `vpn`, `toll_free`, `premium_rate`, or similar.
Type string `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneRiskResponsePhoneCarrier: Current network serving the number. `null` when the lookup could not resolve a carrier.
func (*PhoneRiskResponsePhoneCarrier) UnmarshalJSON ¶
func (r *PhoneRiskResponsePhoneCarrier) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneRiskResponsePhoneCarrier leniently.
type PhoneRiskResponsePhoneStatus ¶
type PhoneRiskResponsePhoneStatus string
PhoneRiskResponsePhoneStatus: Decision for this phone number. Mirrors the top-level `status`.
PhoneRiskResponsePhoneStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneRiskResponsePhoneStatusApproved PhoneRiskResponsePhoneStatus = "Approved" PhoneRiskResponsePhoneStatusInReview PhoneRiskResponsePhoneStatus = "In Review" PhoneRiskResponsePhoneStatusDeclined PhoneRiskResponsePhoneStatus = "Declined" )
Known values of PhoneRiskResponsePhoneStatus.
type PhoneRiskResponseStatus ¶
type PhoneRiskResponseStatus string
PhoneRiskResponseStatus: Final decision for this API session. Normally `Approved`; the risk evaluation can produce `In Review` or `Declined`.
PhoneRiskResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneRiskResponseStatusApproved PhoneRiskResponseStatus = "Approved" PhoneRiskResponseStatusInReview PhoneRiskResponseStatus = "In Review" PhoneRiskResponseStatusDeclined PhoneRiskResponseStatus = "Declined" )
Known values of PhoneRiskResponseStatus.
type PhoneSendCodeParams ¶
type PhoneSendCodeParams struct {
// Recipient phone number in E.164 format - leading `+` and country code (e.g.,
// `+14155552671`). Numbers are validated and normalized to E.164; unparseable
// or invalid numbers return `400` with a `phone_number` field error. Required.
PhoneNumber string `json:"phone_number"`
// OTP delivery options. All fields are optional.
Options Opt[PhoneSendCodeParamsOptions] `json:"options"`
// Optional device and network signals about the end user, forwarded to the
// anti-fraud layer to improve detection of abusive or automated traffic. All
// fields are optional.
Signals Opt[PhoneSendCodeParamsSignals] `json:"signals"`
// Optional caller-controlled identifier (your internal user id, an email, a
// UUID, etc.) persisted on the session and echoed back in the send response,
// the matching check response, webhooks, and the Business Console. Use it to
// correlate Didit's `request_id` with your user record.
VendorData Opt[string] `json:"vendor_data"`
// Optional free-form JSON object persisted on the session and echoed back in
// the send response, the matching check response, webhooks, and the Business
// Console.
Metadata Opt[map[string]any] `json:"metadata"`
}
PhoneSendCodeParams holds the parameters of Client.Phone.SendCode.
func (PhoneSendCodeParams) MarshalJSON ¶
func (r PhoneSendCodeParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PhoneSendCodeParamsOptions ¶
type PhoneSendCodeParamsOptions struct {
// Number of digits in the OTP.
CodeSize Opt[int64] `json:"code_size"`
// BCP-47 locale used to localize the verification message (e.g., `en-US`, `fr`,
// `es`). Invalid formats return `400`.
Locale Opt[string] `json:"locale"`
// Preferred delivery channel. If the channel is unavailable for the destination
// country or number, the message automatically falls back to SMS - the send
// still reports `Success`.
PreferredChannel Opt[PhoneSendCodeParamsOptionsPreferredChannel] `json:"preferred_channel"`
// When `true`, the send is white-labelled: if your application has no SMS
// sender name, the SMS names your white-label public name instead ("123456 is
// your verification code for Acme Bank"). Your SMS sender name, when set, is
// used with or without this flag. Applies to SMS messages, including an SMS
// fallback from another channel; WhatsApp codes are sent with a fixed message
// and are not branded. Defaults to `false`.
UseWhiteLabelCustomization Opt[bool] `json:"use_white_label_customization"`
// The name this code's SMS carries ("123456 is your verification code for Acme
// Bank"), instead of your application's SMS sender name. Free. 1 to 30
// characters: letters, digits, spaces and ' & - ! only, not only digits, with
// single spaces between words; any other value returns `400` and no code is
// sent. Omitted, `null` or blank, your application's SMS sender name is used.
// Each application can start using up to two new names per day (UTC); past
// that, the code is sent with your application's name. Applies to SMS messages,
// including an SMS fallback from another channel; WhatsApp codes are not
// branded.
SMSSenderName Opt[string] `json:"sms_sender_name"`
}
PhoneSendCodeParamsOptions: OTP delivery options. All fields are optional.
func (PhoneSendCodeParamsOptions) MarshalJSON ¶
func (r PhoneSendCodeParamsOptions) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PhoneSendCodeParamsOptionsPreferredChannel ¶
type PhoneSendCodeParamsOptionsPreferredChannel string
PhoneSendCodeParamsOptionsPreferredChannel: Preferred delivery channel. If the channel is unavailable for the destination country or number, the message automatically falls back to SMS - the send still reports `Success`.
PhoneSendCodeParamsOptionsPreferredChannel is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneSendCodeParamsOptionsPreferredChannelWhatsapp PhoneSendCodeParamsOptionsPreferredChannel = "whatsapp" PhoneSendCodeParamsOptionsPreferredChannelSMS PhoneSendCodeParamsOptionsPreferredChannel = "sms" PhoneSendCodeParamsOptionsPreferredChannelTelegram PhoneSendCodeParamsOptionsPreferredChannel = "telegram" PhoneSendCodeParamsOptionsPreferredChannelVoice PhoneSendCodeParamsOptionsPreferredChannel = "voice" PhoneSendCodeParamsOptionsPreferredChannelRcs PhoneSendCodeParamsOptionsPreferredChannel = "rcs" PhoneSendCodeParamsOptionsPreferredChannelViber PhoneSendCodeParamsOptionsPreferredChannel = "viber" PhoneSendCodeParamsOptionsPreferredChannelZalo PhoneSendCodeParamsOptionsPreferredChannel = "zalo" )
Known values of PhoneSendCodeParamsOptionsPreferredChannel.
type PhoneSendCodeParamsSignals ¶
type PhoneSendCodeParamsSignals struct {
// IP address of the end user's device. IPv4 or IPv6.
IP Opt[string] `json:"ip"`
// Unique identifier of the end user's device. Android: `ANDROID_ID`; iOS:
// `identifierForVendor`.
DeviceID Opt[string] `json:"device_id"`
// Platform of the end user's device.
DevicePlatform Opt[PhoneSendCodeParamsSignalsDevicePlatform] `json:"device_platform"`
// Model of the end user's device.
DeviceModel Opt[string] `json:"device_model"`
// Operating-system version of the end user's device.
OsVersion Opt[string] `json:"os_version"`
// Version of your application.
AppVersion Opt[string] `json:"app_version"`
// User agent of the end user's browser or app.
UserAgent Opt[string] `json:"user_agent"`
}
PhoneSendCodeParamsSignals: Optional device and network signals about the end user, forwarded to the anti-fraud layer to improve detection of abusive or automated traffic. All fields are optional.
func (PhoneSendCodeParamsSignals) MarshalJSON ¶
func (r PhoneSendCodeParamsSignals) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type PhoneSendCodeParamsSignalsDevicePlatform ¶
type PhoneSendCodeParamsSignalsDevicePlatform string
PhoneSendCodeParamsSignalsDevicePlatform: Platform of the end user's device.
PhoneSendCodeParamsSignalsDevicePlatform is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneSendCodeParamsSignalsDevicePlatformAndroid PhoneSendCodeParamsSignalsDevicePlatform = "android" PhoneSendCodeParamsSignalsDevicePlatformIos PhoneSendCodeParamsSignalsDevicePlatform = "ios" PhoneSendCodeParamsSignalsDevicePlatformIpados PhoneSendCodeParamsSignalsDevicePlatform = "ipados" PhoneSendCodeParamsSignalsDevicePlatformTvos PhoneSendCodeParamsSignalsDevicePlatform = "tvos" PhoneSendCodeParamsSignalsDevicePlatformWeb PhoneSendCodeParamsSignalsDevicePlatform = "web" )
Known values of PhoneSendCodeParamsSignalsDevicePlatform.
type PhoneService ¶
type PhoneService struct {
// contains filtered or unexported fields
}
PhoneService holds the phone operations. Use it through Client.Phone.
func (*PhoneService) AssessRisk ¶
func (r *PhoneService) AssessRisk(ctx context.Context, params PhoneRiskRequest, opts ...option.RequestOption) (*PhoneRiskResponse, error)
AssessRisk: Risk-score a phone number.
Resolve a phone number and return carrier, line-type, porting, disposable-number, cross-session match, and normalized risk-intelligence signals without sending an OTP. The endpoint creates an API session and returns its id as `request_id`.
**Decision.** The top-level `status` mirrors `phone.status`. It is normally `Approved`; the risk evaluation can produce `In Review` or `Declined`.
**Compatibility aliases.** Live responses expose the normalized intelligence object as both `phone.phone_intelligence` and `phone.enrichment`. The values are identical. New integrations can read `phone.enrichment`. Both keys are absent when no usable intelligence data was returned.
**Billing.** Live calls use Phone Risk API pricing. The request is billable once the lookup starts, even when some best-effort fields are unavailable.
**Sandbox.** Sandbox keys validate the request and return deterministic approved data without sending an OTP, consuming credits, creating a session, or contributing to Networks.
**Authentication.** Send your application's API key in `x-api-key`. Missing or invalid credentials return `403` - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests per minute per API key across all POST/PATCH/DELETE endpoints.
**Social footprint.** Set `enable_social` to `true` to add a `phone_social` block: the online platforms this number is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the number was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `phone_social` unit per request on top of this endpoint's own price.
POST /v3/phone/risk/
func (*PhoneService) CheckCode ¶
func (r *PhoneService) CheckCode(ctx context.Context, params PhoneCheckCodeParams, opts ...option.RequestOption) (*PhoneVerificationCheckResponse, error)
CheckCode: Check Phone Code.
Verify the OTP delivered by [`POST /v3/phone/send/`](/standalone-apis/phone-send) and get the final verification result plus phone intelligence: carrier name and line type, virtual (VoIP) and disposable flags, and duplicate usage of the number across your sessions.
**How the check finds the verification.** Matching is by your application plus the E.164 `phone_number` - `request_id` is not an input. The most recent pending verification created within the last **5 minutes** is checked. If there is none (never sent, already finalized, or older than 5 minutes) the endpoint returns `200` with `status: "Expired or Not Found"`.
**Attempt budget.** Each verification allows **3 code attempts**. The first two wrong codes return `status: "Failed"` with the attempts remaining and `phone: null`; the third wrong code finalizes the verification as `Declined` with a `VERIFICATION_CODE_ATTEMPTS_EXCEEDED` warning and returns the full phone report.
**Outcomes.** `Approved` - correct code and no declining risk. `Declined` - terminal: the code was correct but a declining risk matched (a `DECLINE` action below, a blocklisted or high-risk number), or the attempt budget was exhausted. `Failed` - wrong code, attempts remaining. `Expired or Not Found` - nothing to check. On `Approved`/`Declined` the `request_id` equals the send's `request_id` (the session id) and `phone` carries the full report (`carrier`, `is_virtual`, `is_disposable`, `warnings`, `lifecycle`, `matches`); on `Failed` and `Expired or Not Found` the `request_id` is a one-off random UUID.
**Risk actions.** `duplicated_phone_number_action`, `disposable_number_action`, and `voip_number_action` decide what happens when the corresponding risk is detected on a correct code: `DECLINE` flips the final status to `Declined`; `NO_ACTION` (default) records the risk in `phone.warnings` without affecting the status.
**Billing.** Checks are free - delivery is billed on the send side (see [Phone Verification Pricing](/getting-started/phone-verification-pricing)).
**Session persistence.** A finalized check updates the session created by the send (visible in the Business Console, queryable via `GET /v3/session/{sessionId}/decision/`) and fires a `status.updated` webhook.
**Sandbox.** Sandbox API keys skip all processing: any well-formed code (4-8 digits, `123456` included) returns a static `Approved` payload with a simplified flat `phone` object (`status`, `phone_number`, `country_code`, `carrier_name`, `line_type`, `flags`); malformed input still returns `400`. Nothing is persisted.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limits.** Shared write budget of 300 requests/min per API key, plus the upstream anti-abuse cap of 4 attempts per number per hour; exceeding either returns `429`.
**Social footprint.** Set `enable_social` to `true` to add a `phone_social` block: the online platforms this number is registered on, with per-category counts and any profile details available. `profiles_registered: 0` means the platforms were checked and the number was found on none of them - a valid, billable answer. The block is absent when the add-on was not requested or the check could not be completed, and it is not billed in that case. Billing adds one `phone_social` unit per request on top of this endpoint's own price.
POST /v3/phone/check/
func (*PhoneService) SendCode ¶
func (r *PhoneService) SendCode(ctx context.Context, params PhoneSendCodeParams, opts ...option.RequestOption) (*PhoneVerificationSendResponse, error)
SendCode: Send Phone Code.
Send a one-time passcode (OTP) to a phone number over WhatsApp, SMS, or another supported channel, then verify it with [`POST /v3/phone/check/`](/standalone-apis/phone-check).
**How send and check pair up.** Verification state is keyed by your application plus the E.164 `phone_number` - the check call does not take `request_id`. Each new send creates a pending verification that lives for **5 minutes**: call the check with the same number and the code the user received before the window closes. Calling send again for the same number while a verification is pending re-sends a code for that same verification (`status: "Retry"`, same `request_id`). At most one retry is attached this way (two sends total); a further send starts a fresh verification with a new `request_id`. The 5-minute window is measured from the first send and is not extended by retries.
**Delivery channels.** `options.preferred_channel` selects the channel (`whatsapp` by default; `sms`, `telegram`, `voice`, `rcs`, `viber`, and `zalo` are also supported). When the preferred channel is unavailable for the destination country or number, delivery automatically falls back to SMS - the send still reports `Success`, and the channel actually used is reported by the check response (`phone.verification_method` and the `lifecycle` events).
**Branding.** SMS codes carry your application's SMS sender name, set in the Business Console, at no extra cost. Pass `options.sms_sender_name` to sign one code with another name, or `options.use_white_label_customization: true` to fall back to your white-label public name when no sender name is set. WhatsApp codes use a fixed message; connect your own WhatsApp Business number in the Business Console to send them from your business name and number, billed at the Didit fee only.
**Send statuses.** `Success` - OTP sent for a new verification; `Retry` - OTP re-sent for the pending verification; `Blocked` - the anti-fraud layer refused to send (see `reason`, e.g. `repeated_attempts`, `suspicious`, `spam`). A `Blocked` send immediately finalizes the verification as `Declined` with a high-risk warning, so a follow-up check returns `Expired or Not Found`.
**Billing.** The price depends on the destination country and the channel that actually delivers the message - see [Phone Verification Pricing](/getting-started/phone-verification-pricing). Only `Blocked` sends are guaranteed free: any other unbilled send attempt is charged at verification finalization or expiration, even if delivery was never confirmed or the delivery provider reported the message undeliverable. Checks are always free. As an anti-abuse measure, phone verification is disabled until your organization's first top-up (`403`).
**Session persistence.** Every new verification is persisted as an API-type session: `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/`, the verification appears in the Business Console, and `status.updated` webhooks fire as it progresses.
**Sandbox.** Sandbox API keys skip delivery and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Success` payload with a random `request_id`; no message is sent and nothing is persisted. Use code `123456` on the sandbox check.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limits.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints, plus an anti-abuse cap of 4 send attempts per phone number per hour; exceeding either returns `429`.
POST /v3/phone/send/
type PhoneSocialFootprint ¶
type PhoneSocialFootprint struct {
// Platforms where the phone number is confirmed registered.
ProfilesRegistered int64 `json:"profiles_registered"`
// Platforms evaluated for registration.
ProfilesChecked int64 `json:"profiles_checked"`
// Platforms that returned an associated name.
NamesFound int64 `json:"names_found"`
// Platforms that returned a profile photo.
PhotosFound int64 `json:"photos_found"`
// Communication platforms with detected presence.
CommunicationBreadth int64 `json:"communication_breadth"`
// Distinct platform categories with detected presence.
DigitalFootprintDiversity int64 `json:"digital_footprint_diversity"`
// Composite digital-maturity indicator, 0-10.
DigitalSophisticationIndex int64 `json:"digital_sophistication_index"`
// Profile-richness indicator, 0-10.
EngagementDepthIndex int64 `json:"engagement_depth_index"`
// Free vs paid platform mix, 0-10.
SubscriptionAffordabilityIndex int64 `json:"subscription_affordability_index"`
// Registrations on free platforms.
FreePlatforms int64 `json:"free_platforms"`
// Registrations on fully paid platforms.
FullPaidPlatforms int64 `json:"full_paid_platforms"`
// Registrations on freemium platforms.
PartialPaidPlatforms int64 `json:"partial_paid_platforms"`
// Completeness of the WhatsApp profile. Phone only; null for email.
WhatsappProfileCompleteness PhoneSocialFootprintWhatsappProfileCompleteness `json:"whatsapp_profile_completeness"`
// Platforms where registration is confirmed.
RegisteredPlatforms []SocialFootprintPlatform `json:"registered_platforms"`
// Platforms checked with a negative result.
NotRegisteredPlatforms []SocialFootprintPlatform `json:"not_registered_platforms"`
// Registered count and ratio per platform category.
Categories map[string]SocialFootprintCategorySummary `json:"categories"`
// Per-platform profile details, keyed by platform, when the platform exposes
// them.
Profiles map[string]SocialFootprintProfile `json:"profiles"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneSocialFootprint: Social footprint of the phone number: the online platforms it is registered on. Present only when `enable_social` was set and the check completed. Every count may be null when no data was returned for it. `profiles_registered: 0` means the platforms were checked and the phone number was found on none of them - a valid, billable answer and a common synthetic-identity signal.
func (*PhoneSocialFootprint) UnmarshalJSON ¶
func (r *PhoneSocialFootprint) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneSocialFootprint leniently.
type PhoneSocialFootprintWhatsappProfileCompleteness ¶
type PhoneSocialFootprintWhatsappProfileCompleteness string
PhoneSocialFootprintWhatsappProfileCompleteness: Completeness of the WhatsApp profile. Phone only; null for email.
PhoneSocialFootprintWhatsappProfileCompleteness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneSocialFootprintWhatsappProfileCompletenessBasic PhoneSocialFootprintWhatsappProfileCompleteness = "Basic" PhoneSocialFootprintWhatsappProfileCompletenessPartial PhoneSocialFootprintWhatsappProfileCompleteness = "Partial" PhoneSocialFootprintWhatsappProfileCompletenessComplete PhoneSocialFootprintWhatsappProfileCompleteness = "Complete" PhoneSocialFootprintWhatsappProfileCompletenessNotPresent PhoneSocialFootprintWhatsappProfileCompleteness = "Not Present" )
Known values of PhoneSocialFootprintWhatsappProfileCompleteness.
type PhoneVerificationCheckResponse ¶
type PhoneVerificationCheckResponse struct {
// On `Approved`/`Declined`: the session id of the matched verification -
// identical to the `request_id` returned by `POST /v3/phone/send/`. On `Failed`
// and `Expired or Not Found`: a random one-off UUID that cannot be looked up
// later.
RequestID string `json:"request_id"`
// `Approved` - correct code, no declining risk. `Declined` - terminal: a
// declining risk matched or the attempt budget (3) was exhausted. `Failed` -
// wrong code, attempts remaining. `Expired or Not Found` - no pending
// verification for this number in the last 5 minutes.
Status PhoneVerificationCheckResponseStatus `json:"status"`
// Human-readable explanation of the outcome, including the number of attempts
// remaining after a wrong code.
Message string `json:"message"`
// Full phone report. Present (non-null) only on finalized outcomes
// (`Approved`/`Declined`); `null` on `Failed` and absent on `Expired or Not
// Found`.
Phone PhoneVerificationCheckResponsePhone `json:"phone"`
// `vendor_data` of the matched verification's session. `null` on `Expired or
// Not Found`.
VendorData string `json:"vendor_data"`
// `metadata` of the matched verification's session. `null` on `Expired or Not
// Found`.
Metadata map[string]any `json:"metadata"`
// Timestamp of this check response.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponse is a response object.
func (*PhoneVerificationCheckResponse) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponse leniently.
type PhoneVerificationCheckResponsePhone ¶
type PhoneVerificationCheckResponsePhone struct {
// Final status of the phone verification. Matches the top-level `status` for
// finalized checks.
Status PhoneVerificationCheckResponsePhoneStatus `json:"status"`
// Country calling code with leading `+` (e.g., `+1`).
PhoneNumberPrefix string `json:"phone_number_prefix"`
// National number without the country calling code.
PhoneNumber string `json:"phone_number"`
// Complete number in E.164 format.
FullNumber string `json:"full_number"`
// ISO 3166-1 alpha-2 country of the number.
CountryCode string `json:"country_code"`
// Full country name derived from `country_code`.
CountryName string `json:"country_name"`
// Current network serving the number, from the carrier lookup run at
// finalization.
Carrier PhoneVerificationCheckResponsePhoneCarrier `json:"carrier"`
// `true` when the number belongs to a temporary/burner number service.
IsDisposable bool `json:"is_disposable"`
// `true` when the line type is virtual (`voip`, `isp`, or `vpn`).
IsVirtual bool `json:"is_virtual"`
// Channel that actually delivered the OTP once delivery is confirmed (e.g.,
// `whatsapp`, `sms`); until then, the requested channel.
VerificationMethod string `json:"verification_method"`
// Number of OTP sends for this verification (1, or 2 after a retry).
VerificationAttempts int64 `json:"verification_attempts"`
// When the correct code was entered. `null` if the verification was never
// approved.
VerifiedAt time.Time `json:"verified_at"`
// Risk warnings recorded during the verification (duplicate, disposable, VoIP,
// attempts exceeded, blocklist, etc.). Empty array when there are none.
Warnings []PhoneVerificationCheckResponsePhoneWarnings `json:"warnings"`
// Chronological audit trail of the verification. Event `type` is one of
// `PHONE_VERIFICATION_MESSAGE_SENT`, `PHONE_VERIFICATION_RETRY_MESSAGE_SENT`,
// `PHONE_VERIFICATION_BLOCKED`, `PHONE_DELIVERY_DELIVERED`,
// `PHONE_DELIVERY_UNDELIVERABLE`, `VALID_CODE_ENTERED`, `INVALID_CODE_ENTERED`,
// `PHONE_VERIFICATION_APPROVED`, `PHONE_VERIFICATION_DECLINED`,
// `PHONE_VERIFICATION_IN_REVIEW`, `PHONE_VERIFICATION_EXPIRED`.
Lifecycle []PhoneVerificationCheckResponsePhoneLifecycle `json:"lifecycle"`
// Other sessions of your application (KYC, KYB, or API) where the same phone
// number was used by a different user (different `vendor_data`). Up to 5
// entries, a synthetic list-entry blocklist match first when present
// (session-derived matches keep query order). Empty array when there are no
// matches.
Matches []PhoneVerificationCheckResponsePhoneMatches `json:"matches"`
PhoneSocial PhoneSocialFootprint `json:"phone_social"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponsePhone: Full phone report. Present (non-null) only on finalized outcomes (`Approved`/`Declined`); `null` on `Failed` and absent on `Expired or Not Found`.
func (*PhoneVerificationCheckResponsePhone) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponsePhone) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponsePhone leniently.
type PhoneVerificationCheckResponsePhoneCarrier ¶
type PhoneVerificationCheckResponsePhoneCarrier struct {
// Carrier name. Empty string when the lookup could not identify it.
Name string `json:"name"`
// Line type reported by the lookup: `mobile`, `fixed_line`, `voip`, `isp`,
// `vpn`, `toll_free`, `premium_rate`, `pager`, `payphone`, `satellite`,
// `service`, `shared_cost`, `short_codes_commercial`, `calling_cards`,
// `local_rate`, `universal_access`, `voice_mail`, `other`, or `unknown`.
Type string `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponsePhoneCarrier: Current network serving the number, from the carrier lookup run at finalization.
func (*PhoneVerificationCheckResponsePhoneCarrier) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponsePhoneCarrier) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponsePhoneCarrier leniently.
type PhoneVerificationCheckResponsePhoneLifecycle ¶
type PhoneVerificationCheckResponsePhoneLifecycle struct {
// Event type.
Type string `json:"type"`
// When the event happened.
Timestamp time.Time `json:"timestamp"`
// Event-specific payload. Send events: `{status, reason, channel,
// actual_channel}` (`actual_channel` is filled once delivery is confirmed).
// Delivery events: `{channel, status}`. Code-entry events: `{code_tried,
// status}`. Final-status events: `null`, or `{reason}` when declined or in
// review.
Details map[string]any `json:"details"`
// USD amount billed for this event. Non-zero only on send events (the delivery
// price); 0 for code entries, delivery confirmations, and status events.
Fee float64 `json:"fee"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponsePhoneLifecycle is a response object.
func (*PhoneVerificationCheckResponsePhoneLifecycle) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponsePhoneLifecycle) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponsePhoneLifecycle leniently.
type PhoneVerificationCheckResponsePhoneMatches ¶
type PhoneVerificationCheckResponsePhoneMatches struct {
// Session id of the other verification that used this phone number.
SessionID string `json:"session_id"`
// Human-friendly sequential number of that session.
SessionNumber int64 `json:"session_number"`
// `vendor_data` of that session.
VendorData string `json:"vendor_data"`
// When that session was created (`YYYY-MM-DDTHH:MM:SSZ`).
VerificationDate string `json:"verification_date"`
// The matched phone number.
PhoneNumber string `json:"phone_number"`
// Status of that session (e.g., `Approved`, `Declined`, `In Progress`).
Status string `json:"status"`
// Whether the phone number is on your application's blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// For API-type sessions, the standalone API that created it (e.g.,
// `PHONE_VERIFICATION`); `null` for regular verification sessions.
APIService string `json:"api_service"`
// Where the match was found. Usually `session`; a blocklist hit via an
// organization list entry prepends a synthetic match with `source:
// "list_entry"` and null `session_id`/`session_number`.
Source string `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponsePhoneMatches is a response object.
func (*PhoneVerificationCheckResponsePhoneMatches) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponsePhoneMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponsePhoneMatches leniently.
type PhoneVerificationCheckResponsePhoneStatus ¶
type PhoneVerificationCheckResponsePhoneStatus string
PhoneVerificationCheckResponsePhoneStatus: Final status of the phone verification. Matches the top-level `status` for finalized checks.
PhoneVerificationCheckResponsePhoneStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneVerificationCheckResponsePhoneStatusApproved PhoneVerificationCheckResponsePhoneStatus = "Approved" PhoneVerificationCheckResponsePhoneStatusDeclined PhoneVerificationCheckResponsePhoneStatus = "Declined" PhoneVerificationCheckResponsePhoneStatusInReview PhoneVerificationCheckResponsePhoneStatus = "In Review" PhoneVerificationCheckResponsePhoneStatusNotFinished PhoneVerificationCheckResponsePhoneStatus = "Not Finished" PhoneVerificationCheckResponsePhoneStatusExpired PhoneVerificationCheckResponsePhoneStatus = "Expired" )
Known values of PhoneVerificationCheckResponsePhoneStatus.
type PhoneVerificationCheckResponsePhoneWarnings ¶
type PhoneVerificationCheckResponsePhoneWarnings struct {
// Feature that produced the warning. Always `PHONE` here.
Feature string `json:"feature"`
// Machine-readable risk code.
Risk string `json:"risk"`
// Risk-specific context (e.g., the duplicated session id for duplicate risks).
// `null` when the risk carries no extra data.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` risks decline the verification, `warning` flags it for
// review, `information` is recorded without affecting the status.
LogType PhoneVerificationCheckResponsePhoneWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationCheckResponsePhoneWarnings is a response object.
func (*PhoneVerificationCheckResponsePhoneWarnings) UnmarshalJSON ¶
func (r *PhoneVerificationCheckResponsePhoneWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationCheckResponsePhoneWarnings leniently.
type PhoneVerificationCheckResponsePhoneWarningsLogType ¶
type PhoneVerificationCheckResponsePhoneWarningsLogType string
PhoneVerificationCheckResponsePhoneWarningsLogType: Severity. `error` risks decline the verification, `warning` flags it for review, `information` is recorded without affecting the status.
PhoneVerificationCheckResponsePhoneWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneVerificationCheckResponsePhoneWarningsLogTypeError PhoneVerificationCheckResponsePhoneWarningsLogType = "error" PhoneVerificationCheckResponsePhoneWarningsLogTypeWarning PhoneVerificationCheckResponsePhoneWarningsLogType = "warning" PhoneVerificationCheckResponsePhoneWarningsLogTypeInformation PhoneVerificationCheckResponsePhoneWarningsLogType = "information" )
Known values of PhoneVerificationCheckResponsePhoneWarningsLogType.
type PhoneVerificationCheckResponseStatus ¶
type PhoneVerificationCheckResponseStatus string
PhoneVerificationCheckResponseStatus: `Approved` - correct code, no declining risk. `Declined` - terminal: a declining risk matched or the attempt budget (3) was exhausted. `Failed` - wrong code, attempts remaining. `Expired or Not Found` - no pending verification for this number in the last 5 minutes.
PhoneVerificationCheckResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneVerificationCheckResponseStatusApproved PhoneVerificationCheckResponseStatus = "Approved" PhoneVerificationCheckResponseStatusDeclined PhoneVerificationCheckResponseStatus = "Declined" PhoneVerificationCheckResponseStatusFailed PhoneVerificationCheckResponseStatus = "Failed" PhoneVerificationCheckResponseStatusExpiredOrNotFound PhoneVerificationCheckResponseStatus = "Expired or Not Found" )
Known values of PhoneVerificationCheckResponseStatus.
type PhoneVerificationSendResponse ¶
type PhoneVerificationSendResponse struct {
// Session id of the verification. A `Retry` send returns the same `request_id`
// as the original send. This id appears in the Business Console, is returned
// again by a finalized `POST /v3/phone/check/`, and can be passed to `GET
// /v3/session/{sessionId}/decision/`.
RequestID string `json:"request_id"`
// `Success` - OTP sent to a new verification. `Retry` - OTP re-sent for the
// pending verification created by a previous send. `Blocked` - the anti-fraud
// layer refused to send; the verification is immediately finalized as
// `Declined` and nothing is billed.
Status PhoneVerificationSendResponseStatus `json:"status"`
// Why a send was `Blocked` (e.g., `repeated_attempts`, `suspicious`, `spam`).
// `null` on `Success` and `Retry`.
Reason string `json:"reason"`
// Echo of the `vendor_data` stored on the session (from the first send).
VendorData string `json:"vendor_data"`
// Echo of the `metadata` stored on the session (from the first send).
Metadata map[string]any `json:"metadata"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
PhoneVerificationSendResponse is a response object.
func (*PhoneVerificationSendResponse) UnmarshalJSON ¶
func (r *PhoneVerificationSendResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes PhoneVerificationSendResponse leniently.
type PhoneVerificationSendResponseStatus ¶
type PhoneVerificationSendResponseStatus string
PhoneVerificationSendResponseStatus: `Success` - OTP sent to a new verification. `Retry` - OTP re-sent for the pending verification created by a previous send. `Blocked` - the anti-fraud layer refused to send; the verification is immediately finalized as `Declined` and nothing is billed.
PhoneVerificationSendResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( PhoneVerificationSendResponseStatusSuccess PhoneVerificationSendResponseStatus = "Success" PhoneVerificationSendResponseStatusRetry PhoneVerificationSendResponseStatus = "Retry" PhoneVerificationSendResponseStatusBlocked PhoneVerificationSendResponseStatus = "Blocked" )
Known values of PhoneVerificationSendResponseStatus.
type PricingService ¶
type PricingService struct {
// contains filtered or unexported fields
}
PricingService holds the pricing operations. Use it through Client.Pricing.
func (*PricingService) BankVerification ¶
func (r *PricingService) BankVerification(ctx context.Context, opts ...option.RequestOption) (*BankVerificationPricing, error)
BankVerification: Get bank verification prices (public, unauthenticated).
Returns the list price of each Bank Verification method in every country: bank sign-in with its balance and transactions add-ons, and the account check. Use it to quote a bank step before you build a workflow, or to show bank prices in your own product.
Public: send no auth header. The response contains no organization data and is the same for every caller. It is cached publicly for one hour and carries an `ETag`, so send `If-None-Match` to get a `304 Not Modified` when nothing changed.
A method is `available` only where Didit serves it in production today, and its `price_usd` is `null` everywhere else, so the feed never shows a price you cannot buy. `available: false` covers a country with no approved price, a method the country does not support, and a route that is not switched on yet.
These are list prices before your plan discount. Your plan discount applies to the whole bank price, and a negotiated or contract price replaces the list price for your organization.
GET /v3/organization/bank-verification-pricing/
type ProofOfAddressService ¶
type ProofOfAddressService struct {
// contains filtered or unexported fields
}
ProofOfAddressService holds the proof_of_address operations. Use it through Client.ProofOfAddress.
func (*ProofOfAddressService) Verify ¶
func (r *ProofOfAddressService) Verify(ctx context.Context, params ProofOfAddressVerifyParams, opts ...option.RequestOption) (*ProofOfAddressVerifyResponse, error)
Verify: Proof of Address (document OCR + address checks).
Extract and validate a Proof of Address document - utility bills, bank statements, and government-issued documents - in one call. Returns the issuer, issue/expiry dates, the holder name, the raw and parsed/geocoded address, an `Approved`/`Declined` `status`, and a `warnings` list explaining every issue found.
**Latency.** Extraction is LLM-based: typical calls take **5-15 seconds**, multi-page PDFs up to **~30 seconds**. Configure a client timeout of **at least 45 seconds** and do not retry before the call completes.
**How it works.** The document (image or PDF, up to 15 MB; encrypted PDFs require `document_password`) is classified into a document type and subtype (e.g. `UTILITY_BILL` / `WATER_BILL`), and the issuer, dates, holder name, and address are extracted with LLM-based extraction. The address is parsed and geocoded into `poa_parsed_address`. PDF/EXIF forensics screen for tampering - modification after digital signing, known PDF editors, overlay-text manipulation, suspicious re-exports - surfacing `SUSPECTED_DOCUMENT_MANIPULATION` or `DOCUMENT_METADATA_MISMATCH`. Document age is validated against `poa_document_age_months`, and the language against `poa_languages_allowed`. If you pass `expected_address`, `expected_country`, or `expected_first_name`/`expected_last_name`, the extracted values are cross-checked and mismatches are flagged.
**Decision logic.** `status` is `Approved` unless at least one warning resolves to a decline. Hard failures always decline: `MISSING_ADDRESS_INFORMATION`, `POA_DOCUMENT_EXPIRED`, `INVALID_DOCUMENT_TYPE`, `UNABLE_TO_VALIDATE_DOCUMENT_AGE`, plus `UNABLE_TO_EXTRACT_ISSUE_DATE` and `POA_NAME_NOT_DETECTED` (not configurable on this endpoint). Five risk groups are configurable per request via the `poa_*_action` options (`DECLINE` or `NO_ACTION`, all defaulting to `DECLINE`). `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION` and `UNPARSABLE_OR_INVALID_ADDRESS` are informational on this endpoint and never decline. A document that cannot be processed at all returns `400`; a readable but problematic document returns `200` with `status: "Declined"` - always inspect `poa.status` and `poa.warnings`, not just the HTTP code.
**Billing.** Each `200` response consumes one Proof of Address API credit (standalone APIs have no free tier). When the organization's balance cannot cover the call, the endpoint returns `403` with the not-enough-credits error before any document processing.
**Session persistence (`save_api_request`, default `true`).** When `true`, the call is persisted as an API-type session: it appears in the Business Console, the uploaded document is stored, the returned `request_id` is a real session id you can pass to `GET /v3/session/{sessionId}/decision/` (the decision additionally exposes `document_file` and the `document_metadata` forensics, which this response omits), and a `status.updated` webhook is emitted. When `false`, nothing is stored and `request_id` is a one-off correlation UUID that cannot be looked up later.
**Sandbox.** Sandbox API keys skip all processing and billing: after request validation (malformed input still returns `400`), the endpoint returns a static `Approved` mock payload (a fictional "Sandbox Power Co." electricity bill), no session is persisted, and no credits are consumed.
**Authentication.** Send your application's API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`) - this API never returns `401`.
**Rate limit.** Shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
Note: `FUTURE_ISSUE_DATE` and `POOR_DOCUMENT_QUALITY` exist in workflow sessions but are never produced by this standalone endpoint - a future-dated document is not auto-declined here.
POST /v3/poa/
type ProofOfAddressVerifyParams ¶
type ProofOfAddressVerifyParams struct {
// The Proof of Address document. Allowed extensions: `tiff`, `jpg`, `jpeg`,
// `png`, `pdf`, `webp`. Maximum upload size: **15 MB** (larger files are
// rejected with `400`). Multi-page PDFs are supported (expect higher latency);
// encrypted PDFs require `document_password`. Images are automatically
// compressed before processing. Required.
Document File `json:"-" form:"document"`
// Password to decrypt `document` when it is an encrypted PDF. Sending an
// encrypted PDF without (or with a wrong) password returns `400`.
DocumentPassword Opt[string] `json:"document_password"`
// Address to verify against the document. It is geocoded and compared with the
// extracted address; a mismatch (or an expected address that cannot be
// geocoded/verified) adds `ADDRESS_MISMATCH_WITH_PROVIDED`, governed by
// `poa_address_mismatch_action`. The geocoded form is echoed back in
// `expected_details_formatted_address` / `expected_details_parsed_address`.
ExpectedAddress Opt[string] `json:"expected_address"`
// Country to verify against the document (ISO 3166-1 code, e.g. `ARG` or `AR`).
// A mismatch with the document's country adds
// `POA_COUNTRY_MISMATCH_WITH_PROVIDED`, governed by
// `poa_address_mismatch_action`.
ExpectedCountry Opt[string] `json:"expected_country"`
// First name to verify against `name_on_document` (fuzzy match,
// transliteration-aware). A score below the match threshold adds
// `NAME_MISMATCH_WITH_PROVIDED`, governed by `poa_address_mismatch_action`.
ExpectedFirstName Opt[string] `json:"expected_first_name"`
// Last name to verify against `name_on_document`, combined with
// `expected_first_name` for the match score.
ExpectedLastName Opt[string] `json:"expected_last_name"`
// Comma-separated list of accepted document languages as ISO 639-1 codes (e.g.
// `en,es,fr`). When omitted or blank, **all 51 supported languages** are
// accepted. A document in a language outside the list adds
// `UNSUPPORTED_DOCUMENT_LANGUAGE` (governed by
// `poa_unsupported_language_action`); an unknown code in the list returns `400`
// with the full set of supported codes.
POALanguagesAllowed Opt[string] `json:"poa_languages_allowed"`
// Comma-separated `key:value` pairs setting the maximum document age in months
// per document type - keys: `utility_bill`, `bank_statement`,
// `government_issued_document`, `other_poa_document`; values: `1`-`120`, or
// `-1` for unlimited (no age check). Defaults when omitted:
// `utility_bill:3,bank_statement:3,government_issued_document:12,other_poa_document:12`.
// A document older than its limit declines with `POA_DOCUMENT_EXPIRED`.
// **Caution:** when you provide this field, list *every* type you accept -
// omitted types are treated as not accepted (informational
// `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION`) and their age check is skipped.
POADocumentAgeMonths Opt[string] `json:"poa_document_age_months"`
// Accepted but **currently not applied** - name-mismatch warnings
// (`NAME_MISMATCH_WITH_PROVIDED`) follow `poa_address_mismatch_action` instead.
// Set `poa_address_mismatch_action` to control both name and address mismatch
// behavior.
POANameMismatchAction Opt[ProofOfAddressVerifyParamsPOANameMismatchAction] `json:"poa_name_mismatch_action"`
// What to do on file-integrity problems - in practice only
// `DOCUMENT_METADATA_MISMATCH` is produced by this endpoint.
POADocumentIssuesAction Opt[ProofOfAddressVerifyParamsPOADocumentIssuesAction] `json:"poa_document_issues_action"`
// What to do when document manipulation is suspected
// (`SUSPECTED_DOCUMENT_MANIPULATION`) - e.g. the PDF was modified after digital
// signing, processed by a known PDF editor, shows overlay-text manipulation, or
// has inconsistent EXIF dates.
POADocumentAuthenticityAction Opt[ProofOfAddressVerifyParamsPOADocumentAuthenticityAction] `json:"poa_document_authenticity_action"`
// What to do when the document language is outside `poa_languages_allowed`
// (`UNSUPPORTED_DOCUMENT_LANGUAGE`).
POAUnsupportedLanguageAction Opt[ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction] `json:"poa_unsupported_language_action"`
// What to do when the extracted details disagree with the `expected_*` fields:
// `ADDRESS_MISMATCH_WITH_PROVIDED`, `NAME_MISMATCH_WITH_PROVIDED`, and
// `POA_COUNTRY_MISMATCH_WITH_PROVIDED` all follow this action.
POAAddressMismatchAction Opt[ProofOfAddressVerifyParamsPOAAddressMismatchAction] `json:"poa_address_mismatch_action"`
// What to do when no issuing company/organization can be identified on the
// document (`ISSUER_NOT_IDENTIFIED`).
POAIssuerNotIdentifiedAction Opt[ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction] `json:"poa_issuer_not_identified_action"`
// When `true` (default), persists the call as an API-type session - visible in
// the Business Console, retrievable via `GET /v3/session/{sessionId}/decision/`
// using the returned `request_id`, announced through a `status.updated`
// webhook, and with the uploaded document stored. When `false`, nothing is
// stored and `request_id` is a transient UUID for response correlation only.
SaveAPIRequest Opt[bool] `json:"save_api_request"`
// Optional opaque string (your internal user id, email, UUID…) stored on the
// persisted session and echoed back in the response. Use it to correlate API
// calls with your own records and to filter sessions later.
VendorData Opt[string] `json:"vendor_data"`
// Optional JSON object stored with the session (when `save_api_request=true`)
// and echoed back in the response. In multipart requests, send it as a
// JSON-encoded string field (e.g. `metadata={"flow":"onboarding"}`) - it is
// parsed into an object.
Metadata Opt[map[string]any] `json:"metadata"`
}
ProofOfAddressVerifyParams holds the parameters of Client.ProofOfAddress.Verify.
func (ProofOfAddressVerifyParams) MarshalJSON ¶
func (r ProofOfAddressVerifyParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ProofOfAddressVerifyParamsPOAAddressMismatchAction ¶
type ProofOfAddressVerifyParamsPOAAddressMismatchAction string
ProofOfAddressVerifyParamsPOAAddressMismatchAction: What to do when the extracted details disagree with the `expected_*` fields: `ADDRESS_MISMATCH_WITH_PROVIDED`, `NAME_MISMATCH_WITH_PROVIDED`, and `POA_COUNTRY_MISMATCH_WITH_PROVIDED` all follow this action.
ProofOfAddressVerifyParamsPOAAddressMismatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOAAddressMismatchActionDecline ProofOfAddressVerifyParamsPOAAddressMismatchAction = "DECLINE" ProofOfAddressVerifyParamsPOAAddressMismatchActionNoAction ProofOfAddressVerifyParamsPOAAddressMismatchAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOAAddressMismatchAction.
type ProofOfAddressVerifyParamsPOADocumentAuthenticityAction ¶
type ProofOfAddressVerifyParamsPOADocumentAuthenticityAction string
ProofOfAddressVerifyParamsPOADocumentAuthenticityAction: What to do when document manipulation is suspected (`SUSPECTED_DOCUMENT_MANIPULATION`) - e.g. the PDF was modified after digital signing, processed by a known PDF editor, shows overlay-text manipulation, or has inconsistent EXIF dates.
ProofOfAddressVerifyParamsPOADocumentAuthenticityAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOADocumentAuthenticityActionDecline ProofOfAddressVerifyParamsPOADocumentAuthenticityAction = "DECLINE" ProofOfAddressVerifyParamsPOADocumentAuthenticityActionNoAction ProofOfAddressVerifyParamsPOADocumentAuthenticityAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOADocumentAuthenticityAction.
type ProofOfAddressVerifyParamsPOADocumentIssuesAction ¶
type ProofOfAddressVerifyParamsPOADocumentIssuesAction string
ProofOfAddressVerifyParamsPOADocumentIssuesAction: What to do on file-integrity problems - in practice only `DOCUMENT_METADATA_MISMATCH` is produced by this endpoint.
ProofOfAddressVerifyParamsPOADocumentIssuesAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOADocumentIssuesActionDecline ProofOfAddressVerifyParamsPOADocumentIssuesAction = "DECLINE" ProofOfAddressVerifyParamsPOADocumentIssuesActionNoAction ProofOfAddressVerifyParamsPOADocumentIssuesAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOADocumentIssuesAction.
type ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction ¶
type ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction string
ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction: What to do when no issuing company/organization can be identified on the document (`ISSUER_NOT_IDENTIFIED`).
ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedActionDecline ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction = "DECLINE" ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedActionNoAction ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOAIssuerNotIdentifiedAction.
type ProofOfAddressVerifyParamsPOANameMismatchAction ¶
type ProofOfAddressVerifyParamsPOANameMismatchAction string
ProofOfAddressVerifyParamsPOANameMismatchAction: Accepted but **currently not applied** - name-mismatch warnings (`NAME_MISMATCH_WITH_PROVIDED`) follow `poa_address_mismatch_action` instead. Set `poa_address_mismatch_action` to control both name and address mismatch behavior.
ProofOfAddressVerifyParamsPOANameMismatchAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOANameMismatchActionDecline ProofOfAddressVerifyParamsPOANameMismatchAction = "DECLINE" ProofOfAddressVerifyParamsPOANameMismatchActionNoAction ProofOfAddressVerifyParamsPOANameMismatchAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOANameMismatchAction.
type ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction ¶
type ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction string
ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction: What to do when the document language is outside `poa_languages_allowed` (`UNSUPPORTED_DOCUMENT_LANGUAGE`).
ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyParamsPOAUnsupportedLanguageActionDecline ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction = "DECLINE" ProofOfAddressVerifyParamsPOAUnsupportedLanguageActionNoAction ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction = "NO_ACTION" )
Known values of ProofOfAddressVerifyParamsPOAUnsupportedLanguageAction.
type ProofOfAddressVerifyResponse ¶
type ProofOfAddressVerifyResponse struct {
// Persisted session id when `save_api_request=true` (usable with `GET
// /v3/session/{sessionId}/decision/`); otherwise a transient correlation UUID.
RequestID string `json:"request_id"`
POA ProofOfAddressVerifyResponsePOA `json:"poa"`
// Echo of the `vendor_data` you sent, or `null`.
VendorData string `json:"vendor_data"`
// Echo of the `metadata` object you sent, or `null`.
Metadata map[string]any `json:"metadata"`
// ISO 8601 timestamp (UTC) of when the response was generated.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponse is a response object.
func (*ProofOfAddressVerifyResponse) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponse leniently.
type ProofOfAddressVerifyResponsePOA ¶
type ProofOfAddressVerifyResponsePOA struct {
// `Approved` when no warning resolves to a decline; `Declined` otherwise - the
// `warnings` list explains why.
Status ProofOfAddressVerifyResponsePOAStatus `json:"status"`
// Country the document was issued in, as extracted from the document - usually
// ISO 3166-1 alpha-3 (e.g. `ARG`).
IssuingState string `json:"issuing_state"`
// Detected document category. `UNKNOWN` means the document could not be
// classified as an acceptable Proof of Address and auto-declines with
// `INVALID_DOCUMENT_TYPE`. Never null - classification failures fall back to
// `UNKNOWN`.
DocumentType ProofOfAddressVerifyResponsePOADocumentType `json:"document_type"`
// Finer-grained classification within `document_type` - e.g.
// `ELECTRICITY_BILL`, `WATER_BILL`, `GAS_BILL`, `INTERNET_BILL`, `PHONE_BILL`
// (utility bills); `ACCOUNT_STATEMENT`, `CREDIT_CARD_STATEMENT` (bank
// statements); `TAX_ASSESSMENT`, `RESIDENCY_CERTIFICATE` (government
// documents). `UNKNOWN` when no subtype could be determined. Never null -
// classification failures fall back to `UNKNOWN`.
DocumentSubtype string `json:"document_subtype"`
// Detected document language (ISO 639-1).
DocumentLanguage string `json:"document_language"`
// Company or organization that issued the document. `null` adds
// `ISSUER_NOT_IDENTIFIED`.
Issuer string `json:"issuer"`
// Document issue date (`YYYY-MM-DD`). `null` when it could not be extracted -
// that declines with `UNABLE_TO_EXTRACT_ISSUE_DATE` on this endpoint.
IssueDate string `json:"issue_date"`
// Explicit expiry/validity date printed on the document, when present.
// Independent of the `poa_document_age_months` age check.
ExpirationDate string `json:"expiration_date"`
// Address exactly as printed on the document. `null` auto-declines with
// `MISSING_ADDRESS_INFORMATION`.
POAAddress string `json:"poa_address"`
// Geocoded, normalized version of `poa_address`.
POAFormattedAddress string `json:"poa_formatted_address"`
// Structured, geocoded breakdown of the document address. `null` when the
// address could not be parsed.
POAParsedAddress ProofOfAddressVerifyResponsePOAPOAParsedAddress `json:"poa_parsed_address"`
// Echo of the `expected_address` you sent, or `null`.
ExpectedDetailsAddress string `json:"expected_details_address"`
// Geocoded, normalized version of `expected_address`; `null` when not provided
// or not geocodable.
ExpectedDetailsFormattedAddress string `json:"expected_details_formatted_address"`
// Full geocoding result for `expected_address`
// (street/city/region/country/postal code plus raw geocoder output and an
// `is_verified` flag). `null` when `expected_address` was not provided.
ExpectedDetailsParsedAddress map[string]any `json:"expected_details_parsed_address"`
// Primary holder name extracted from the document; compared against
// `expected_first_name`/`expected_last_name` when provided. `null` declines
// with `POA_NAME_NOT_DETECTED` on this endpoint.
NameOnDocument string `json:"name_on_document"`
// Document-specific extras. Bank fields are populated for bank statements when
// printed on the document; `null` otherwise.
ExtraFields ProofOfAddressVerifyResponsePOAExtraFields `json:"extra_fields"`
// Empty on a clean approval. Every entry explains one detected risk; entries
// with `log_type: "error"` set `status` to `Declined`.
Warnings []ProofOfAddressVerifyResponsePOAWarnings `json:"warnings"`
// QR codes and barcodes detected across every processed page of the document.
// Empty when none are found. A located but undecodable QR code has
// `parsed_payload: null`.
DetectedCodes []DocumentAiDetectedCode `json:"detected_codes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponsePOA is a response object.
func (*ProofOfAddressVerifyResponsePOA) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponsePOA) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponsePOA leniently.
type ProofOfAddressVerifyResponsePOADocumentType ¶
type ProofOfAddressVerifyResponsePOADocumentType string
ProofOfAddressVerifyResponsePOADocumentType: Detected document category. `UNKNOWN` means the document could not be classified as an acceptable Proof of Address and auto-declines with `INVALID_DOCUMENT_TYPE`. Never null - classification failures fall back to `UNKNOWN`.
ProofOfAddressVerifyResponsePOADocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyResponsePOADocumentTypeUtilityBill ProofOfAddressVerifyResponsePOADocumentType = "UTILITY_BILL" ProofOfAddressVerifyResponsePOADocumentTypeBankStatement ProofOfAddressVerifyResponsePOADocumentType = "BANK_STATEMENT" ProofOfAddressVerifyResponsePOADocumentTypeGovernmentIssuedDocument ProofOfAddressVerifyResponsePOADocumentType = "GOVERNMENT_ISSUED_DOCUMENT" ProofOfAddressVerifyResponsePOADocumentTypeOtherPOADocument ProofOfAddressVerifyResponsePOADocumentType = "OTHER_POA_DOCUMENT" ProofOfAddressVerifyResponsePOADocumentTypeUnknown ProofOfAddressVerifyResponsePOADocumentType = "UNKNOWN" )
Known values of ProofOfAddressVerifyResponsePOADocumentType.
type ProofOfAddressVerifyResponsePOAExtraFields ¶
type ProofOfAddressVerifyResponsePOAExtraFields struct {
BankAccountNumber string `json:"bank_account_number"`
BankIBAN string `json:"bank_iban"`
BankSortCode string `json:"bank_sort_code"`
BankRoutingNumber string `json:"bank_routing_number"`
BankSwiftBIC string `json:"bank_swift_bic"`
BankBranchName string `json:"bank_branch_name"`
BankBranchAddress string `json:"bank_branch_address"`
// Contact phone number printed on the document.
DocumentPhoneNumber string `json:"document_phone_number"`
// Other holder names found on the document (e.g. co-account holders, previous
// account names).
AdditionalNames []string `json:"additional_names"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponsePOAExtraFields: Document-specific extras. Bank fields are populated for bank statements when printed on the document; `null` otherwise.
func (*ProofOfAddressVerifyResponsePOAExtraFields) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponsePOAExtraFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponsePOAExtraFields leniently.
type ProofOfAddressVerifyResponsePOAPOAParsedAddress ¶
type ProofOfAddressVerifyResponsePOAPOAParsedAddress struct {
Street1 string `json:"street_1"`
Street2 string `json:"street_2"`
City string `json:"city"`
Region string `json:"region"`
// ISO 3166-1 alpha-2 country code.
Country string `json:"country"`
PostalCode string `json:"postal_code"`
// Geocoded coordinates of the document address.
DocumentLocation ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation `json:"document_location"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponsePOAPOAParsedAddress: Structured, geocoded breakdown of the document address. `null` when the address could not be parsed.
func (*ProofOfAddressVerifyResponsePOAPOAParsedAddress) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponsePOAPOAParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponsePOAPOAParsedAddress leniently.
type ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation ¶
type ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation: Geocoded coordinates of the document address.
func (*ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponsePOAPOAParsedAddressDocumentLocation leniently.
type ProofOfAddressVerifyResponsePOAStatus ¶
type ProofOfAddressVerifyResponsePOAStatus string
ProofOfAddressVerifyResponsePOAStatus: `Approved` when no warning resolves to a decline; `Declined` otherwise - the `warnings` list explains why.
ProofOfAddressVerifyResponsePOAStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyResponsePOAStatusApproved ProofOfAddressVerifyResponsePOAStatus = "Approved" ProofOfAddressVerifyResponsePOAStatusDeclined ProofOfAddressVerifyResponsePOAStatus = "Declined" )
Known values of ProofOfAddressVerifyResponsePOAStatus.
type ProofOfAddressVerifyResponsePOAWarnings ¶
type ProofOfAddressVerifyResponsePOAWarnings struct {
// Machine-readable risk code. Always-decline: `MISSING_ADDRESS_INFORMATION`,
// `POA_DOCUMENT_EXPIRED`, `INVALID_DOCUMENT_TYPE`,
// `UNABLE_TO_VALIDATE_DOCUMENT_AGE`, plus `UNABLE_TO_EXTRACT_ISSUE_DATE` and
// `POA_NAME_NOT_DETECTED` (fixed to decline on this endpoint). Governed by
// request options: `NAME_MISMATCH_WITH_PROVIDED` /
// `ADDRESS_MISMATCH_WITH_PROVIDED` / `POA_COUNTRY_MISMATCH_WITH_PROVIDED`
// (`poa_address_mismatch_action`), `POOR_DOCUMENT_QUALITY` (never produced by
// this endpoint) / `DOCUMENT_METADATA_MISMATCH` (`poa_document_issues_action`),
// `SUSPECTED_DOCUMENT_MANIPULATION` (`poa_document_authenticity_action`),
// `UNSUPPORTED_DOCUMENT_LANGUAGE` (`poa_unsupported_language_action`),
// `ISSUER_NOT_IDENTIFIED` (`poa_issuer_not_identified_action`). Informational
// on this endpoint: `POA_DOCUMENT_NOT_SUPPORTED_FOR_APPLICATION`,
// `UNPARSABLE_OR_INVALID_ADDRESS`.
Risk string `json:"risk"`
// Feature that raised the warning. Always `PROOF_OF_ADDRESS` on this endpoint.
Feature ProofOfAddressVerifyResponsePOAWarningsFeature `json:"feature"`
// Extra context for some risks - e.g. `POA_DOCUMENT_EXPIRED` includes
// `expiration_reason` (`printed_expiration` or `age_window`), `document_type`,
// `document_subtype`, and `issue_date`, plus `expiration_date` on the
// `printed_expiration` path or `max_age_months` on the `age_window` path;
// `SUSPECTED_DOCUMENT_MANIPULATION` includes `reason` and `detection_method`.
// `null` for most risks.
AdditionalData map[string]any `json:"additional_data"`
// Severity. `error` warnings drive `status` to `Declined`; `information`
// entries are advisory and never decline on their own. (`warning` is not
// produced by this endpoint - its options only accept `DECLINE` or
// `NO_ACTION`.)
LogType ProofOfAddressVerifyResponsePOAWarningsLogType `json:"log_type"`
// Human-readable one-line summary of the risk.
ShortDescription string `json:"short_description"`
// Human-readable explanation of the risk.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ProofOfAddressVerifyResponsePOAWarnings is a response object.
func (*ProofOfAddressVerifyResponsePOAWarnings) UnmarshalJSON ¶
func (r *ProofOfAddressVerifyResponsePOAWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ProofOfAddressVerifyResponsePOAWarnings leniently.
type ProofOfAddressVerifyResponsePOAWarningsFeature ¶
type ProofOfAddressVerifyResponsePOAWarningsFeature string
ProofOfAddressVerifyResponsePOAWarningsFeature: Feature that raised the warning. Always `PROOF_OF_ADDRESS` on this endpoint.
ProofOfAddressVerifyResponsePOAWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const (
ProofOfAddressVerifyResponsePOAWarningsFeatureProofOfAddress ProofOfAddressVerifyResponsePOAWarningsFeature = "PROOF_OF_ADDRESS"
)
Known values of ProofOfAddressVerifyResponsePOAWarningsFeature.
type ProofOfAddressVerifyResponsePOAWarningsLogType ¶
type ProofOfAddressVerifyResponsePOAWarningsLogType string
ProofOfAddressVerifyResponsePOAWarningsLogType: Severity. `error` warnings drive `status` to `Declined`; `information` entries are advisory and never decline on their own. (`warning` is not produced by this endpoint - its options only accept `DECLINE` or `NO_ACTION`.)
ProofOfAddressVerifyResponsePOAWarningsLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ProofOfAddressVerifyResponsePOAWarningsLogTypeError ProofOfAddressVerifyResponsePOAWarningsLogType = "error" ProofOfAddressVerifyResponsePOAWarningsLogTypeInformation ProofOfAddressVerifyResponsePOAWarningsLogType = "information" )
Known values of ProofOfAddressVerifyResponsePOAWarningsLogType.
type QuestionnaireDetail ¶
type QuestionnaireDetail struct {
// Unique identifier of the questionnaire. Use this id when referencing the
// questionnaire from a workflow or in subsequent update/delete requests.
QuestionnaireID string `json:"questionnaire_id"`
Title string `json:"title"`
Description string `json:"description"`
Languages []string `json:"languages"`
DefaultLanguage string `json:"default_language"`
IsActive bool `json:"is_active"`
IsSimpleQuestionnaire bool `json:"is_simple_questionnaire"`
// Graph structure with start_node and nodes map.
Graph map[string]any `json:"graph"`
// Questionnaire content grouped into sections (derived from the graph).
Sections []map[string]any `json:"sections"`
// Stable identifier that groups all versions of the same questionnaire.
QuestionnaireGroupID string `json:"questionnaire_group_id"`
Version int64 `json:"version"`
Status QuestionnaireDetailStatus `json:"status"`
PublishedAt time.Time `json:"published_at"`
// True when the questionnaire can still be edited in place (draft versions).
IsEditable bool `json:"is_editable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
QuestionnaireDetail: Full questionnaire detail returned from GET, POST (create) and PATCH (update) endpoints.
func (*QuestionnaireDetail) UnmarshalJSON ¶
func (r *QuestionnaireDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes QuestionnaireDetail leniently.
type QuestionnaireDetailStatus ¶
type QuestionnaireDetailStatus string
QuestionnaireDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( QuestionnaireDetailStatusDraft QuestionnaireDetailStatus = "draft" QuestionnaireDetailStatusPublished QuestionnaireDetailStatus = "published" )
Known values of QuestionnaireDetailStatus.
type QuestionnaireListItem ¶
type QuestionnaireListItem struct {
// Per-version UUID. Use as `{questionnaire_uuid}` for get/update/delete and as
// `questionnaire_uuid` in a workflow's QUESTIONNAIRE feature config.
UUID string `json:"uuid"`
Title string `json:"title"`
Description string `json:"description"`
Languages []string `json:"languages"`
DefaultLanguage string `json:"default_language"`
IsActive bool `json:"is_active"`
// True for linear questionnaires created through this API; false for
// graph-based questionnaires built in the Console.
IsSimpleQuestionnaire bool `json:"is_simple_questionnaire"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// Uppercase element types of the answerable questions, in creation order (e.g.
// `SHORT_TEXT`, `MULTIPLE_CHOICE`, `FILE_UPLOAD`). Structural `SECTION_HEADER`
// and `SEPARATOR` elements are excluded. One entry per question, so values can
// repeat.
QuestionTypes []string `json:"question_types"`
// Names of workflows using this questionnaire. Currently always `[]` on this
// endpoint (populated only in the Console listing).
WorkflowNames []string `json:"workflow_names"`
// Stable identifier that groups all versions of the same questionnaire.
QuestionnaireGroupID string `json:"questionnaire_group_id"`
// Version number within the group, starting at 1.
Version int64 `json:"version"`
Status QuestionnaireListItemStatus `json:"status"`
// When this version was published. `null` for drafts.
PublishedAt time.Time `json:"published_at"`
// True when this version is a `draft`.
IsEditable bool `json:"is_editable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
QuestionnaireListItem: One questionnaire version in the list view.
func (*QuestionnaireListItem) UnmarshalJSON ¶
func (r *QuestionnaireListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes QuestionnaireListItem leniently.
type QuestionnaireListItemStatus ¶
type QuestionnaireListItemStatus string
QuestionnaireListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( QuestionnaireListItemStatusDraft QuestionnaireListItemStatus = "draft" QuestionnaireListItemStatusPublished QuestionnaireListItemStatus = "published" )
Known values of QuestionnaireListItemStatus.
type QuestionnairesListParams ¶
type QuestionnairesListParams struct {
// Page size (number of questionnaires per page).
Limit Opt[int64] `json:"-" query:"limit"`
// Number of rows to skip before the first returned questionnaire.
Offset Opt[int64] `json:"-" query:"offset"`
}
QuestionnairesListParams holds the parameters of Client.Questionnaires.List.
func (QuestionnairesListParams) MarshalJSON ¶
func (r QuestionnairesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type QuestionnairesService ¶
type QuestionnairesService struct {
// contains filtered or unexported fields
}
QuestionnairesService holds the questionnaires operations. Use it through Client.Questionnaires.
func (*QuestionnairesService) Create ¶
func (r *QuestionnairesService) Create(ctx context.Context, params SimpleQuestionnaireRequest, opts ...option.RequestOption) (*QuestionnaireDetail, error)
Create: Create questionnaire.
Create a simple linear questionnaire. Send `form_elements` in display order; branching and repeatable groups require the Console. Defaults to `published` v1.
POST /v3/questionnaires/
func (*QuestionnairesService) Delete ¶
func (r *QuestionnairesService) Delete(ctx context.Context, questionnaireUUID string, opts ...option.RequestOption) error
Delete: Delete questionnaire.
Permanently delete one questionnaire version (no undo). Stored questionnaire responses linked to this version are deleted with it, and sessions referencing it lose the link; other versions in the same group are not deleted. Workflows that referenced it keep running but the questionnaire step can no longer load it.
DELETE /v3/questionnaires/{questionnaire_uuid}/
func (*QuestionnairesService) List ¶
func (r *QuestionnairesService) List(ctx context.Context, params QuestionnairesListParams, opts ...option.RequestOption) (*Page[QuestionnaireListItem], error)
List: List questionnaires.
List your questionnaires, newest first, in a limit/offset pagination envelope (`{count, next, previous, results}`, default page size 50). Each row is one version; `questionnaire_group_id` is the stable group ID resolved to the latest `published` version.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/questionnaires/
func (*QuestionnairesService) ListAutoPaging ¶
func (r *QuestionnairesService) ListAutoPaging(ctx context.Context, params QuestionnairesListParams, opts ...option.RequestOption) *PageIterator[QuestionnaireListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*QuestionnairesService) Retrieve ¶
func (r *QuestionnairesService) Retrieve(ctx context.Context, questionnaireUUID string, opts ...option.RequestOption) (*QuestionnaireDetail, error)
Retrieve: Get questionnaire.
Fetch full questionnaire detail for one version by `questionnaire_uuid`: title, `languages`, canonical `graph`, derived `sections`, and version metadata.
GET /v3/questionnaires/{questionnaire_uuid}/
func (*QuestionnairesService) Update ¶
func (r *QuestionnairesService) Update(ctx context.Context, questionnaireUUID string, params SimpleQuestionnaireUpdateRequest, opts ...option.RequestOption) (*QuestionnaireDetail, error)
Update: Update questionnaire.
Update a questionnaire. Versioning depends on the `status` field you send and the current state of the version: (1) no `status` on a **published** version → the published version is updated in place (same `questionnaire_id`, same `version`); (2) no `status` on a **draft** → the draft is updated and immediately published; (3) `status: "published"` on a **published** version → a NEW published version is created under the same `questionnaire_group_id` (new `questionnaire_id`, `version` + 1) and returned, and any existing draft in the group is deleted; (4) `status: "draft"` keeps a draft as a draft (autosave) but is rejected with 400 on a published version (`"Cannot revert a published version to draft."`).
PATCH /v3/questionnaires/{questionnaire_uuid}/
type RateLimitError ¶
type RateLimitError struct{ *APIStatusError }
RateLimitError is an *APIStatusError with status 429.
func (*RateLimitError) Unwrap ¶
func (e *RateLimitError) Unwrap() error
type RegisterRequest ¶
type RegisterRequest struct {
// Any valid email address (personal, work, alias). Used as the unique account
// identifier. Required.
Email string `json:"email"`
// Minimum 8 characters. Must contain at least one uppercase letter (`A-Z`), one
// lowercase letter (`a-z`), one digit (`0-9`), and one special character from
// `!@#$%^&*()_+-=[]{}|;:,.<>?`. Validation reports one failed rule at a time.
// Required.
Password string `json:"password"`
}
RegisterRequest is a request object.
func (RegisterRequest) MarshalJSON ¶
func (r RegisterRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegisterResponse ¶
type RegisterResponse struct {
// Human-readable confirmation that the verification code was sent.
Message string `json:"message"`
// The email the verification code was sent to.
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegisterResponse is a response object.
func (*RegisterResponse) UnmarshalJSON ¶
func (r *RegisterResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegisterResponse leniently.
type RegulatoryReportDetail ¶
type RegulatoryReportDetail struct {
UUID string `json:"uuid"`
CaseUUID string `json:"case_uuid"`
CaseNumber string `json:"case_number"`
ReportType RegulatoryReportDetailReportType `json:"report_type"`
ReportTypeDisplay string `json:"report_type_display"`
// goAML report code derived from report_type, e.g. STR, CTR, BCR.
ReportCode string `json:"report_code"`
ReportNumber string `json:"report_number"`
Status RegulatoryReportDetailStatus `json:"status"`
StatusDisplay string `json:"status_display"`
Jurisdiction string `json:"jurisdiction"`
// Reporting entity ID issued by the FIU.
RentityID string `json:"rentity_id"`
RentityBranch string `json:"rentity_branch"`
SubmissionCode RegulatoryReportDetailSubmissionCode `json:"submission_code"`
EntityReference string `json:"entity_reference"`
FiuRefNumber string `json:"fiu_ref_number"`
CurrencyCodeLocal string `json:"currency_code_local"`
SubmissionDate time.Time `json:"submission_date"`
ReportingPerson map[string]any `json:"reporting_person"`
Location map[string]any `json:"location"`
Reason string `json:"reason"`
Action string `json:"action"`
Activity string `json:"activity"`
// Five Ws narrative sections.
Narrative RegulatoryReportDetailNarrative `json:"narrative"`
ReportIndicators []string `json:"report_indicators"`
IncludedFields []string `json:"included_fields"`
Transactions []string `json:"transactions"`
// Result of the most recent validation; each entry is a {field, message}
// object.
ValidationErrors []RegulatoryReportDetailValidationErrors `json:"validation_errors"`
ValidatedAt time.Time `json:"validated_at"`
FinalizedAt time.Time `json:"finalized_at"`
CreatedByEmail string `json:"created_by_email"`
CreatedByName string `json:"created_by_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportDetail is a response object.
func (*RegulatoryReportDetail) UnmarshalJSON ¶
func (r *RegulatoryReportDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportDetail leniently.
type RegulatoryReportDetailNarrative ¶
type RegulatoryReportDetailNarrative struct {
Who string `json:"who"`
What string `json:"what"`
When string `json:"when"`
Where string `json:"where"`
Why string `json:"why"`
How string `json:"how"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportDetailNarrative: Five Ws narrative sections.
func (*RegulatoryReportDetailNarrative) UnmarshalJSON ¶
func (r *RegulatoryReportDetailNarrative) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportDetailNarrative leniently.
type RegulatoryReportDetailReportType ¶
type RegulatoryReportDetailReportType string
RegulatoryReportDetailReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportDetailReportTypeSar RegulatoryReportDetailReportType = "SAR" RegulatoryReportDetailReportTypeStr RegulatoryReportDetailReportType = "STR" RegulatoryReportDetailReportTypeCtr RegulatoryReportDetailReportType = "CTR" RegulatoryReportDetailReportTypeTtr RegulatoryReportDetailReportType = "TTR" RegulatoryReportDetailReportTypeUtr RegulatoryReportDetailReportType = "UTR" RegulatoryReportDetailReportTypeIft RegulatoryReportDetailReportType = "IFT" RegulatoryReportDetailReportTypeCbr RegulatoryReportDetailReportType = "CBR" RegulatoryReportDetailReportTypeTfr RegulatoryReportDetailReportType = "TFR" )
Known values of RegulatoryReportDetailReportType.
type RegulatoryReportDetailStatus ¶
type RegulatoryReportDetailStatus string
RegulatoryReportDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportDetailStatusDraft RegulatoryReportDetailStatus = "DRAFT" RegulatoryReportDetailStatusValidated RegulatoryReportDetailStatus = "VALIDATED" RegulatoryReportDetailStatusFinalized RegulatoryReportDetailStatus = "FINALIZED" )
Known values of RegulatoryReportDetailStatus.
type RegulatoryReportDetailSubmissionCode ¶
type RegulatoryReportDetailSubmissionCode string
RegulatoryReportDetailSubmissionCode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportDetailSubmissionCodeE RegulatoryReportDetailSubmissionCode = "E" RegulatoryReportDetailSubmissionCodeM RegulatoryReportDetailSubmissionCode = "M" )
Known values of RegulatoryReportDetailSubmissionCode.
type RegulatoryReportDetailValidationErrors ¶
type RegulatoryReportDetailValidationErrors struct {
Field string `json:"field"`
Message string `json:"message"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportDetailValidationErrors is a response object.
func (*RegulatoryReportDetailValidationErrors) UnmarshalJSON ¶
func (r *RegulatoryReportDetailValidationErrors) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportDetailValidationErrors leniently.
type RegulatoryReportsCreateParams ¶
type RegulatoryReportsCreateParams struct {
// Required.
Case string `json:"case"`
// Required.
Template string `json:"template"`
// Required unless a template is given; the template's report_type is used
// otherwise.
ReportType Opt[RegulatoryReportsCreateParamsReportType] `json:"report_type"`
// Required unless a template is given.
Jurisdiction Opt[string] `json:"jurisdiction"`
// Transactions to attach; defaults to the case's linked transactions.
Transactions Opt[[]string] `json:"transactions"`
RentityID Opt[string] `json:"rentity_id"`
RentityBranch Opt[string] `json:"rentity_branch"`
SubmissionCode Opt[RegulatoryReportsCreateParamsSubmissionCode] `json:"submission_code"`
EntityReference Opt[string] `json:"entity_reference"`
FiuRefNumber Opt[string] `json:"fiu_ref_number"`
CurrencyCodeLocal Opt[string] `json:"currency_code_local"`
SubmissionDate Opt[time.Time] `json:"submission_date"`
ReportingPerson Opt[map[string]any] `json:"reporting_person"`
Location Opt[map[string]any] `json:"location"`
Reason Opt[string] `json:"reason"`
Action Opt[string] `json:"action"`
Activity Opt[string] `json:"activity"`
Narrative Opt[RegulatoryReportsCreateParamsNarrative] `json:"narrative"`
ReportIndicators Opt[[]string] `json:"report_indicators"`
IncludedFields Opt[[]string] `json:"included_fields"`
}
RegulatoryReportsCreateParams holds the parameters of Client.RegulatoryReports.Create.
func (RegulatoryReportsCreateParams) MarshalJSON ¶
func (r RegulatoryReportsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsCreateParamsNarrative ¶
type RegulatoryReportsCreateParamsNarrative struct {
Who Opt[string] `json:"who"`
What Opt[string] `json:"what"`
When Opt[string] `json:"when"`
Where Opt[string] `json:"where"`
Why Opt[string] `json:"why"`
How Opt[string] `json:"how"`
}
RegulatoryReportsCreateParamsNarrative is a request object.
func (RegulatoryReportsCreateParamsNarrative) MarshalJSON ¶
func (r RegulatoryReportsCreateParamsNarrative) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsCreateParamsReportType ¶
type RegulatoryReportsCreateParamsReportType string
RegulatoryReportsCreateParamsReportType: Required unless a template is given; the template's report_type is used otherwise.
RegulatoryReportsCreateParamsReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsCreateParamsReportTypeSar RegulatoryReportsCreateParamsReportType = "SAR" RegulatoryReportsCreateParamsReportTypeStr RegulatoryReportsCreateParamsReportType = "STR" RegulatoryReportsCreateParamsReportTypeCtr RegulatoryReportsCreateParamsReportType = "CTR" RegulatoryReportsCreateParamsReportTypeTtr RegulatoryReportsCreateParamsReportType = "TTR" RegulatoryReportsCreateParamsReportTypeUtr RegulatoryReportsCreateParamsReportType = "UTR" RegulatoryReportsCreateParamsReportTypeIft RegulatoryReportsCreateParamsReportType = "IFT" RegulatoryReportsCreateParamsReportTypeCbr RegulatoryReportsCreateParamsReportType = "CBR" RegulatoryReportsCreateParamsReportTypeTfr RegulatoryReportsCreateParamsReportType = "TFR" )
Known values of RegulatoryReportsCreateParamsReportType.
type RegulatoryReportsCreateParamsSubmissionCode ¶
type RegulatoryReportsCreateParamsSubmissionCode string
RegulatoryReportsCreateParamsSubmissionCode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsCreateParamsSubmissionCodeE RegulatoryReportsCreateParamsSubmissionCode = "E" RegulatoryReportsCreateParamsSubmissionCodeM RegulatoryReportsCreateParamsSubmissionCode = "M" )
Known values of RegulatoryReportsCreateParamsSubmissionCode.
type RegulatoryReportsListParams ¶
type RegulatoryReportsListParams struct {
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset.
Offset Opt[int64] `json:"-" query:"offset"`
// Filter by status.
Status Opt[RegulatoryReportsListParamsStatus] `json:"-" query:"status"`
// Filter by report type.
ReportType Opt[RegulatoryReportsListParamsReportType] `json:"-" query:"report_type"`
// Filter to reports on this case.
Case Opt[string] `json:"-" query:"case"`
}
RegulatoryReportsListParams holds the parameters of Client.RegulatoryReports.List.
func (RegulatoryReportsListParams) MarshalJSON ¶
func (r RegulatoryReportsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsListParamsReportType ¶
type RegulatoryReportsListParamsReportType string
RegulatoryReportsListParamsReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsListParamsReportTypeSar RegulatoryReportsListParamsReportType = "SAR" RegulatoryReportsListParamsReportTypeStr RegulatoryReportsListParamsReportType = "STR" RegulatoryReportsListParamsReportTypeCtr RegulatoryReportsListParamsReportType = "CTR" RegulatoryReportsListParamsReportTypeTtr RegulatoryReportsListParamsReportType = "TTR" RegulatoryReportsListParamsReportTypeUtr RegulatoryReportsListParamsReportType = "UTR" RegulatoryReportsListParamsReportTypeIft RegulatoryReportsListParamsReportType = "IFT" RegulatoryReportsListParamsReportTypeCbr RegulatoryReportsListParamsReportType = "CBR" RegulatoryReportsListParamsReportTypeTfr RegulatoryReportsListParamsReportType = "TFR" )
Known values of RegulatoryReportsListParamsReportType.
type RegulatoryReportsListParamsStatus ¶
type RegulatoryReportsListParamsStatus string
RegulatoryReportsListParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsListParamsStatusDraft RegulatoryReportsListParamsStatus = "DRAFT" RegulatoryReportsListParamsStatusValidated RegulatoryReportsListParamsStatus = "VALIDATED" RegulatoryReportsListParamsStatusFinalized RegulatoryReportsListParamsStatus = "FINALIZED" )
Known values of RegulatoryReportsListParamsStatus.
type RegulatoryReportsRetrieveDownloadURLParams ¶
type RegulatoryReportsRetrieveDownloadURLParams struct {
// Which file to download.
File Opt[RegulatoryReportsRetrieveDownloadURLParamsFile] `json:"-" query:"file"`
}
RegulatoryReportsRetrieveDownloadURLParams holds the parameters of Client.RegulatoryReports.RetrieveDownloadURL.
func (RegulatoryReportsRetrieveDownloadURLParams) MarshalJSON ¶
func (r RegulatoryReportsRetrieveDownloadURLParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsRetrieveDownloadURLParamsFile ¶
type RegulatoryReportsRetrieveDownloadURLParamsFile string
RegulatoryReportsRetrieveDownloadURLParamsFile is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsRetrieveDownloadURLParamsFilePDF RegulatoryReportsRetrieveDownloadURLParamsFile = "pdf" RegulatoryReportsRetrieveDownloadURLParamsFileXML RegulatoryReportsRetrieveDownloadURLParamsFile = "xml" )
Known values of RegulatoryReportsRetrieveDownloadURLParamsFile.
type RegulatoryReportsRetrieveDownloadURLResponse ¶
type RegulatoryReportsRetrieveDownloadURLResponse struct {
DownloadURL string `json:"download_url"`
File RegulatoryReportsRetrieveDownloadURLResponseFile `json:"file"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportsRetrieveDownloadURLResponse is a response object.
func (*RegulatoryReportsRetrieveDownloadURLResponse) UnmarshalJSON ¶
func (r *RegulatoryReportsRetrieveDownloadURLResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportsRetrieveDownloadURLResponse leniently.
type RegulatoryReportsRetrieveDownloadURLResponseFile ¶
type RegulatoryReportsRetrieveDownloadURLResponseFile string
RegulatoryReportsRetrieveDownloadURLResponseFile is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsRetrieveDownloadURLResponseFilePDF RegulatoryReportsRetrieveDownloadURLResponseFile = "pdf" RegulatoryReportsRetrieveDownloadURLResponseFileXML RegulatoryReportsRetrieveDownloadURLResponseFile = "xml" )
Known values of RegulatoryReportsRetrieveDownloadURLResponseFile.
type RegulatoryReportsService ¶
type RegulatoryReportsService struct {
// contains filtered or unexported fields
}
RegulatoryReportsService holds the regulatory_reports operations. Use it through Client.RegulatoryReports.
func (*RegulatoryReportsService) Create ¶
func (r *RegulatoryReportsService) Create(ctx context.Context, params RegulatoryReportsCreateParams, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
Create: Create standalone report.
Create a draft FIU report from the standalone Reports page: both case and template are required (unlike the case-scoped create, which can omit template).
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/
func (*RegulatoryReportsService) Delete ¶
func (r *RegulatoryReportsService) Delete(ctx context.Context, reportUUID string, opts ...option.RequestOption) error
Delete: Delete report.
Delete a draft or validated report. Finalized reports cannot be deleted (409).
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/
func (*RegulatoryReportsService) Finalize ¶
func (r *RegulatoryReportsService) Finalize(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
Finalize: Finalize report.
Re-validate, then render the goAML XML and PDF and upload both to S3. On SAR/STR/TFR reports, this also moves the case's transaction alerts from Pending SAR to SAR filed.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/finalize/
func (*RegulatoryReportsService) List ¶
func (r *RegulatoryReportsService) List(ctx context.Context, params RegulatoryReportsListParams, opts ...option.RequestOption) (*Page[RegulatoryReportDetail], error)
List: List reports.
Application-wide FIU report list, optionally filtered by status, report_type, or case.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/
func (*RegulatoryReportsService) ListAutoPaging ¶
func (r *RegulatoryReportsService) ListAutoPaging(ctx context.Context, params RegulatoryReportsListParams, opts ...option.RequestOption) *PageIterator[RegulatoryReportDetail]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*RegulatoryReportsService) Retrieve ¶
func (r *RegulatoryReportsService) Retrieve(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
Retrieve: Get report.
Retrieve a regulatory report.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/
func (*RegulatoryReportsService) RetrieveDownloadURL ¶
func (r *RegulatoryReportsService) RetrieveDownloadURL(ctx context.Context, reportUUID string, params RegulatoryReportsRetrieveDownloadURLParams, opts ...option.RequestOption) (*RegulatoryReportsRetrieveDownloadURLResponse, error)
RetrieveDownloadURL: Get report download URL.
Mint a presigned URL for a finalized report's goAML XML or PDF.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/download-url/
func (*RegulatoryReportsService) Update ¶
func (r *RegulatoryReportsService) Update(ctx context.Context, reportUUID string, params RegulatoryReportsUpdateParams, opts ...option.RequestOption) (*RegulatoryReportDetail, error)
Update: Update report.
Edit a draft or validated report's fields. Finalized reports cannot be edited (409).
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/
func (*RegulatoryReportsService) Validate ¶
func (r *RegulatoryReportsService) Validate(ctx context.Context, reportUUID string, opts ...option.RequestOption) (*RegulatoryReportsValidateResponse, error)
Validate: Validate report.
Check the report against the obligatory goAML header fields (reporting entity ID, submission code, local currency, action taken, submission date), plus at least one attached transaction and a 2-letter jurisdiction, without generating any files. Also stores the result on the report: validation_errors and validated_at are updated, and a non-finalized report's status moves to VALIDATED (no errors) or back to DRAFT (errors).
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/regulatory-reports/{report_uuid}/validate/
type RegulatoryReportsUpdateParams ¶
type RegulatoryReportsUpdateParams struct {
Jurisdiction Opt[string] `json:"jurisdiction"`
RentityID Opt[string] `json:"rentity_id"`
RentityBranch Opt[string] `json:"rentity_branch"`
SubmissionCode Opt[RegulatoryReportsUpdateParamsSubmissionCode] `json:"submission_code"`
EntityReference Opt[string] `json:"entity_reference"`
FiuRefNumber Opt[string] `json:"fiu_ref_number"`
CurrencyCodeLocal Opt[string] `json:"currency_code_local"`
SubmissionDate Opt[time.Time] `json:"submission_date"`
ReportingPerson Opt[map[string]any] `json:"reporting_person"`
Location Opt[map[string]any] `json:"location"`
Reason Opt[string] `json:"reason"`
Action Opt[string] `json:"action"`
Activity Opt[string] `json:"activity"`
Narrative Opt[RegulatoryReportsUpdateParamsNarrative] `json:"narrative"`
ReportIndicators Opt[[]string] `json:"report_indicators"`
IncludedFields Opt[[]string] `json:"included_fields"`
}
RegulatoryReportsUpdateParams holds the parameters of Client.RegulatoryReports.Update.
func (RegulatoryReportsUpdateParams) MarshalJSON ¶
func (r RegulatoryReportsUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsUpdateParamsNarrative ¶
type RegulatoryReportsUpdateParamsNarrative struct {
Who Opt[string] `json:"who"`
What Opt[string] `json:"what"`
When Opt[string] `json:"when"`
Where Opt[string] `json:"where"`
Why Opt[string] `json:"why"`
How Opt[string] `json:"how"`
}
RegulatoryReportsUpdateParamsNarrative is a request object.
func (RegulatoryReportsUpdateParamsNarrative) MarshalJSON ¶
func (r RegulatoryReportsUpdateParamsNarrative) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RegulatoryReportsUpdateParamsSubmissionCode ¶
type RegulatoryReportsUpdateParamsSubmissionCode string
RegulatoryReportsUpdateParamsSubmissionCode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsUpdateParamsSubmissionCodeE RegulatoryReportsUpdateParamsSubmissionCode = "E" RegulatoryReportsUpdateParamsSubmissionCodeM RegulatoryReportsUpdateParamsSubmissionCode = "M" )
Known values of RegulatoryReportsUpdateParamsSubmissionCode.
type RegulatoryReportsValidateResponse ¶
type RegulatoryReportsValidateResponse struct {
Status RegulatoryReportsValidateResponseStatus `json:"status"`
IsValid bool `json:"is_valid"`
// Empty when valid.
Errors []RegulatoryReportsValidateResponseErrors `json:"errors"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportsValidateResponse is a response object.
func (*RegulatoryReportsValidateResponse) UnmarshalJSON ¶
func (r *RegulatoryReportsValidateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportsValidateResponse leniently.
type RegulatoryReportsValidateResponseErrors ¶
type RegulatoryReportsValidateResponseErrors struct {
Field string `json:"field"`
Message string `json:"message"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RegulatoryReportsValidateResponseErrors is a response object.
func (*RegulatoryReportsValidateResponseErrors) UnmarshalJSON ¶
func (r *RegulatoryReportsValidateResponseErrors) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RegulatoryReportsValidateResponseErrors leniently.
type RegulatoryReportsValidateResponseStatus ¶
type RegulatoryReportsValidateResponseStatus string
RegulatoryReportsValidateResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RegulatoryReportsValidateResponseStatusDraft RegulatoryReportsValidateResponseStatus = "DRAFT" RegulatoryReportsValidateResponseStatusValidated RegulatoryReportsValidateResponseStatus = "VALIDATED" RegulatoryReportsValidateResponseStatusFinalized RegulatoryReportsValidateResponseStatus = "FINALIZED" )
Known values of RegulatoryReportsValidateResponseStatus.
type ReportTemplateDetail ¶
type ReportTemplateDetail struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// ISO 3166-1 alpha-2 country code.
Jurisdiction string `json:"jurisdiction"`
ReportType ReportTemplateDetailReportType `json:"report_type"`
ReportTypeDisplay string `json:"report_type_display"`
// Reusable goAML header defaults. Template-level obligatory fields: rentity_id,
// submission_code, and currency_code_local (3-letter). Optional: enabled_fields
// (which optional report blocks to include) plus reporting_person, location,
// reason, and action defaults. Per-filing header fields (action,
// submission_date, transactions, jurisdiction) are enforced when the report is
// validated or finalized, not on the template.
FieldConfig map[string]any `json:"field_config"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ReportTemplateDetail is a response object.
func (*ReportTemplateDetail) UnmarshalJSON ¶
func (r *ReportTemplateDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ReportTemplateDetail leniently.
type ReportTemplateDetailReportType ¶
type ReportTemplateDetailReportType string
ReportTemplateDetailReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReportTemplateDetailReportTypeSar ReportTemplateDetailReportType = "SAR" ReportTemplateDetailReportTypeStr ReportTemplateDetailReportType = "STR" ReportTemplateDetailReportTypeCtr ReportTemplateDetailReportType = "CTR" ReportTemplateDetailReportTypeTtr ReportTemplateDetailReportType = "TTR" ReportTemplateDetailReportTypeUtr ReportTemplateDetailReportType = "UTR" ReportTemplateDetailReportTypeIft ReportTemplateDetailReportType = "IFT" ReportTemplateDetailReportTypeCbr ReportTemplateDetailReportType = "CBR" ReportTemplateDetailReportTypeTfr ReportTemplateDetailReportType = "TFR" )
Known values of ReportTemplateDetailReportType.
type ReportTemplatesCreateParams ¶
type ReportTemplatesCreateParams struct {
// Required.
Name string `json:"name"`
// ISO 3166-1 alpha-2 country code, upper-cased on save. Required.
Jurisdiction string `json:"jurisdiction"`
// Required.
ReportType ReportTemplatesCreateParamsReportType `json:"report_type"`
// Reusable goAML header defaults. Template-level obligatory fields: rentity_id,
// submission_code, and currency_code_local (3-letter). Optional: enabled_fields
// (which optional report blocks to include) plus reporting_person, location,
// reason, and action defaults. Per-filing header fields (action,
// submission_date, transactions, jurisdiction) are enforced when the report is
// validated or finalized, not on the template.
FieldConfig Opt[map[string]any] `json:"field_config"`
}
ReportTemplatesCreateParams holds the parameters of Client.ReportTemplates.Create.
func (ReportTemplatesCreateParams) MarshalJSON ¶
func (r ReportTemplatesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ReportTemplatesCreateParamsReportType ¶
type ReportTemplatesCreateParamsReportType string
ReportTemplatesCreateParamsReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReportTemplatesCreateParamsReportTypeSar ReportTemplatesCreateParamsReportType = "SAR" ReportTemplatesCreateParamsReportTypeStr ReportTemplatesCreateParamsReportType = "STR" ReportTemplatesCreateParamsReportTypeCtr ReportTemplatesCreateParamsReportType = "CTR" ReportTemplatesCreateParamsReportTypeTtr ReportTemplatesCreateParamsReportType = "TTR" ReportTemplatesCreateParamsReportTypeUtr ReportTemplatesCreateParamsReportType = "UTR" ReportTemplatesCreateParamsReportTypeIft ReportTemplatesCreateParamsReportType = "IFT" ReportTemplatesCreateParamsReportTypeCbr ReportTemplatesCreateParamsReportType = "CBR" ReportTemplatesCreateParamsReportTypeTfr ReportTemplatesCreateParamsReportType = "TFR" )
Known values of ReportTemplatesCreateParamsReportType.
type ReportTemplatesListParams ¶
type ReportTemplatesListParams struct {
// Page size.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset.
Offset Opt[int64] `json:"-" query:"offset"`
}
ReportTemplatesListParams holds the parameters of Client.ReportTemplates.List.
func (ReportTemplatesListParams) MarshalJSON ¶
func (r ReportTemplatesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ReportTemplatesService ¶
type ReportTemplatesService struct {
// contains filtered or unexported fields
}
ReportTemplatesService holds the report_templates operations. Use it through Client.ReportTemplates.
func (*ReportTemplatesService) Create ¶
func (r *ReportTemplatesService) Create(ctx context.Context, params ReportTemplatesCreateParams, opts ...option.RequestOption) (*ReportTemplateDetail, error)
Create: Create report template.
Create a reusable per-jurisdiction, per-report-type goAML header template. Rejected with 400 if any of the template-level obligatory fields (rentity_id, submission_code, currency_code_local) is missing from field_config; an invalid template cannot be saved or used to create a report. Per-filing header fields (action, submission_date, transactions) are enforced at report validate/finalize time instead.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/report-templates/
func (*ReportTemplatesService) Delete ¶
func (r *ReportTemplatesService) Delete(ctx context.Context, templateUUID string, opts ...option.RequestOption) error
Delete: Delete report template.
Delete a report template. Reports already created from it are unaffected.
The organization and application ids come from the client options.
DELETE /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/
func (*ReportTemplatesService) List ¶
func (r *ReportTemplatesService) List(ctx context.Context, params ReportTemplatesListParams, opts ...option.RequestOption) (*Page[ReportTemplateDetail], error)
List: List report templates.
List FIU report templates for the application.
It returns one page; ListAutoPaging iterates over every item of every page.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/report-templates/
func (*ReportTemplatesService) ListAutoPaging ¶
func (r *ReportTemplatesService) ListAutoPaging(ctx context.Context, params ReportTemplatesListParams, opts ...option.RequestOption) *PageIterator[ReportTemplateDetail]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*ReportTemplatesService) Retrieve ¶
func (r *ReportTemplatesService) Retrieve(ctx context.Context, templateUUID string, opts ...option.RequestOption) (*ReportTemplateDetail, error)
Retrieve: Get report template.
Retrieve a report template.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/
func (*ReportTemplatesService) Update ¶
func (r *ReportTemplatesService) Update(ctx context.Context, templateUUID string, params ReportTemplatesUpdateParams, opts ...option.RequestOption) (*ReportTemplateDetail, error)
Update: Update report template.
Partially update a report template. Re-validates obligatory goAML fields on save.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/report-templates/{template_uuid}/
type ReportTemplatesUpdateParams ¶
type ReportTemplatesUpdateParams struct {
Name Opt[string] `json:"name"`
// ISO 3166-1 alpha-2 country code, upper-cased on save.
Jurisdiction Opt[string] `json:"jurisdiction"`
ReportType Opt[ReportTemplatesUpdateParamsReportType] `json:"report_type"`
// Reusable goAML header defaults. Template-level obligatory fields: rentity_id,
// submission_code, and currency_code_local (3-letter). Optional: enabled_fields
// (which optional report blocks to include) plus reporting_person, location,
// reason, and action defaults. Per-filing header fields (action,
// submission_date, transactions, jurisdiction) are enforced when the report is
// validated or finalized, not on the template.
FieldConfig Opt[map[string]any] `json:"field_config"`
}
ReportTemplatesUpdateParams holds the parameters of Client.ReportTemplates.Update.
func (ReportTemplatesUpdateParams) MarshalJSON ¶
func (r ReportTemplatesUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type ReportTemplatesUpdateParamsReportType ¶
type ReportTemplatesUpdateParamsReportType string
ReportTemplatesUpdateParamsReportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReportTemplatesUpdateParamsReportTypeSar ReportTemplatesUpdateParamsReportType = "SAR" ReportTemplatesUpdateParamsReportTypeStr ReportTemplatesUpdateParamsReportType = "STR" ReportTemplatesUpdateParamsReportTypeCtr ReportTemplatesUpdateParamsReportType = "CTR" ReportTemplatesUpdateParamsReportTypeTtr ReportTemplatesUpdateParamsReportType = "TTR" ReportTemplatesUpdateParamsReportTypeUtr ReportTemplatesUpdateParamsReportType = "UTR" ReportTemplatesUpdateParamsReportTypeIft ReportTemplatesUpdateParamsReportType = "IFT" ReportTemplatesUpdateParamsReportTypeCbr ReportTemplatesUpdateParamsReportType = "CBR" ReportTemplatesUpdateParamsReportTypeTfr ReportTemplatesUpdateParamsReportType = "TFR" )
Known values of ReportTemplatesUpdateParamsReportType.
type ResponseJSON ¶
type ResponseJSON struct {
// contains filtered or unexported fields
}
ResponseJSON describes the JSON object a response type was decoded from. Every generated response type has one in its JSON field:
decision.JSON.Raw() // the object as received
decision.JSON.Present("metadata") // the key was sent (maybe as null)
decision.JSON.Null("metadata") // the key was sent as null
decision.JSON.ExtraFields() // keys this SDK version does not know
Decoding is lenient: a value that does not fit its Go field leaves the field at its zero value and Invalid reports it; the value stays readable through Field.
func (ResponseJSON) ExtraFields ¶
func (j ResponseJSON) ExtraFields() map[string]json.RawMessage
ExtraFields returns the keys of the object that this SDK version does not know, with their raw values. Newer API fields appear here until the SDK is updated.
func (ResponseJSON) Field ¶
func (j ResponseJSON) Field(key string) (json.RawMessage, bool)
Field returns the raw JSON value of any key, known or unknown.
func (ResponseJSON) Invalid ¶
func (j ResponseJSON) Invalid(key string) bool
Invalid reports whether the key's value did not fit the Go field, which then holds its zero value.
func (ResponseJSON) Null ¶
func (j ResponseJSON) Null(key string) bool
Null reports whether the object had the key with a null value.
func (ResponseJSON) Present ¶
func (j ResponseJSON) Present(key string) bool
Present reports whether the object had the key, even with a null value. It covers known and unknown keys.
func (ResponseJSON) Raw ¶
func (j ResponseJSON) Raw() string
Raw returns the JSON object as received.
type ReviewItem ¶
type ReviewItem struct {
// Unique identifier of this feed entry.
UUID string `json:"uuid"`
// What kind of activity this entry records. `STATUS_UPDATED` rows come from
// manual decisions (`PATCH /v3/session/{session_id}/update-status/`) and from
// entries added via `POST …/reviews/` (which default to this type even when no
// status is recorded). `COMMENT` rows come from Console reviewers; Console
// detail-page views are also stored as `COMMENT` rows flagged with
// `metadata.system_event = "DETAIL_VIEWED"`. The remaining types track data
// edits, file changes, tags, and AML monitoring activity. STATUS_UPDATED rows
// are also written by system actors (e.g. AML ongoing monitoring with
// actor_type SYSTEM, and automatic feature-status updates), not only by the
// update-status endpoint and manual review posts. `FEATURE_OVERRIDE_PENDING`,
// `FEATURE_OVERRIDE_APPLIED` and `FEATURE_OVERRIDE_CANCELLED` record an
// override of one check's status (`PATCH
// /v3/session/{session_id}/features/{node_id}/update-status/`): requested to
// wait for the flow to finish, applied, or cancelled. They carry the check's
// status in `previous_value` / `new_value` (`{"status": ...}`), leave
// `previous_status` and `new_status` `null`, and name the override in
// `metadata` (`feature_override_id`, `node_id`, `feature_model`, `forced`,
// `state`, `cancel_reason`). The entry for the request carries the reviewer's
// `comment`; an override applied when the flow finishes is recorded with
// `actor_type` `SYSTEM`.
ActivityType ReviewItemActivityType `json:"activity_type"`
// Human-readable author label, resolved in order: actor's full name → Console
// account identifier → local part of `actor_email` → `"API Client"` (for
// `API_KEY` actors) → `"System"` (for `SYSTEM` actors) → `"Unknown"`. Entries
// created via `POST …/reviews/` always display `"Unknown"` because that
// endpoint records no actor attribution.
ActorDisplay string `json:"actor_display"`
// Email of the Console user who performed the action. `null` for API-key and
// system actors.
ActorEmail string `json:"actor_email"`
// Who performed the action: an API key, a Console user, or Didit itself
// (`SYSTEM`, e.g. AML ongoing monitoring). Entries created via `POST
// …/reviews/` carry the default `CONSOLE_USER` regardless of the caller.
ActorType ReviewItemActorType `json:"actor_type"`
// Session status recorded by this entry (for status updates). `null` for
// comments and data-change entries.
NewStatus ReviewItemNewStatus `json:"new_status"`
// Status the session had before the change. Populated on `STATUS_UPDATED`
// entries written by the update-status endpoint; `null` on entries added via
// `POST …/reviews/`. Also populated on system-written STATUS_UPDATED rows.
PreviousStatus ReviewItemPreviousStatus `json:"previous_status"`
// Free-text note attached to the entry, or `null`.
Comment string `json:"comment"`
// Console users `@email`-mentioned in the comment. Always empty for entries
// created via this API - mention processing is a Console-only feature.
MentionedEmails []string `json:"mentioned_emails"`
// Snapshot of the changed data before the action, e.g. `{"status": "In
// Review"}` on a status change. `null` when nothing was changed.
PreviousValue map[string]any `json:"previous_value"`
// Snapshot of the changed data after the action, e.g. `{"status": "Approved"}`.
// `null` when nothing was changed.
NewValue map[string]any `json:"new_value"`
// Names of the fields modified by this activity (e.g. `["status"]`). Empty for
// comments and for entries added via `POST …/reviews/`.
ChangedFields []string `json:"changed_fields"`
// Extra context for system-generated entries. Console detail-page views carry
// `{"system_event": "DETAIL_VIEWED", "detail_type": "verification"}` so they
// can be filtered out of notification logic. `null` for ordinary entries.
Metadata map[string]any `json:"metadata"`
// When the entry was written, ISO 8601 UTC.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
ReviewItem: One entry in a session's review / activity feed. Status changes carry `previous_status`, `new_status`, `previous_value`, `new_value`, and `changed_fields`; comments carry `comment` and (for Console comments) `mentioned_emails`; the remaining fields are `null` or empty when they do not apply to the activity type.
func (*ReviewItem) UnmarshalJSON ¶
func (r *ReviewItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes ReviewItem leniently.
type ReviewItemActivityType ¶
type ReviewItemActivityType string
ReviewItemActivityType: What kind of activity this entry records. `STATUS_UPDATED` rows come from manual decisions (`PATCH /v3/session/{session_id}/update-status/`) and from entries added via `POST …/reviews/` (which default to this type even when no status is recorded). `COMMENT` rows come from Console reviewers; Console detail-page views are also stored as `COMMENT` rows flagged with `metadata.system_event = "DETAIL_VIEWED"`. The remaining types track data edits, file changes, tags, and AML monitoring activity. STATUS_UPDATED rows are also written by system actors (e.g. AML ongoing monitoring with actor_type SYSTEM, and automatic feature-status updates), not only by the update-status endpoint and manual review posts. `FEATURE_OVERRIDE_PENDING`, `FEATURE_OVERRIDE_APPLIED` and `FEATURE_OVERRIDE_CANCELLED` record an override of one check's status (`PATCH /v3/session/{session_id}/features/{node_id}/update-status/`): requested to wait for the flow to finish, applied, or cancelled. They carry the check's status in `previous_value` / `new_value` (`{"status": ...}`), leave `previous_status` and `new_status` `null`, and name the override in `metadata` (`feature_override_id`, `node_id`, `feature_model`, `forced`, `state`, `cancel_reason`). The entry for the request carries the reviewer's `comment`; an override applied when the flow finishes is recorded with `actor_type` `SYSTEM`.
ReviewItemActivityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReviewItemActivityTypeComment ReviewItemActivityType = "COMMENT" ReviewItemActivityTypeStatusUpdated ReviewItemActivityType = "STATUS_UPDATED" ReviewItemActivityTypeKYCDataUpdated ReviewItemActivityType = "KYC_DATA_UPDATED" ReviewItemActivityTypePOADataUpdated ReviewItemActivityType = "POA_DATA_UPDATED" ReviewItemActivityTypeFileAdded ReviewItemActivityType = "FILE_ADDED" ReviewItemActivityTypeFileRemoved ReviewItemActivityType = "FILE_REMOVED" ReviewItemActivityTypeAMLOngoingMatch ReviewItemActivityType = "AML_ONGOING_MATCH" ReviewItemActivityTypeAMLStatusUpdated ReviewItemActivityType = "AML_STATUS_UPDATED" ReviewItemActivityTypeAMLHitStatusUpdated ReviewItemActivityType = "AML_HIT_STATUS_UPDATED" ReviewItemActivityTypeKYBDataUpdated ReviewItemActivityType = "KYB_DATA_UPDATED" ReviewItemActivityTypeKYBDocumentUploaded ReviewItemActivityType = "KYB_DOCUMENT_UPLOADED" ReviewItemActivityTypeTagAdded ReviewItemActivityType = "TAG_ADDED" ReviewItemActivityTypeTagRemoved ReviewItemActivityType = "TAG_REMOVED" ReviewItemActivityTypeFeatureOverridePending ReviewItemActivityType = "FEATURE_OVERRIDE_PENDING" ReviewItemActivityTypeFeatureOverrideApplied ReviewItemActivityType = "FEATURE_OVERRIDE_APPLIED" ReviewItemActivityTypeFeatureOverrideCancelled ReviewItemActivityType = "FEATURE_OVERRIDE_CANCELLED" )
Known values of ReviewItemActivityType.
type ReviewItemActorType ¶
type ReviewItemActorType string
ReviewItemActorType: Who performed the action: an API key, a Console user, or Didit itself (`SYSTEM`, e.g. AML ongoing monitoring). Entries created via `POST …/reviews/` carry the default `CONSOLE_USER` regardless of the caller.
ReviewItemActorType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReviewItemActorTypeAPIKey ReviewItemActorType = "API_KEY" ReviewItemActorTypeConsoleUser ReviewItemActorType = "CONSOLE_USER" ReviewItemActorTypeSystem ReviewItemActorType = "SYSTEM" )
Known values of ReviewItemActorType.
type ReviewItemNewStatus ¶
type ReviewItemNewStatus string
ReviewItemNewStatus: Session status recorded by this entry (for status updates). `null` for comments and data-change entries.
ReviewItemNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReviewItemNewStatusNotStarted ReviewItemNewStatus = "Not Started" ReviewItemNewStatusInProgress ReviewItemNewStatus = "In Progress" ReviewItemNewStatusApproved ReviewItemNewStatus = "Approved" ReviewItemNewStatusDeclined ReviewItemNewStatus = "Declined" ReviewItemNewStatusInReview ReviewItemNewStatus = "In Review" ReviewItemNewStatusExpired ReviewItemNewStatus = "Expired" ReviewItemNewStatusAbandoned ReviewItemNewStatus = "Abandoned" ReviewItemNewStatusKYCExpired ReviewItemNewStatus = "Kyc Expired" ReviewItemNewStatusResubmitted ReviewItemNewStatus = "Resubmitted" ReviewItemNewStatusAwaitingUser ReviewItemNewStatus = "Awaiting User" )
Known values of ReviewItemNewStatus.
type ReviewItemPreviousStatus ¶
type ReviewItemPreviousStatus string
ReviewItemPreviousStatus: Status the session had before the change. Populated on `STATUS_UPDATED` entries written by the update-status endpoint; `null` on entries added via `POST …/reviews/`. Also populated on system-written STATUS_UPDATED rows.
ReviewItemPreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( ReviewItemPreviousStatusNotStarted ReviewItemPreviousStatus = "Not Started" ReviewItemPreviousStatusInProgress ReviewItemPreviousStatus = "In Progress" ReviewItemPreviousStatusApproved ReviewItemPreviousStatus = "Approved" ReviewItemPreviousStatusDeclined ReviewItemPreviousStatus = "Declined" ReviewItemPreviousStatusInReview ReviewItemPreviousStatus = "In Review" ReviewItemPreviousStatusExpired ReviewItemPreviousStatus = "Expired" ReviewItemPreviousStatusAbandoned ReviewItemPreviousStatus = "Abandoned" ReviewItemPreviousStatusKYCExpired ReviewItemPreviousStatus = "Kyc Expired" ReviewItemPreviousStatusResubmitted ReviewItemPreviousStatus = "Resubmitted" ReviewItemPreviousStatusAwaitingUser ReviewItemPreviousStatus = "Awaiting User" )
Known values of ReviewItemPreviousStatus.
type RiskLifecycleEvent ¶
type RiskLifecycleEvent struct {
// Machine-readable event type. New values can be added over time.
Type string `json:"type"`
// When the event happened.
Timestamp time.Time `json:"timestamp"`
// Event-specific payload, or `null`.
Details map[string]any `json:"details"`
// USD amount billed for this event.
Fee float64 `json:"fee"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RiskLifecycleEvent is a response object.
func (*RiskLifecycleEvent) UnmarshalJSON ¶
func (r *RiskLifecycleEvent) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RiskLifecycleEvent leniently.
type RiskSignals ¶
type RiskSignals struct {
// IPv4 or IPv6 address observed for the end user.
IP Opt[string] `json:"ip"`
// Stable device identifier collected by your application (Android `ANDROID_ID`,
// iOS `identifierForVendor`).
DeviceID Opt[string] `json:"device_id"`
// Platform of the end user's device.
DevicePlatform Opt[RiskSignalsDevicePlatform] `json:"device_platform"`
// Device model reported by your application.
DeviceModel Opt[string] `json:"device_model"`
// Operating-system version.
OsVersion Opt[string] `json:"os_version"`
// Version of your application.
AppVersion Opt[string] `json:"app_version"`
// Browser or app user agent.
UserAgent Opt[string] `json:"user_agent"`
}
RiskSignals: Optional device and network context observed by your application. All fields are optional. Passing them feeds cross-session match detection in Networks.
func (RiskSignals) MarshalJSON ¶
func (r RiskSignals) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RiskSignalsDevicePlatform ¶
type RiskSignalsDevicePlatform string
RiskSignalsDevicePlatform: Platform of the end user's device.
RiskSignalsDevicePlatform is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RiskSignalsDevicePlatformAndroid RiskSignalsDevicePlatform = "android" RiskSignalsDevicePlatformIos RiskSignalsDevicePlatform = "ios" RiskSignalsDevicePlatformIpados RiskSignalsDevicePlatform = "ipados" RiskSignalsDevicePlatformTvos RiskSignalsDevicePlatform = "tvos" RiskSignalsDevicePlatformWeb RiskSignalsDevicePlatform = "web" )
Known values of RiskSignalsDevicePlatform.
type RiskWarning ¶
type RiskWarning struct {
// Feature that produced the warning.
Feature string `json:"feature"`
// Machine-readable risk code. New values can be added over time.
Risk string `json:"risk"`
// Risk-specific context, or `null`.
AdditionalData map[string]any `json:"additional_data"`
// Severity used by the decision rules.
LogType RiskWarningLogType `json:"log_type"`
// Human-readable one-line summary.
ShortDescription string `json:"short_description"`
// Human-readable explanation.
LongDescription string `json:"long_description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RiskWarning is a response object.
func (*RiskWarning) UnmarshalJSON ¶
func (r *RiskWarning) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RiskWarning leniently.
type RiskWarningLogType ¶
type RiskWarningLogType string
RiskWarningLogType: Severity used by the decision rules.
RiskWarningLogType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RiskWarningLogTypeError RiskWarningLogType = "error" RiskWarningLogTypeWarning RiskWarningLogType = "warning" RiskWarningLogTypeInformation RiskWarningLogType = "information" )
Known values of RiskWarningLogType.
type RoutingPublicationCaseRoutingRule ¶
type RoutingPublicationCaseRoutingRule struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Description string `json:"description"`
Priority int64 `json:"priority"`
Conditions []RoutingPublicationRoutingCondition `json:"conditions"`
RequiredSkills []string `json:"required_skills"`
Blueprint string `json:"blueprint"`
BlueprintName string `json:"blueprint_name"`
Team string `json:"team"`
TeamName string `json:"team_name"`
IsActive bool `json:"is_active"`
Version int64 `json:"version"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RoutingPublicationCaseRoutingRule is a response object.
func (*RoutingPublicationCaseRoutingRule) UnmarshalJSON ¶
func (r *RoutingPublicationCaseRoutingRule) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RoutingPublicationCaseRoutingRule leniently.
type RoutingPublicationFieldEnum ¶
type RoutingPublicationFieldEnum string
RoutingPublicationFieldEnum: * `source` - source
- `priority` - priority
- `tags` - tags
RoutingPublicationFieldEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RoutingPublicationFieldEnumSource RoutingPublicationFieldEnum = "source" RoutingPublicationFieldEnumPriority RoutingPublicationFieldEnum = "priority" RoutingPublicationFieldEnumTags RoutingPublicationFieldEnum = "tags" )
Known values of RoutingPublicationFieldEnum.
type RoutingPublicationOperatorEnum ¶
type RoutingPublicationOperatorEnum string
RoutingPublicationOperatorEnum: * `equals` - equals
- `in` - in
- `contains` - contains
RoutingPublicationOperatorEnum is a string with known values below. The set is open: other values may appear and never cause an error.
const ( RoutingPublicationOperatorEnumEquals RoutingPublicationOperatorEnum = "equals" RoutingPublicationOperatorEnumIn RoutingPublicationOperatorEnum = "in" RoutingPublicationOperatorEnumContains RoutingPublicationOperatorEnum = "contains" )
Known values of RoutingPublicationOperatorEnum.
type RoutingPublicationPolicyDraft ¶
type RoutingPublicationPolicyDraft struct {
Revision string `json:"revision"`
BaseVersion int64 `json:"base_version"`
Changes any `json:"changes"`
ActorEmail string `json:"actor_email"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RoutingPublicationPolicyDraft is a response object.
func (*RoutingPublicationPolicyDraft) UnmarshalJSON ¶
func (r *RoutingPublicationPolicyDraft) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RoutingPublicationPolicyDraft leniently.
type RoutingPublicationPolicyDraftPreconditionRequest ¶
type RoutingPublicationPolicyDraftPreconditionRequest struct {
// Required.
ExpectedVersion int64 `json:"expected_version"`
// Required.
ExpectedRevision Opt[string] `json:"expected_revision"`
}
RoutingPublicationPolicyDraftPreconditionRequest is a request object.
func (RoutingPublicationPolicyDraftPreconditionRequest) MarshalJSON ¶
func (r RoutingPublicationPolicyDraftPreconditionRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RoutingPublicationPolicyDraftResponse ¶
type RoutingPublicationPolicyDraftResponse struct {
Draft RoutingPublicationPolicyDraft `json:"draft"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RoutingPublicationPolicyDraftResponse is a response object.
func (*RoutingPublicationPolicyDraftResponse) UnmarshalJSON ¶
func (r *RoutingPublicationPolicyDraftResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RoutingPublicationPolicyDraftResponse leniently.
type RoutingPublicationPolicyDraftWriteRequest ¶
type RoutingPublicationPolicyDraftWriteRequest struct {
// Required.
ExpectedVersion int64 `json:"expected_version"`
// Required.
ExpectedRevision Opt[string] `json:"expected_revision"`
// Required.
Changes map[string]any `json:"changes"`
}
RoutingPublicationPolicyDraftWriteRequest is a request object.
func (RoutingPublicationPolicyDraftWriteRequest) MarshalJSON ¶
func (r RoutingPublicationPolicyDraftWriteRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type RoutingPublicationPolicyRevision ¶
type RoutingPublicationPolicyRevision struct {
Version int64 `json:"version"`
Snapshot any `json:"snapshot"`
ActorEmail string `json:"actor_email"`
PublishedAt time.Time `json:"published_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RoutingPublicationPolicyRevision is a response object.
func (*RoutingPublicationPolicyRevision) UnmarshalJSON ¶
func (r *RoutingPublicationPolicyRevision) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RoutingPublicationPolicyRevision leniently.
type RoutingPublicationRoutingCondition ¶
type RoutingPublicationRoutingCondition struct {
Field RoutingPublicationFieldEnum `json:"field"`
Operator RoutingPublicationOperatorEnum `json:"operator"`
Value any `json:"value"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
RoutingPublicationRoutingCondition is a response object.
func (*RoutingPublicationRoutingCondition) UnmarshalJSON ¶
func (r *RoutingPublicationRoutingCondition) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes RoutingPublicationRoutingCondition leniently.
type SandboxSimulateRequest ¶
type SandboxSimulateRequest struct {
// The status to set. When you leave it out, it defaults to the default status
// of the risk case (`risk`, or the first risk the scenario's magic values
// carry), else to the scenario's default status.
NewStatus Opt[SandboxSimulateRequestNewStatus] `json:"new_status"`
// Note added to the activity entry the status change records.
Comment Opt[string] `json:"comment"`
// A scenario slug from the catalog (`GET /v1/sandbox/scenarios/`). It supplies
// the default status and, without `risk`, the warning its magic values carry.
// An unknown slug returns `400`.
Scenario Opt[string] `json:"scenario"`
// A risk case from the catalog. Its warning is added to the session, with a log
// type that follows `new_status`. An unknown value returns `400`.
Risk Opt[string] `json:"risk"`
// Workflow node the risk warning is attached to. Defaults to the session's
// current node.
NodeID Opt[string] `json:"node_id"`
// `true` sends exactly the webhooks a real status change sends to the sandbox
// application's destinations: `status.updated`, plus the `user.status.updated`
// / `user.data.updated` (or `business.status.updated` /
// `business.data.updated`) events the change causes, for destinations
// subscribed to them. `false` changes the status without logging or sending any
// webhook: the missed-webhook recovery never re-sends that decision, the
// console still updates live, and the next status change of the session sends
// webhooks as usual.
SendWebhooks Opt[bool] `json:"send_webhooks"`
}
SandboxSimulateRequest: Force a sandbox session's status. Every field is optional, but at least one of `new_status`, `scenario` or `risk` is required.
func (SandboxSimulateRequest) MarshalJSON ¶
func (r SandboxSimulateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SandboxSimulateRequestNewStatus ¶
type SandboxSimulateRequestNewStatus string
SandboxSimulateRequestNewStatus: The status to set. When you leave it out, it defaults to the default status of the risk case (`risk`, or the first risk the scenario's magic values carry), else to the scenario's default status.
SandboxSimulateRequestNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SandboxSimulateRequestNewStatusApproved SandboxSimulateRequestNewStatus = "Approved" SandboxSimulateRequestNewStatusDeclined SandboxSimulateRequestNewStatus = "Declined" SandboxSimulateRequestNewStatusInReview SandboxSimulateRequestNewStatus = "In Review" SandboxSimulateRequestNewStatusExpired SandboxSimulateRequestNewStatus = "Expired" SandboxSimulateRequestNewStatusAbandoned SandboxSimulateRequestNewStatus = "Abandoned" )
Known values of SandboxSimulateRequestNewStatus.
type SandboxSimulateResponse ¶
type SandboxSimulateResponse struct {
SessionID string `json:"session_id"`
// The session's status before the simulation.
PreviousStatus SandboxSimulateResponsePreviousStatus `json:"previous_status"`
// The status the simulation set.
Status SandboxSimulateResponseStatus `json:"status"`
// The scenario slug you passed, or `null`.
Scenario string `json:"scenario"`
// The risk case applied (`risk`, or the one taken from the scenario), or `null`
// when none.
Risk string `json:"risk"`
// The `send_webhooks` value the simulation applied.
SendWebhooks bool `json:"send_webhooks"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SandboxSimulateResponse is a response object.
func (*SandboxSimulateResponse) UnmarshalJSON ¶
func (r *SandboxSimulateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SandboxSimulateResponse leniently.
type SandboxSimulateResponsePreviousStatus ¶
type SandboxSimulateResponsePreviousStatus string
SandboxSimulateResponsePreviousStatus: The session's status before the simulation.
SandboxSimulateResponsePreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SandboxSimulateResponsePreviousStatusNotStarted SandboxSimulateResponsePreviousStatus = "Not Started" SandboxSimulateResponsePreviousStatusInProgress SandboxSimulateResponsePreviousStatus = "In Progress" SandboxSimulateResponsePreviousStatusApproved SandboxSimulateResponsePreviousStatus = "Approved" SandboxSimulateResponsePreviousStatusDeclined SandboxSimulateResponsePreviousStatus = "Declined" SandboxSimulateResponsePreviousStatusInReview SandboxSimulateResponsePreviousStatus = "In Review" SandboxSimulateResponsePreviousStatusExpired SandboxSimulateResponsePreviousStatus = "Expired" SandboxSimulateResponsePreviousStatusAbandoned SandboxSimulateResponsePreviousStatus = "Abandoned" SandboxSimulateResponsePreviousStatusKYCExpired SandboxSimulateResponsePreviousStatus = "Kyc Expired" SandboxSimulateResponsePreviousStatusResubmitted SandboxSimulateResponsePreviousStatus = "Resubmitted" SandboxSimulateResponsePreviousStatusAwaitingUser SandboxSimulateResponsePreviousStatus = "Awaiting User" )
Known values of SandboxSimulateResponsePreviousStatus.
type SandboxSimulateResponseStatus ¶
type SandboxSimulateResponseStatus string
SandboxSimulateResponseStatus: The status the simulation set.
SandboxSimulateResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SandboxSimulateResponseStatusApproved SandboxSimulateResponseStatus = "Approved" SandboxSimulateResponseStatusDeclined SandboxSimulateResponseStatus = "Declined" SandboxSimulateResponseStatusInReview SandboxSimulateResponseStatus = "In Review" SandboxSimulateResponseStatusExpired SandboxSimulateResponseStatus = "Expired" SandboxSimulateResponseStatusAbandoned SandboxSimulateResponseStatus = "Abandoned" )
Known values of SandboxSimulateResponseStatus.
type SessionDecision ¶
type SessionDecision struct {
// The unique identifier of the session.
SessionID string `json:"session_id"`
// Discriminator indicating whether this is a User Verification (KYC) or
// Business Verification (KYB) session. When `user`, the KYC feature arrays
// (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`,
// `poa_verifications`, `document_ai_documents`, `database_validations`, ...)
// apply and the business arrays are absent. When `business`, the payload
// instead carries `registry_checks`, `document_verifications`,
// `key_people_checks` plus the shared arrays (`aml_screenings`,
// `phone_verifications`, `email_verifications`, `ip_analyses`,
// `questionnaire_responses`). **Omitted when `include=events` is passed** - the
// events shape only exists for user sessions, so the discriminator is dropped
// from that variant.
SessionKind SessionDecisionSessionKind `json:"session_kind"`
// of the original session in the source application. `null` for every other
// session. Omitted when `include=events` is passed.
SharedFromSession string `json:"shared_from_session"`
// The number of the session.
SessionNumber int64 `json:"session_number"`
// The URL of the session.
SessionURL string `json:"session_url"`
// Overall lifecycle status of the session - the rolled-up workflow result.
// Terminal values are `Approved`, `Declined`, `In Review`, `Expired`, `Kyc
// Expired`, and `Abandoned`; `Not Started`, `In Progress`, `Awaiting User`, and
// `Resubmitted` indicate the session is still moving through the workflow.
Status SessionDecisionStatus `json:"status"`
// Stable identifier of the workflow group that produced this session. Workflows
// are versioned - this value identifies the workflow itself, not the specific
// version.
WorkflowID string `json:"workflow_id"`
// List of verification features configured for this session, as display names:
// `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`, `PHONE`,
// `EMAIL_VERIFICATION`, `AML`, `IP_ANALYSIS`, `DATABASE_VALIDATION`,
// `QUESTIONNAIRE`, `AGE_ESTIMATION`, `FACE_SEARCH` (Business Verification
// sessions use the KYB feature set: `KYB_REGISTRY`, `KYB_DOCUMENTS`,
// `KYB_KEY_PEOPLE`, `AML`, `PHONE`, `EMAIL_VERIFICATION`, `IP_ANALYSIS`,
// `QUESTIONNAIRE`). With `include=events` each entry becomes an object
// `{feature, node_id}` instead of a plain string, and the email feature is
// renamed: it appears as `EMAIL` in events mode instead of the
// `EMAIL_VERIFICATION` used here.
Features []string `json:"features"`
// The vendor data of the session.
VendorData string `json:"vendor_data"`
// The metadata of the session.
Metadata map[string]any `json:"metadata"`
// Expected details supplied at session creation - used for cross-validation
// against extracted data (KYC) or to pre-fill the company registry search
// (KYB). Echoes back exactly the keys that were provided; `null` when none were
// supplied. KYC sessions carry the person fields; Business (KYB) sessions carry
// `company_name`, `registry_country` and `registration_number`.
ExpectedDetails SessionDecisionExpectedDetails `json:"expected_details"`
// Contact details supplied when the session was created (used for notification
// emails, prefilled phone/email verification, and communication language).
// `null` when neither an email nor a phone number was provided.
ContactDetails SessionDecisionContactDetails `json:"contact_details"`
// The callback URL of the session.
Callback string `json:"callback"`
// **Array of ID verification (OCR) reports** produced by ID-document steps in
// the workflow graph. Always a JSON array - read `id_verifications[0]` and
// iterate if your workflow can run more than one ID check (for example a
// primary check plus a step-up). `null` until at least one ID step has produced
// data. Each item is the full report, including `node_id`, feature-level
// `status`, extracted document fields, image URLs, quality scores, MRZ, address
// parsing, cross-session matches, and `warnings[]`.
IDVerifications []SessionDecisionIDVerifications `json:"id_verifications"`
// Why NFC chip verification did not run, populated whenever the workflow
// includes an NFC step. `null` while NFC is pending or when the chip was
// actually read. Values: `USER_SKIPPED` - the user chose to skip on an
// NFC-capable device (allowed by `allow_nfc_skip`); `DOCUMENT_WITHOUT_CHIP` -
// the document has no readable NFC chip (not an ICAO 9303 electronic document);
// `CHIP_CERTIFICATE_UNAVAILABLE` - the issuing country's signing certificate
// (CSCA) covering the document's issue period is unavailable, so the chip
// signature cannot be verified; `DEVICE_WITHOUT_NFC` - the device reported no
// NFC reader; `INTEGRATION_WITHOUT_NFC_ACCESS` - the verification ran without a
// native SDK (e.g. in a web browser), which has no access to the phone's NFC
// reader; `MRZ_KEY_UNAVAILABLE` - the chip access key could not be derived from
// the document's MRZ; `JPKI_UNAVAILABLE` - the document is a Japan My Number
// Card, whose chip is read through JPKI, and JPKI was not available for this
// verification: it is not enabled, or the app's native SDK cannot read My
// Number Cards.
NFCSkipReason SessionDecisionNFCSkipReason `json:"nfc_skip_reason"`
// **Array of NFC / ePassport reports** produced by NFC steps in the workflow
// graph. **This is always a JSON array, never a singular `nfc` object** - read
// `nfc_verifications[0]` and iterate if your workflow can run NFC more than
// once. `null` until at least one NFC step has produced data. Each item is the
// full report, including `node_id`, feature-level `status`, `chip_protocol`,
// `chip_data`, `authenticity` (SOD + DG integrity), `certificate_summary`, and
// `warnings[]`. A Japan My Number Card is read through JPKI instead of ICAO
// 9303: its item has `chip_protocol: "jpki"`, carries its evidence under
// `jpki`, and leaves the ICAO fields `null`. When the NFC step was bypassed
// before it could ever be offered (chipless document, missing certificate, no
// NFC capability reported, unreadable MRZ key, JPKI unavailable for a My Number
// Card), this stays `null` and `nfc_skip_reason` explains why; a skip at the
// step itself (user tapped skip, or the reader turned out unavailable at scan
// time) still produces a report with `is_nfc_skipped: true`.
NFCVerifications []SessionDecisionNFCVerifications `json:"nfc_verifications"`
// **Array of liveness reports** produced by liveness steps in the workflow
// graph. Always a JSON array - never a singular `liveness` object. `null` until
// at least one liveness step has produced data. Each item is the full report,
// including `node_id`, feature-level `status`, `method`, `score`,
// `reference_image`, `video_url`, optional `age_estimation`, cross-session
// `matches[]`, and `warnings[]`.
LivenessChecks []SessionDecisionLivenessChecks `json:"liveness_checks"`
// **Array of face-match reports** produced by face-match steps in the workflow
// graph. Always a JSON array - never a singular `face_match` object. `null`
// until at least one face-match step has produced data. Each item is the full
// report, including `node_id`, feature-level `status`, similarity `score`,
// `source_image`, `target_image`, and `warnings[]`.
FaceMatches []SessionDecisionFaceMatches `json:"face_matches"`
// **Array of phone verification reports** - always a JSON array, never a
// singular `phone` object. `null` until at least one phone step has produced
// data. Each item is the full report, including `node_id`, feature-level
// `status`, the phone number and country metadata, `lifecycle[]`, `matches[]`,
// and `warnings[]`.
PhoneVerifications []SessionDecisionPhoneVerifications `json:"phone_verifications"`
// **Array of email verification reports** - always a JSON array, never a
// singular `email` object. `null` until at least one email step has produced
// data. Each item is the full report, including `node_id`, feature-level
// `status`, the email address, breach data, `lifecycle[]`, `matches[]`, and
// `warnings[]`.
EmailVerifications []SessionDecisionEmailVerifications `json:"email_verifications"`
// **Array of Proof of Address (POA) reports** - always a JSON array, never a
// singular `poa` object. `null` until at least one POA step has produced data.
// Each item is the full report, including `node_id`, feature-level `status`,
// the document file URL, issuer, dates, parsed address, and `warnings[]`.
POAVerifications []SessionDecisionPOAVerifications `json:"poa_verifications"`
// **Document AI reports grouped by workflow node** - always a JSON array, never
// a singular object. `null` until at least one Document AI step has produced
// data. Present only when `session_kind = user`. Each item is a node group with
// an aggregate `status`, the `node_id`, an `items[]` array of the per-document
// results (extracted data keyed by the configured field key), and `warnings`.
DocumentAiDocuments []SessionDecisionDocumentAiDocuments `json:"document_ai_documents"`
// **Array of questionnaire response reports** - always a JSON array, never a
// singular `questionnaire` object. `null` until at least one questionnaire step
// has produced data. Each item is the full report, including `node_id`, the
// questionnaire metadata, sections with form elements, and the user's answers.
QuestionnaireResponses []SessionDecisionQuestionnaireResponses `json:"questionnaire_responses"`
// Bank Verification results, one item per Bank Verification step, for User and
// Business Verification. `null` until a step produces one. Each item's `method`
// says how the account was verified: `open_banking` (bank sign-in) or
// `account_lookup` (account check), or a `statement` or `microdeposits`
// fallback, and `none` when the person continued without a bank before any
// attempt was evaluated (`continued_without_bank`). See [Bank verification
// methods](/core-technology/bank-verification/verification-methods).
BankVerifications []BankVerificationResult `json:"bank_verifications"`
// Electronic Signature results, one item per signer and signature step, for
// User and Business Verification. Present only when the workflow has an
// Electronic Signature step; an empty array until a signer reaches it. See the
// [Electronic Signature
// report](/core-technology/electronic-signature/report-electronic-signature).
Signatures []SignatureResult `json:"signatures"`
// **Array of AML screening reports** - always a JSON array, never a singular
// `aml` object. `null` until at least one AML step has produced data. Each item
// is the full report, including `node_id`, feature-level `status`,
// `total_hits`, `entity_type`, `hits[]`, `score`, `screened_data`,
// `is_ongoing_monitoring_enabled`, and `warnings[]`.
AMLScreenings []AMLScreening `json:"aml_screenings"`
// **Array of Device & IP Analysis reports** - always a JSON array, never a
// singular `ip_analysis` object. `null` until at least one IP-analysis step has
// produced data. Each item is the full report, including `node_id`,
// feature-level `status`, IP and geolocation data, device fingerprint, and
// `warnings[]`. Entries with duplicate `(node_id, ip_address,
// device_fingerprint)` are deduplicated server-side.
IPAnalyses []SessionDecisionIPAnalyses `json:"ip_analyses"`
// **Array of Database Validation reports** - always a JSON array, never a
// singular `database_validation` object. `null` until at least one DB
// validation step has produced data. Each item is the full report, including
// `node_id`, feature-level `status`, `screened_data`, the per-service
// `validations[]` (each with its registry `source_data`), and `warnings[]`. The
// `screened_data` and `source_data` fields vary by country:
//
// **ARG (Argentina)**: screened_data: {document_number, selfie, gender,
// first_name, last_name}. source_data: {identification_number, first_name,
// last_name, full_name, date_of_birth, date_of_death, tax_id, tax_id_type,
// face_match_score, sit_1_since, banks, last_position, highest_position,
// rejected_checks}. Uses RENAPER biometric face-match validation. Gender is
// auto-inferred from face analysis or given name when not present in the
// document (e.g., driver licenses)
//
// **BOL (Bolivia)**: screened_data: {document_number, date_of_birth,
// first_name, last_name}. source_data: {identification_number, first_name,
// last_name, full_name, date_of_birth, gender}
//
// **BRA (Brazil)**: screened_data: {tax_number, first_name, last_name,
// date_of_birth}. source_data always includes {identification_number,
// first_name, last_name, date_of_birth, lgpd_minor, minor_under_18,
// minor_under_16} for successful CPF matches. Successful adult lookups set
// those flags to false. The Receita Federal Consulta CPF service may return
// HTTP 422 (minor under 18) or 451 (under 16) with LGPD-withheld data; in those
// cases source_data sets the minor flags to true as appropriate, includes the
// upstream HTTP status, and field-level validation is no_match. See the Brazil
// section of the Database Validation Outcome Codes reference for the full code
// list.
//
// **CHL (Chile)**: screened_data: {personal_number, first_name, last_name,
// date_of_birth}. source_data: {identification_number, first_name, last_name,
// date_of_birth, gender}
//
// **COL (Colombia)**: screened_data: {document_number, document_type,
// first_name, last_name}. source_data: {identification_number, first_name,
// last_name, full_name, date_of_birth, document_type}
//
// **CRI (Costa Rica)**: screened_data: {personal_number, first_name,
// last_name}. source_data: {identification_number, first_name, last_name,
// full_name}
//
// **DOM (Dominican Republic)**: screened_data: {personal_number}. source_data:
// {identification_number} (returns valid/invalid only)
//
// **ECU (Ecuador)**: screened_data: {personal_number, first_name, last_name}.
// source_data: {identification_number, first_name, last_name, street,
// formatted_address, gender, nationality, education, marital_status, spouse,
// mother_name, father_name, profession}
//
// **ESP (Spain)**: screened_data: {personal_number, document_type,
// expiration_date, first_name, last_name}. source_data: {identification_number,
// first_name, last_name, full_name, document_type, expiration_date}
//
// **GTM (Guatemala)**: screened_data: {document_number, first_name, last_name}.
// source_data: {identification_number, first_name, last_name, full_name}
//
// **HND (Honduras)**: screened_data: {document_number, first_name, last_name}.
// source_data: {identification_number, first_name, last_name, full_name}
//
// **MEX (Mexico)**: screened_data: {personal_number (CURP), first_name,
// last_name}. source_data: {identification_number, first_name, last_name,
// full_name, date_of_birth, gender, nationality, curp_status, state_of_birth,
// doc_probatorio, registration_year, registration_state,
// registration_municipality, num_acta, crip, issuing_state_code,
// foreign_registry_number, folio_carta, folio_certificado}. Uses the RENAPO
// civil registry. A separate INE validity-check service is also available for
// MEX as an additional one-by-one validation.
//
// **PAN (Panama)**: screened_data: {personal_number, selfie}. source_data:
// {identification_number}. Uses SIB biometric validation
//
// **PER (Peru)**: screened_data: {personal_number (DNI), first_name,
// last_name}. source_data: {identification_number, first_name, last_name,
// paternal_name, maternal_name, verification_number, verification_letter}
//
// **PRY (Paraguay)**: screened_data: {document_number, first_name, last_name}.
// source_data: {identification_number, first_name, last_name, full_name}
//
// **SLV (El Salvador)**: screened_data: {document_number, date_of_birth,
// first_name, last_name}. source_data: {identification_number, first_name,
// last_name, full_name}
//
// **URY (Uruguay)**: screened_data: {personal_number, date_of_birth,
// first_name, last_name}. source_data: {identification_number, first_name,
// last_name, full_name}
//
// **VEN (Venezuela)**: screened_data: {document_number, first_name, last_name}.
// source_data: {identification_number, first_name, last_name, full_name,
// gender, date_of_birth, document_type}
DatabaseValidations []SessionDecisionDatabaseValidations `json:"database_validations"`
Reviews []SessionDecisionReviews `json:"reviews"`
// Timestamp at which the session was created (ISO 8601, UTC).
CreatedAt time.Time `json:"created_at"`
// Timestamp at which this session is scheduled to expire. Set on User
// Verification (KYC) sessions when an expiration was configured at creation
// time (or once `Approved` status triggers KYC expiry computation). `null` for
// sessions without a configured expiration, and for kinds that do not use
// expiry (e.g. Business Verification (KYB) sessions that never received an
// `expires_at`).
ExpiresAt time.Time `json:"expires_at"`
// Company registry checks. Present only when `session_kind = business`. Each
// item wraps the full company-registry payload.
RegistryChecks []SessionDecisionRegistryChecks `json:"registry_checks"`
// Aggregate key-people checks. Present only when `session_kind = business`.
// Each item uses the two-bucket shape (`registry`, `submitted`,
// `ubo_kyc_summary`).
KeyPeopleChecks []SessionDecisionKeyPeopleChecks `json:"key_people_checks"`
// Document verification checks grouped by workflow node. Present only when
// `session_kind = business`.
DocumentVerifications []SessionDecisionDocumentVerifications `json:"document_verifications"`
// Whether the session was created by a live application (`live`) or a sandbox
// application (`sandbox`). Sandbox sessions are free, fully simulated, and
// never bill credits.
Environment SessionDecisionEnvironment `json:"environment"`
// Returned only with `include=resubmissions`, for user and business sessions.
// One entry per resubmission request, oldest first. Each entry carries the
// results the resubmitted steps returned before the request, so earlier
// submissions stay readable. Deleting the session deletes every submission.
Resubmissions []SessionDecisionResubmissions `json:"resubmissions"`
Investigator InvestigatorBlock `json:"investigator"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecision is a response object.
func (*SessionDecision) UnmarshalJSON ¶
func (r *SessionDecision) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecision leniently.
type SessionDecisionContactDetails ¶
type SessionDecisionContactDetails struct {
// Email address of the user (e.g., "john.doe@example.com") that will be used
// during the Email Verification step. If not provided, the user must provide it
// during the verification flow.
Email string `json:"email"`
// Language code (ISO 639-1) for email notifications. Controls the language of
// all email communications (e.g., "en", "es", "fr").
EmailLang string `json:"email_lang"`
// If true and an email is provided, Didit sends the initial "Verify your
// identity" email asynchronously when the User Verification (KYC) or Business
// Verification (KYB) session is created. Didit also sends verification status
// notifications for sessions requiring manual review to the provided email
// address.
SendNotificationEmails bool `json:"send_notification_emails"`
// Phone number of the user in E.164 format if available (e.g., +14155552671).
// `null` when only an email was supplied at session creation. Note: This field
// returns the original phone number provided during session creation. If the
// number was invalid, it may not be in E.164 format.
Phone string `json:"phone"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionContactDetails: Contact details supplied when the session was created (used for notification emails, prefilled phone/email verification, and communication language). `null` when neither an email nor a phone number was provided.
func (*SessionDecisionContactDetails) UnmarshalJSON ¶
func (r *SessionDecisionContactDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionContactDetails leniently.
type SessionDecisionDatabaseValidations ¶
type SessionDecisionDatabaseValidations struct {
// Unique identifier for this database validation step in the workflow graph.
NodeID string `json:"node_id"`
// ISO 3166-1 alpha-3 code of the country whose government/registry sources were
// queried (e.g. `BRA`, `MEX`, `ESP`, `NGA`, `IDN`). Database Validation covers
// 60+ countries across the Americas, Europe, Africa, the Middle East and
// Asia-Pacific, plus global multi-country sources - coverage expands regularly,
// so treat the value as an open set rather than a fixed enum.
IssuingState string `json:"issuing_state"`
// How the result was corroborated: `one_by_one` (single-service outcome),
// `two_by_two` (two or more distinct services independently full-matched the
// identification number), or `not_enabled` (persisted when no service produced
// a usable match). The value is never `null`. Dedicated biometric 2x2
// validation modes are currently available for `ECU` and `PER`.
ValidationType SessionDecisionDatabaseValidationsValidationType `json:"validation_type"`
// The input data used for validation. Fields vary by country - see the Database
// Validation docs (`/core-technology/database-validation/overview`) for
// country-specific formats.
ScreenedData SessionDecisionDatabaseValidationsScreenedData `json:"screened_data"`
// One entry per registry service that returned a validation payload. Each entry
// identifies the service (`service_id`, `service_name`) and carries the
// per-field `validation` comparison, the service `outcome_code` /
// `outcome_detail` when reported, and the normalised registry record in
// `source_data`.
Validations []SessionDecisionDatabaseValidationsValidations `json:"validations"`
// Errors returned by registry services while validating, each tagged with the
// `service_id` that produced it. **This key is omitted entirely when there are
// no errors.**
Errors []SessionDecisionDatabaseValidationsErrors `json:"errors"`
// The aggregate match outcome across the queried services. `null` until the
// validation has been evaluated.
MatchType SessionDecisionDatabaseValidationsMatchType `json:"match_type"`
// Feature-level status of this database validation. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionDatabaseValidationsStatus `json:"status"`
// Warnings related to the database validation.
Warnings []SessionDecisionDatabaseValidationsWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidations is a response object.
func (*SessionDecisionDatabaseValidations) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidations) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidations leniently.
type SessionDecisionDatabaseValidationsErrors ¶
type SessionDecisionDatabaseValidationsErrors struct {
// Identifier of the registry service that errored.
ServiceID string `json:"service_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidationsErrors: The upstream service's error object spread as-is - its keys vary by service (commonly a message/code and any provider-specific details) - plus `service_id` identifying the service that errored.
func (*SessionDecisionDatabaseValidationsErrors) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidationsErrors) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidationsErrors leniently.
type SessionDecisionDatabaseValidationsMatchType ¶
type SessionDecisionDatabaseValidationsMatchType string
SessionDecisionDatabaseValidationsMatchType: The aggregate match outcome across the queried services. `null` until the validation has been evaluated.
SessionDecisionDatabaseValidationsMatchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDatabaseValidationsMatchTypeNoMatch SessionDecisionDatabaseValidationsMatchType = "no_match" SessionDecisionDatabaseValidationsMatchTypePartialMatch SessionDecisionDatabaseValidationsMatchType = "partial_match" SessionDecisionDatabaseValidationsMatchTypeFullMatch SessionDecisionDatabaseValidationsMatchType = "full_match" )
Known values of SessionDecisionDatabaseValidationsMatchType.
type SessionDecisionDatabaseValidationsScreenedData ¶
type SessionDecisionDatabaseValidationsScreenedData struct {
LastName string `json:"last_name"`
FirstName string `json:"first_name"`
// Brazil: CPF (11 digits)
TaxNumber string `json:"tax_number"`
// Chile: RUT, DOM: Cédula (11 digits), ECU: Cédula (10 digits), ESP: DNI/NIE,
// MEX: CURP (18 chars), PER: DNI (8 digits), URY: CI
PersonalNumber string `json:"personal_number"`
// ARG: DNI, BOL: CI, COL: Cédula, GTM: DPI, HND: DNI, PAN: Cédula, PRY: CI,
// SLV: DUI, VEN: Cédula
DocumentNumber string `json:"document_number"`
DateOfBirth string `json:"date_of_birth"`
// COL: CC/CE/TI/NIT, ESP: ID/PASSPORT
DocumentType string `json:"document_type"`
// Required for ESP
ExpirationDate string `json:"expiration_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidationsScreenedData: The input data used for validation. Fields vary by country - see the Database Validation docs (`/core-technology/database-validation/overview`) for country-specific formats.
func (*SessionDecisionDatabaseValidationsScreenedData) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidationsScreenedData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidationsScreenedData leniently.
type SessionDecisionDatabaseValidationsStatus ¶
type SessionDecisionDatabaseValidationsStatus string
SessionDecisionDatabaseValidationsStatus: Feature-level status of this database validation. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionDatabaseValidationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDatabaseValidationsStatusNotFinished SessionDecisionDatabaseValidationsStatus = "Not Finished" SessionDecisionDatabaseValidationsStatusApproved SessionDecisionDatabaseValidationsStatus = "Approved" SessionDecisionDatabaseValidationsStatusDeclined SessionDecisionDatabaseValidationsStatus = "Declined" SessionDecisionDatabaseValidationsStatusInReview SessionDecisionDatabaseValidationsStatus = "In Review" SessionDecisionDatabaseValidationsStatusResubRequested SessionDecisionDatabaseValidationsStatus = "Resub Requested" )
Known values of SessionDecisionDatabaseValidationsStatus.
type SessionDecisionDatabaseValidationsValidationType ¶
type SessionDecisionDatabaseValidationsValidationType string
SessionDecisionDatabaseValidationsValidationType: How the result was corroborated: `one_by_one` (single-service outcome), `two_by_two` (two or more distinct services independently full-matched the identification number), or `not_enabled` (persisted when no service produced a usable match). The value is never `null`. Dedicated biometric 2x2 validation modes are currently available for `ECU` and `PER`.
SessionDecisionDatabaseValidationsValidationType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDatabaseValidationsValidationTypeOneByOne SessionDecisionDatabaseValidationsValidationType = "one_by_one" SessionDecisionDatabaseValidationsValidationTypeTwoByTwo SessionDecisionDatabaseValidationsValidationType = "two_by_two" SessionDecisionDatabaseValidationsValidationTypeNotEnabled SessionDecisionDatabaseValidationsValidationType = "not_enabled" )
Known values of SessionDecisionDatabaseValidationsValidationType.
type SessionDecisionDatabaseValidationsValidations ¶
type SessionDecisionDatabaseValidationsValidations struct {
// Identifier of the registry service that produced this validation result.
ServiceID string `json:"service_id"`
// Human-readable name of the registry service.
ServiceName string `json:"service_name"`
// The results of the field validations.
Validation SessionDecisionDatabaseValidationsValidationsValidation `json:"validation"`
// Machine-readable outcome of the registry lookup (e.g. `MATCH`, `NO_MATCH`,
// `PARTIAL_MATCH`, `INCONCLUSIVE`, source-specific codes). Present when the
// service reports one.
OutcomeCode string `json:"outcome_code"`
// Human-readable explanation of `outcome_code`, when provided by the service.
OutcomeDetail string `json:"outcome_detail"`
// The data returned from the government database. Common fields:
// identification_number, first_name, last_name, full_name, date_of_birth,
// gender. Additional fields by country: BRA always includes lgpd_minor,
// minor_under_18, and minor_under_16 on successful CPF matches; it also
// includes the upstream HTTP status when CPF data is withheld under LGPD (HTTP
// 422/451). ECU adds street, formatted_address, nationality, education,
// marital_status, spouse, mother_name, father_name, profession. PER adds
// paternal_name, maternal_name, verification_number, verification_letter. ESP
// adds document_type, expiration_date. VEN/COL add document_type.
SourceData map[string]any `json:"source_data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidationsValidations is a response object.
func (*SessionDecisionDatabaseValidationsValidations) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidationsValidations) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidationsValidations leniently.
type SessionDecisionDatabaseValidationsValidationsValidation ¶
type SessionDecisionDatabaseValidationsValidationsValidation struct {
// Match result for full name (e.g., 'full_match', 'partial_match', 'no_match').
FullName string `json:"full_name"`
// Match result for date of birth.
DateOfBirth string `json:"date_of_birth"`
// Match result for identification number.
IdentificationNumber string `json:"identification_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidationsValidationsValidation: The results of the field validations.
func (*SessionDecisionDatabaseValidationsValidationsValidation) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidationsValidationsValidation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidationsValidationsValidation leniently.
type SessionDecisionDatabaseValidationsWarnings ¶
type SessionDecisionDatabaseValidationsWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionDatabaseValidationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDatabaseValidationsWarnings is a response object.
func (*SessionDecisionDatabaseValidationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionDatabaseValidationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDatabaseValidationsWarnings leniently.
type SessionDecisionDatabaseValidationsWarningsFeature ¶
type SessionDecisionDatabaseValidationsWarningsFeature string
SessionDecisionDatabaseValidationsWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionDatabaseValidationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDatabaseValidationsWarningsFeatureIDVerification SessionDecisionDatabaseValidationsWarningsFeature = "ID_VERIFICATION" SessionDecisionDatabaseValidationsWarningsFeatureNFC SessionDecisionDatabaseValidationsWarningsFeature = "NFC" SessionDecisionDatabaseValidationsWarningsFeatureLiveness SessionDecisionDatabaseValidationsWarningsFeature = "LIVENESS" SessionDecisionDatabaseValidationsWarningsFeatureFacematch SessionDecisionDatabaseValidationsWarningsFeature = "FACEMATCH" SessionDecisionDatabaseValidationsWarningsFeatureProofOfAddress SessionDecisionDatabaseValidationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionDatabaseValidationsWarningsFeaturePhone SessionDecisionDatabaseValidationsWarningsFeature = "PHONE" SessionDecisionDatabaseValidationsWarningsFeatureEmail SessionDecisionDatabaseValidationsWarningsFeature = "EMAIL" SessionDecisionDatabaseValidationsWarningsFeatureAML SessionDecisionDatabaseValidationsWarningsFeature = "AML" SessionDecisionDatabaseValidationsWarningsFeatureLocation SessionDecisionDatabaseValidationsWarningsFeature = "LOCATION" SessionDecisionDatabaseValidationsWarningsFeatureDatabaseValidation SessionDecisionDatabaseValidationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionDatabaseValidationsWarningsFeatureQuestionnaire SessionDecisionDatabaseValidationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionDatabaseValidationsWarningsFeatureDocumentAi SessionDecisionDatabaseValidationsWarningsFeature = "DOCUMENT_AI" SessionDecisionDatabaseValidationsWarningsFeatureKYBRegistry SessionDecisionDatabaseValidationsWarningsFeature = "KYB_REGISTRY" SessionDecisionDatabaseValidationsWarningsFeatureKYBDocuments SessionDecisionDatabaseValidationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionDatabaseValidationsWarningsFeatureKYBKeyPeople SessionDecisionDatabaseValidationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionDatabaseValidationsWarningsFeature.
type SessionDecisionDocumentAiDocuments ¶
type SessionDecisionDocumentAiDocuments struct {
// Aggregate Document AI status for this node, rolled up from its `items[]`.
Status SessionDecisionDocumentAiDocumentsStatus `json:"status"`
// Unique identifier for this Document AI step in the workflow graph.
NodeID string `json:"node_id"`
Items []SessionDecisionDocumentAiDocumentsItems `json:"items"`
// Warning logs raised for this Document AI node.
Warnings []map[string]any `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentAiDocuments: Document AI results grouped by workflow node.
func (*SessionDecisionDocumentAiDocuments) UnmarshalJSON ¶
func (r *SessionDecisionDocumentAiDocuments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentAiDocuments leniently.
type SessionDecisionDocumentAiDocumentsItems ¶
type SessionDecisionDocumentAiDocumentsItems struct {
UUID string `json:"uuid"`
// Workflow graph node that produced this document.
NodeID string `json:"node_id"`
// Key of the configured Document AI document this file corresponds to.
DocumentKey string `json:"document_key"`
// Filename as uploaded by the user.
OriginalFilename string `json:"original_filename"`
// File size in bytes.
FileSize int64 `json:"file_size"`
// Short-lived presigned link to the uploaded file.
FileURL string `json:"file_url"`
// Per-document Document AI status.
Status SessionDecisionDocumentAiDocumentsItemsStatus `json:"status"`
// Values extracted by Document AI, keyed by the configured field `key`. Each
// value is a string, number, or `null`.
ExtractedData map[string]any `json:"extracted_data"`
// QR codes and barcodes detected across every processed page. Empty when none
// are found. A located but undecodable QR code has `parsed_payload: null`.
DetectedCodes []DocumentAiDetectedCode `json:"detected_codes"`
// The configured extraction fields for this document.
Fields []SessionDecisionDocumentAiDocumentsItemsFields `json:"fields"`
// File-forensics metadata extracted from the uploaded document (e.g.
// `is_tampered`). `null` when nothing could be extracted.
DocumentMetadata map[string]any `json:"document_metadata"`
// Cross-reference of the extracted document fields against other session data.
// `null` when no cross-check was performed.
CrossCheckResult map[string]any `json:"cross_check_result"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentAiDocumentsItems is a response object.
func (*SessionDecisionDocumentAiDocumentsItems) UnmarshalJSON ¶
func (r *SessionDecisionDocumentAiDocumentsItems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentAiDocumentsItems leniently.
type SessionDecisionDocumentAiDocumentsItemsFields ¶
type SessionDecisionDocumentAiDocumentsItemsFields struct {
// Stable field key used as the key in `extracted_data`.
Key string `json:"key"`
// Human-readable field name.
Name string `json:"name"`
// Extraction instruction shown to the model.
Instruction string `json:"instruction"`
// Expected value type of the extracted field.
Type SessionDecisionDocumentAiDocumentsItemsFieldsType `json:"type"`
// Whether this field is required.
Required bool `json:"required"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentAiDocumentsItemsFields is a response object.
func (*SessionDecisionDocumentAiDocumentsItemsFields) UnmarshalJSON ¶
func (r *SessionDecisionDocumentAiDocumentsItemsFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentAiDocumentsItemsFields leniently.
type SessionDecisionDocumentAiDocumentsItemsFieldsType ¶
type SessionDecisionDocumentAiDocumentsItemsFieldsType string
SessionDecisionDocumentAiDocumentsItemsFieldsType: Expected value type of the extracted field.
SessionDecisionDocumentAiDocumentsItemsFieldsType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentAiDocumentsItemsFieldsTypeText SessionDecisionDocumentAiDocumentsItemsFieldsType = "text" SessionDecisionDocumentAiDocumentsItemsFieldsTypeNumber SessionDecisionDocumentAiDocumentsItemsFieldsType = "number" SessionDecisionDocumentAiDocumentsItemsFieldsTypeDate SessionDecisionDocumentAiDocumentsItemsFieldsType = "date" )
Known values of SessionDecisionDocumentAiDocumentsItemsFieldsType.
type SessionDecisionDocumentAiDocumentsItemsStatus ¶
type SessionDecisionDocumentAiDocumentsItemsStatus string
SessionDecisionDocumentAiDocumentsItemsStatus: Per-document Document AI status.
SessionDecisionDocumentAiDocumentsItemsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentAiDocumentsItemsStatusApproved SessionDecisionDocumentAiDocumentsItemsStatus = "Approved" SessionDecisionDocumentAiDocumentsItemsStatusDeclined SessionDecisionDocumentAiDocumentsItemsStatus = "Declined" SessionDecisionDocumentAiDocumentsItemsStatusInReview SessionDecisionDocumentAiDocumentsItemsStatus = "In Review" SessionDecisionDocumentAiDocumentsItemsStatusNotFinished SessionDecisionDocumentAiDocumentsItemsStatus = "Not Finished" )
Known values of SessionDecisionDocumentAiDocumentsItemsStatus.
type SessionDecisionDocumentAiDocumentsStatus ¶
type SessionDecisionDocumentAiDocumentsStatus string
SessionDecisionDocumentAiDocumentsStatus: Aggregate Document AI status for this node, rolled up from its `items[]`.
SessionDecisionDocumentAiDocumentsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentAiDocumentsStatusApproved SessionDecisionDocumentAiDocumentsStatus = "Approved" SessionDecisionDocumentAiDocumentsStatusDeclined SessionDecisionDocumentAiDocumentsStatus = "Declined" SessionDecisionDocumentAiDocumentsStatusInReview SessionDecisionDocumentAiDocumentsStatus = "In Review" SessionDecisionDocumentAiDocumentsStatusNotFinished SessionDecisionDocumentAiDocumentsStatus = "Not Finished" )
Known values of SessionDecisionDocumentAiDocumentsStatus.
type SessionDecisionDocumentVerifications ¶
type SessionDecisionDocumentVerifications struct {
Status string `json:"status"`
NodeID string `json:"node_id"`
Items []SessionDecisionDocumentVerificationsItems `json:"items"`
// Per-group progress counters keyed by group name (e.g. legal_presence,
// ownership_structure).
Groups map[string]SessionDecisionDocumentVerificationsGroups `json:"groups"`
RequiredGroups []string `json:"required_groups"`
Warnings []map[string]any `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerifications: Documents grouped by workflow node. Present only when session_kind = business.
func (*SessionDecisionDocumentVerifications) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerifications leniently.
type SessionDecisionDocumentVerificationsGroups ¶
type SessionDecisionDocumentVerificationsGroups struct {
Total int64 `json:"total"`
Approved int64 `json:"approved"`
Pending int64 `json:"pending"`
Declined int64 `json:"declined"`
InReview int64 `json:"in_review"`
Other int64 `json:"other"`
// Requested placeholders with no file uploaded yet.
Missing int64 `json:"missing"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerificationsGroups is a response object.
func (*SessionDecisionDocumentVerificationsGroups) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerificationsGroups) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerificationsGroups leniently.
type SessionDecisionDocumentVerificationsItems ¶
type SessionDecisionDocumentVerificationsItems struct {
UUID string `json:"uuid"`
// High-level KYB document group the file was classified into. `null` while
// unclassified.
DocumentType SessionDecisionDocumentVerificationsItemsDocumentType `json:"document_type"`
// Specific OCR-detected subtype (e.g. `CERTIFICATE_OF_INCORPORATION`,
// `SHAREHOLDER_REGISTRY`); `UNKNOWN` when the OCR could not confidently
// classify the document.
DocumentSubtype string `json:"document_subtype"`
// Alias of `document_type` - the group name used by `groups` and
// `required_groups`.
DocumentGroup SessionDecisionDocumentVerificationsItemsDocumentGroup `json:"document_group"`
// Short-lived presigned link to the uploaded file. `null` for analyst-created
// document request placeholders (`is_requested = true`) that have not been
// fulfilled yet.
FileURL string `json:"file_url"`
// Filename as uploaded by the user or analyst.
OriginalFilename string `json:"original_filename"`
// File size in bytes.
FileSize int64 `json:"file_size"`
// Per-document verification status.
Status SessionDecisionDocumentVerificationsItemsStatus `json:"status"`
CreatedAt time.Time `json:"created_at"`
// Cross-reference of the OCR-extracted document fields against the registry
// company profile. An object with `critical`, `non_critical` and `people`
// sections, each mapping a field name (e.g. `company_name`,
// `registration_number`, `incorporation_date`, `registered_address`) to a
// comparison record like `{"document": "...", "registry": "...", "match": true,
// "score": 0.97}`. `null` when the document had no OCR data or there was no
// registry company to compare against.
CrossCheckResult map[string]any `json:"cross_check_result"`
// Metadata extracted from the uploaded corporate document. When metadata
// extraction succeeded, all 16 keys are always present (individual values are
// `null` when not applicable to the file type); the whole object is `null` when
// nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic
// overlay-text analysis.
DocumentMetadata SessionDecisionDocumentVerificationsItemsDocumentMetadata `json:"document_metadata"`
// Analyst-provided label or reason for a document request. `null` for regular
// uploads.
Description string `json:"description"`
// True for analyst-created document request placeholders awaiting an upload.
IsRequested bool `json:"is_requested"`
OCRData map[string]any `json:"ocr_data"`
// True for documents uploaded from the console rather than the end-user flow.
// Console uploads never change the feature-level aggregate status.
IsConsoleUpload bool `json:"is_console_upload"`
// Console uploads start `false` and flip `true` once the admin confirms them;
// end-user uploads are always `true`.
IsConfirmed bool `json:"is_confirmed"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerificationsItems is a response object.
func (*SessionDecisionDocumentVerificationsItems) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerificationsItems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerificationsItems leniently.
type SessionDecisionDocumentVerificationsItemsDocumentGroup ¶
type SessionDecisionDocumentVerificationsItemsDocumentGroup string
SessionDecisionDocumentVerificationsItemsDocumentGroup: Alias of `document_type` - the group name used by `groups` and `required_groups`.
SessionDecisionDocumentVerificationsItemsDocumentGroup is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentVerificationsItemsDocumentGroupLegalPresence SessionDecisionDocumentVerificationsItemsDocumentGroup = "LEGAL_PRESENCE" SessionDecisionDocumentVerificationsItemsDocumentGroupCompanyDetails SessionDecisionDocumentVerificationsItemsDocumentGroup = "COMPANY_DETAILS" SessionDecisionDocumentVerificationsItemsDocumentGroupOwnershipStructure SessionDecisionDocumentVerificationsItemsDocumentGroup = "OWNERSHIP_STRUCTURE" SessionDecisionDocumentVerificationsItemsDocumentGroupRepresentativesAuthorization SessionDecisionDocumentVerificationsItemsDocumentGroup = "REPRESENTATIVES_AUTHORIZATION" SessionDecisionDocumentVerificationsItemsDocumentGroupOther SessionDecisionDocumentVerificationsItemsDocumentGroup = "OTHER" )
Known values of SessionDecisionDocumentVerificationsItemsDocumentGroup.
type SessionDecisionDocumentVerificationsItemsDocumentMetadata ¶
type SessionDecisionDocumentVerificationsItemsDocumentMetadata struct {
// Size of the document.
FileSize int64 `json:"file_size"`
// Content type of the document.
ContentType string `json:"content_type"`
// Date when the document was created.
CreationDate string `json:"creation_date"`
// Date when the document was modified.
ModifiedDate string `json:"modified_date"`
// Authoring tool/user recorded in the file metadata (PDF `Creator`).
Creator string `json:"creator"`
// Software that produced the file (PDF `Producer`).
Producer string `json:"producer"`
// Editing software recorded in the file metadata.
Software string `json:"software"`
// Encryption scheme of the file, when encrypted.
Encryption string `json:"encryption"`
// Whether the document carries a digital signature.
IsSigned bool `json:"is_signed"`
// Whether the digital signature failed validation (post-signing modification).
IsTampered bool `json:"is_tampered"`
// Details of the digital signature(s), when present.
SignatureInfo map[string]any `json:"signature_info"`
// EXIF original capture date, for image uploads.
ExifOriginalDate string `json:"exif_original_date"`
// EXIF digitization date, for image uploads.
ExifDigitizedDate string `json:"exif_digitized_date"`
// Whether metadata indicates the file passed through a known image/PDF editor.
ProcessedByKnownEditor bool `json:"processed_by_known_editor"`
// Whether creation and modification dates differ - a possible (but not
// conclusive) editing signal.
HasDifferentCreationModDate bool `json:"has_different_creation_mod_date"`
// PDF forensic analysis for suspected overlay-text manipulation. Null when no
// overlay manipulation evidence was found or the document was not a PDF.
OverlayManipulation SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation `json:"overlay_manipulation"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerificationsItemsDocumentMetadata: Metadata extracted from the uploaded corporate document. When metadata extraction succeeded, all 16 keys are always present (individual values are `null` when not applicable to the file type); the whole object is `null` when nothing could be extracted. For PDFs, `overlay_manipulation` carries forensic overlay-text analysis.
func (*SessionDecisionDocumentVerificationsItemsDocumentMetadata) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerificationsItemsDocumentMetadata) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerificationsItemsDocumentMetadata leniently.
type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation ¶
type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation struct {
// Whether overlay-text manipulation evidence was detected.
Detected bool `json:"detected"`
// Whether the PDF could be analyzed.
Analyzed bool `json:"analyzed"`
// Forensic signals that fired, such as duplicate_font_subset or
// glyph_fragmentation.
Signals []string `json:"signals"`
// Suspected manipulated areas in PDF page coordinates.
ManipulatedRegions []SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions `json:"manipulated_regions"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation: PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.
func (*SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulation leniently.
type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions ¶
type SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions struct {
Page int64 `json:"page"`
X float64 `json:"x"`
Y float64 `json:"y"`
Width float64 `json:"width"`
Height float64 `json:"height"`
PageWidth float64 `json:"page_width"`
PageHeight float64 `json:"page_height"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions is a response object.
func (*SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions) UnmarshalJSON ¶
func (r *SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionDocumentVerificationsItemsDocumentMetadataOverlayManipulationManipulatedRegions leniently.
type SessionDecisionDocumentVerificationsItemsDocumentType ¶
type SessionDecisionDocumentVerificationsItemsDocumentType string
SessionDecisionDocumentVerificationsItemsDocumentType: High-level KYB document group the file was classified into. `null` while unclassified.
SessionDecisionDocumentVerificationsItemsDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentVerificationsItemsDocumentTypeLegalPresence SessionDecisionDocumentVerificationsItemsDocumentType = "LEGAL_PRESENCE" SessionDecisionDocumentVerificationsItemsDocumentTypeCompanyDetails SessionDecisionDocumentVerificationsItemsDocumentType = "COMPANY_DETAILS" SessionDecisionDocumentVerificationsItemsDocumentTypeOwnershipStructure SessionDecisionDocumentVerificationsItemsDocumentType = "OWNERSHIP_STRUCTURE" SessionDecisionDocumentVerificationsItemsDocumentTypeRepresentativesAuthorization SessionDecisionDocumentVerificationsItemsDocumentType = "REPRESENTATIVES_AUTHORIZATION" SessionDecisionDocumentVerificationsItemsDocumentTypeOther SessionDecisionDocumentVerificationsItemsDocumentType = "OTHER" )
Known values of SessionDecisionDocumentVerificationsItemsDocumentType.
type SessionDecisionDocumentVerificationsItemsStatus ¶
type SessionDecisionDocumentVerificationsItemsStatus string
SessionDecisionDocumentVerificationsItemsStatus: Per-document verification status.
SessionDecisionDocumentVerificationsItemsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionDocumentVerificationsItemsStatusNotFinished SessionDecisionDocumentVerificationsItemsStatus = "Not Finished" SessionDecisionDocumentVerificationsItemsStatusApproved SessionDecisionDocumentVerificationsItemsStatus = "Approved" SessionDecisionDocumentVerificationsItemsStatusDeclined SessionDecisionDocumentVerificationsItemsStatus = "Declined" SessionDecisionDocumentVerificationsItemsStatusInReview SessionDecisionDocumentVerificationsItemsStatus = "In Review" SessionDecisionDocumentVerificationsItemsStatusResubRequested SessionDecisionDocumentVerificationsItemsStatus = "Resub Requested" )
Known values of SessionDecisionDocumentVerificationsItemsStatus.
type SessionDecisionEmailVerifications ¶
type SessionDecisionEmailVerifications struct {
// Unique identifier for this email step in the workflow graph.
NodeID string `json:"node_id"`
// Feature-level status of this email verification step. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionEmailVerificationsStatus `json:"status"`
// The email address being verified
Email string `json:"email"`
// Indicates if the email was found in known data breaches
IsBreached bool `json:"is_breached"`
// List of known breaches this email was found in
Breaches []SessionDecisionEmailVerificationsBreaches `json:"breaches"`
// Indicates if the email is from a disposable provider
IsDisposable bool `json:"is_disposable"`
// Indicates if the email address is undeliverable
IsUndeliverable bool `json:"is_undeliverable"`
// Number of verification attempts for this email
VerificationAttempts int64 `json:"verification_attempts"`
// Timestamp when the email was verified
VerifiedAt time.Time `json:"verified_at"`
// List of warnings related to email verification
Warnings []SessionDecisionEmailVerificationsWarnings `json:"warnings"`
// Chronological list of events in the email verification lifecycle.
Lifecycle []SessionDecisionEmailVerificationsLifecycle `json:"lifecycle"`
// Matches found for this email address. Each match has a `source`: `session`
// (another verification session in your application matched on the same email,
// returned with
// `session_id`/`session_number`/`vendor_data`/`verification_date`) or
// `list_entry` (the email is on an org-managed allow/block list - see
// `/management-api/lists/overview`). Cross-session matches use different
// `vendor_data` and are capped at 5.
Matches []SessionDecisionEmailVerificationsMatches `json:"matches"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerifications is a response object.
func (*SessionDecisionEmailVerifications) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerifications leniently.
type SessionDecisionEmailVerificationsBreaches ¶
type SessionDecisionEmailVerificationsBreaches struct {
// Name of the breach
Name string `json:"name"`
// Domain affected by the breach
Domain string `json:"domain"`
// URL to the logo of the breached service
LogoPath string `json:"logo_path"`
// Date when the breach occurred
BreachDate string `json:"breach_date"`
// Description of the breach
Description string `json:"description"`
// Whether the breach is verified
IsVerified bool `json:"is_verified"`
// Types of data exposed in the breach
DataClasses []string `json:"data_classes"`
// Number of email addresses affected in the breach
BreachEmailsCount int64 `json:"breach_emails_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerificationsBreaches is a response object.
func (*SessionDecisionEmailVerificationsBreaches) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerificationsBreaches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerificationsBreaches leniently.
type SessionDecisionEmailVerificationsLifecycle ¶
type SessionDecisionEmailVerificationsLifecycle struct {
Type string `json:"type"`
Timestamp time.Time `json:"timestamp"`
// Event-specific payload. Send events carry `status`, `reason`; code-check
// events carry `code_tried`, `status`; final status events carry `reason` - or
// `null` when there is no reason to report (e.g.
// `EMAIL_VERIFICATION_APPROVED`).
Details SessionDecisionEmailVerificationsLifecycleDetails `json:"details"`
Fee float64 `json:"fee"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerificationsLifecycle is a response object.
func (*SessionDecisionEmailVerificationsLifecycle) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerificationsLifecycle) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerificationsLifecycle leniently.
type SessionDecisionEmailVerificationsLifecycleDetails ¶
type SessionDecisionEmailVerificationsLifecycleDetails struct {
Status string `json:"status"`
Reason string `json:"reason"`
CodeTried string `json:"code_tried"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerificationsLifecycleDetails: Event-specific payload. Send events carry `status`, `reason`; code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `EMAIL_VERIFICATION_APPROVED`).
func (*SessionDecisionEmailVerificationsLifecycleDetails) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerificationsLifecycleDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerificationsLifecycleDetails leniently.
type SessionDecisionEmailVerificationsMatches ¶
type SessionDecisionEmailVerificationsMatches struct {
SessionID string `json:"session_id"`
SessionNumber int64 `json:"session_number"`
VendorData string `json:"vendor_data"`
VerificationDate time.Time `json:"verification_date"`
Email string `json:"email"`
Status string `json:"status"`
IsBlocklisted bool `json:"is_blocklisted"`
APIService string `json:"api_service"`
// Where this match came from. `session` means another verification session in
// your application matched on this value. `list_entry` means the value was hit
// against an org-managed list (allowlist/blocklist) - see the management API
// lists overview at `/management-api/lists/overview` for how to manage those
// lists.
Source SessionDecisionEmailVerificationsMatchesSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerificationsMatches is a response object.
func (*SessionDecisionEmailVerificationsMatches) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerificationsMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerificationsMatches leniently.
type SessionDecisionEmailVerificationsMatchesSource ¶
type SessionDecisionEmailVerificationsMatchesSource string
SessionDecisionEmailVerificationsMatchesSource: Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) - see the management API lists overview at `/management-api/lists/overview` for how to manage those lists.
SessionDecisionEmailVerificationsMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionEmailVerificationsMatchesSourceSession SessionDecisionEmailVerificationsMatchesSource = "session" SessionDecisionEmailVerificationsMatchesSourceListEntry SessionDecisionEmailVerificationsMatchesSource = "list_entry" )
Known values of SessionDecisionEmailVerificationsMatchesSource.
type SessionDecisionEmailVerificationsStatus ¶
type SessionDecisionEmailVerificationsStatus string
SessionDecisionEmailVerificationsStatus: Feature-level status of this email verification step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionEmailVerificationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionEmailVerificationsStatusNotFinished SessionDecisionEmailVerificationsStatus = "Not Finished" SessionDecisionEmailVerificationsStatusApproved SessionDecisionEmailVerificationsStatus = "Approved" SessionDecisionEmailVerificationsStatusDeclined SessionDecisionEmailVerificationsStatus = "Declined" SessionDecisionEmailVerificationsStatusInReview SessionDecisionEmailVerificationsStatus = "In Review" SessionDecisionEmailVerificationsStatusExpired SessionDecisionEmailVerificationsStatus = "Expired" )
Known values of SessionDecisionEmailVerificationsStatus.
type SessionDecisionEmailVerificationsWarnings ¶
type SessionDecisionEmailVerificationsWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionEmailVerificationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionEmailVerificationsWarnings is a response object.
func (*SessionDecisionEmailVerificationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionEmailVerificationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionEmailVerificationsWarnings leniently.
type SessionDecisionEmailVerificationsWarningsFeature ¶
type SessionDecisionEmailVerificationsWarningsFeature string
SessionDecisionEmailVerificationsWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionEmailVerificationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionEmailVerificationsWarningsFeatureIDVerification SessionDecisionEmailVerificationsWarningsFeature = "ID_VERIFICATION" SessionDecisionEmailVerificationsWarningsFeatureNFC SessionDecisionEmailVerificationsWarningsFeature = "NFC" SessionDecisionEmailVerificationsWarningsFeatureLiveness SessionDecisionEmailVerificationsWarningsFeature = "LIVENESS" SessionDecisionEmailVerificationsWarningsFeatureFacematch SessionDecisionEmailVerificationsWarningsFeature = "FACEMATCH" SessionDecisionEmailVerificationsWarningsFeatureProofOfAddress SessionDecisionEmailVerificationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionEmailVerificationsWarningsFeaturePhone SessionDecisionEmailVerificationsWarningsFeature = "PHONE" SessionDecisionEmailVerificationsWarningsFeatureEmail SessionDecisionEmailVerificationsWarningsFeature = "EMAIL" SessionDecisionEmailVerificationsWarningsFeatureAML SessionDecisionEmailVerificationsWarningsFeature = "AML" SessionDecisionEmailVerificationsWarningsFeatureLocation SessionDecisionEmailVerificationsWarningsFeature = "LOCATION" SessionDecisionEmailVerificationsWarningsFeatureDatabaseValidation SessionDecisionEmailVerificationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionEmailVerificationsWarningsFeatureQuestionnaire SessionDecisionEmailVerificationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionEmailVerificationsWarningsFeatureDocumentAi SessionDecisionEmailVerificationsWarningsFeature = "DOCUMENT_AI" SessionDecisionEmailVerificationsWarningsFeatureKYBRegistry SessionDecisionEmailVerificationsWarningsFeature = "KYB_REGISTRY" SessionDecisionEmailVerificationsWarningsFeatureKYBDocuments SessionDecisionEmailVerificationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionEmailVerificationsWarningsFeatureKYBKeyPeople SessionDecisionEmailVerificationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionEmailVerificationsWarningsFeature.
type SessionDecisionEnvironment ¶
type SessionDecisionEnvironment string
SessionDecisionEnvironment: Whether the session was created by a live application (`live`) or a sandbox application (`sandbox`). Sandbox sessions are free, fully simulated, and never bill credits.
SessionDecisionEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionEnvironmentLive SessionDecisionEnvironment = "live" SessionDecisionEnvironmentSandbox SessionDecisionEnvironment = "sandbox" )
Known values of SessionDecisionEnvironment.
type SessionDecisionExpectedDetails ¶
type SessionDecisionExpectedDetails struct {
// User's first name. For example, `John`.
FirstName string `json:"first_name"`
// User's last name. For example, `Doe`.
LastName string `json:"last_name"`
// User's date of birth with format: YYYY-MM-DD. For example, `1990-05-15`.
DateOfBirth string `json:"date_of_birth"`
// User's gender. Must be either 'M', 'F', or null.
Gender SessionDecisionExpectedDetailsGender `json:"gender"`
// ISO 3166-1 alpha-3 country code representing the applicant's country of
// origin. For example, `USA`.
Nationality string `json:"nationality"`
// ISO 3166-1 alpha-3 country code representing the country of the Proof of
// Address document, or the country of the applicant's ID document, which may
// differ from nationality. For example, `GBR`.
Country string `json:"country"`
// The address in a human readable format, including as much information as
// possible. For example, `123 Main St, San Francisco, CA 94105, USA`.
Address string `json:"address"`
// The user's document number, personal number, or tax number. For example,
// `123456789`.
IdentificationNumber string `json:"identification_number"`
// Expected IP address for the session. If the actual IP address differs from
// this value, a warning will be logged. For example, `192.168.1.100`.
IPAddress string `json:"ip_address"`
// Document types the ID verification step was restricted to at session
// creation. Empty/unset means no restriction. Codes: `P` (passport), `ID`
// (national ID), `DL` (driver's license), `RP` (residence permit), `HIC`
// (health insurance card), `TC` (tax card), `SSC` (social security card).
ExpectedDocumentTypes []SessionDecisionExpectedDetailsExpectedDocumentTypes `json:"expected_document_types"`
// Expected ID-document issuing country (ISO 3166-1 alpha-3), when restricted at
// creation time.
IDCountry string `json:"id_country"`
// Expected Proof of Address document country (ISO 3166-1 alpha-3), when
// restricted at creation time.
POACountry string `json:"poa_country"`
// Expected legal name of the business. Business (KYB) sessions only.
CompanyName string `json:"company_name"`
// Expected registry country as `XX` or `XX-YY` (ISO 3166-1 alpha-2, optionally
// with an ISO 3166-2 subdivision for state-level registries, e.g. `US-CA`).
// Business (KYB) sessions only.
RegistryCountry string `json:"registry_country"`
// Expected company registration number. Business (KYB) sessions only.
RegistrationNumber string `json:"registration_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionExpectedDetails: Expected details supplied at session creation - used for cross-validation against extracted data (KYC) or to pre-fill the company registry search (KYB). Echoes back exactly the keys that were provided; `null` when none were supplied. KYC sessions carry the person fields; Business (KYB) sessions carry `company_name`, `registry_country` and `registration_number`.
func (*SessionDecisionExpectedDetails) UnmarshalJSON ¶
func (r *SessionDecisionExpectedDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionExpectedDetails leniently.
type SessionDecisionExpectedDetailsExpectedDocumentTypes ¶
type SessionDecisionExpectedDetailsExpectedDocumentTypes string
SessionDecisionExpectedDetailsExpectedDocumentTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionExpectedDetailsExpectedDocumentTypesP SessionDecisionExpectedDetailsExpectedDocumentTypes = "P" SessionDecisionExpectedDetailsExpectedDocumentTypesID SessionDecisionExpectedDetailsExpectedDocumentTypes = "ID" SessionDecisionExpectedDetailsExpectedDocumentTypesDl SessionDecisionExpectedDetailsExpectedDocumentTypes = "DL" SessionDecisionExpectedDetailsExpectedDocumentTypesRp SessionDecisionExpectedDetailsExpectedDocumentTypes = "RP" SessionDecisionExpectedDetailsExpectedDocumentTypesHic SessionDecisionExpectedDetailsExpectedDocumentTypes = "HIC" SessionDecisionExpectedDetailsExpectedDocumentTypesTc SessionDecisionExpectedDetailsExpectedDocumentTypes = "TC" SessionDecisionExpectedDetailsExpectedDocumentTypesSsc SessionDecisionExpectedDetailsExpectedDocumentTypes = "SSC" )
Known values of SessionDecisionExpectedDetailsExpectedDocumentTypes.
type SessionDecisionExpectedDetailsGender ¶
type SessionDecisionExpectedDetailsGender string
SessionDecisionExpectedDetailsGender: User's gender. Must be either 'M', 'F', or null.
SessionDecisionExpectedDetailsGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionExpectedDetailsGenderM SessionDecisionExpectedDetailsGender = "M" SessionDecisionExpectedDetailsGenderF SessionDecisionExpectedDetailsGender = "F" )
Known values of SessionDecisionExpectedDetailsGender.
type SessionDecisionFaceMatches ¶
type SessionDecisionFaceMatches struct {
// Workflow graph node id of the face-match step that produced this report.
NodeID string `json:"node_id"`
// Feature-level status of this face-match step. Independent of the top-level
// session `status` - a session can reach its overall decision while an
// individual feature stays `In Review`.
Status SessionDecisionFaceMatchesStatus `json:"status"`
// Confidence score of the face match
Score float64 `json:"score"`
// Session id under which the source (reference) portrait is stored. In
// biometric-authentication flows this is the session's own id (the submitted
// portrait is stored under the new session). `null` when the source image is
// the same session's document portrait.
SourceImageSessionID string `json:"source_image_session_id"`
// URL of the source image used for comparison
SourceImage string `json:"source_image"`
// URL of the target image used for comparison
TargetImage string `json:"target_image"`
// Face match verification warnings
Warnings []SessionDecisionFaceMatchesWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionFaceMatches: One face-match report - the full report.
func (*SessionDecisionFaceMatches) UnmarshalJSON ¶
func (r *SessionDecisionFaceMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionFaceMatches leniently.
type SessionDecisionFaceMatchesStatus ¶
type SessionDecisionFaceMatchesStatus string
SessionDecisionFaceMatchesStatus: Feature-level status of this face-match step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionFaceMatchesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionFaceMatchesStatusNotFinished SessionDecisionFaceMatchesStatus = "Not Finished" SessionDecisionFaceMatchesStatusApproved SessionDecisionFaceMatchesStatus = "Approved" SessionDecisionFaceMatchesStatusDeclined SessionDecisionFaceMatchesStatus = "Declined" SessionDecisionFaceMatchesStatusInReview SessionDecisionFaceMatchesStatus = "In Review" SessionDecisionFaceMatchesStatusResubRequested SessionDecisionFaceMatchesStatus = "Resub Requested" )
Known values of SessionDecisionFaceMatchesStatus.
type SessionDecisionFaceMatchesWarnings ¶
type SessionDecisionFaceMatchesWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionFaceMatchesWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionFaceMatchesWarnings is a response object.
func (*SessionDecisionFaceMatchesWarnings) UnmarshalJSON ¶
func (r *SessionDecisionFaceMatchesWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionFaceMatchesWarnings leniently.
type SessionDecisionFaceMatchesWarningsFeature ¶
type SessionDecisionFaceMatchesWarningsFeature string
SessionDecisionFaceMatchesWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionFaceMatchesWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionFaceMatchesWarningsFeatureIDVerification SessionDecisionFaceMatchesWarningsFeature = "ID_VERIFICATION" SessionDecisionFaceMatchesWarningsFeatureNFC SessionDecisionFaceMatchesWarningsFeature = "NFC" SessionDecisionFaceMatchesWarningsFeatureLiveness SessionDecisionFaceMatchesWarningsFeature = "LIVENESS" SessionDecisionFaceMatchesWarningsFeatureFacematch SessionDecisionFaceMatchesWarningsFeature = "FACEMATCH" SessionDecisionFaceMatchesWarningsFeatureProofOfAddress SessionDecisionFaceMatchesWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionFaceMatchesWarningsFeaturePhone SessionDecisionFaceMatchesWarningsFeature = "PHONE" SessionDecisionFaceMatchesWarningsFeatureEmail SessionDecisionFaceMatchesWarningsFeature = "EMAIL" SessionDecisionFaceMatchesWarningsFeatureAML SessionDecisionFaceMatchesWarningsFeature = "AML" SessionDecisionFaceMatchesWarningsFeatureLocation SessionDecisionFaceMatchesWarningsFeature = "LOCATION" SessionDecisionFaceMatchesWarningsFeatureDatabaseValidation SessionDecisionFaceMatchesWarningsFeature = "DATABASE_VALIDATION" SessionDecisionFaceMatchesWarningsFeatureQuestionnaire SessionDecisionFaceMatchesWarningsFeature = "QUESTIONNAIRE" SessionDecisionFaceMatchesWarningsFeatureDocumentAi SessionDecisionFaceMatchesWarningsFeature = "DOCUMENT_AI" SessionDecisionFaceMatchesWarningsFeatureKYBRegistry SessionDecisionFaceMatchesWarningsFeature = "KYB_REGISTRY" SessionDecisionFaceMatchesWarningsFeatureKYBDocuments SessionDecisionFaceMatchesWarningsFeature = "KYB_DOCUMENTS" SessionDecisionFaceMatchesWarningsFeatureKYBKeyPeople SessionDecisionFaceMatchesWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionFaceMatchesWarningsFeature.
type SessionDecisionIDVerifications ¶
type SessionDecisionIDVerifications struct {
// Workflow graph node id of the OCR step that produced this report.
NodeID string `json:"node_id"`
// Which ID Verification method produced this report. `document` - the user
// photographed a physical ID (the default, and the value on every session
// created before the other methods existed). `id_lookup` - the user typed their
// national ID number and it was checked against a government register or
// another authoritative source for that country (`id_lookup.source` names
// which). `wallet` - the user signed in with a government or bank digital
// identity.
VerificationMethod SessionDecisionIDVerificationsVerificationMethod `json:"verification_method"`
// Assurance tier derived from `verification_method`: `documentary` for a
// document that was captured and checked, `data_match` for details that matched
// a record held by the source queried, `cryptographic` for attributes an
// identity provider authenticated and signed.
Assurance SessionDecisionIDVerificationsAssurance `json:"assurance"`
// Catalog wallet id when `verification_method` is `wallet` (`mitid`,
// `bankid_se`, `itsme`, ...). `null` otherwise.
WalletProvider string `json:"wallet_provider"`
// Why a non-document method ended the ID step. Set on the declined report when
// a lookup or a wallet sign-in failed and the country's fallback switch was
// `decline`. `null` otherwise.
FallbackFrom SessionDecisionIDVerificationsFallbackFrom `json:"fallback_from"`
// Registry evidence. Present only when `verification_method` is `id_lookup`;
// `null` otherwise.
IDLookup SessionDecisionIDVerificationsIDLookup `json:"id_lookup"`
// Credential evidence. Present only when `verification_method` is `wallet`;
// `null` otherwise.
WalletVerification SessionDecisionIDVerificationsWalletVerification `json:"wallet_verification"`
// Feature-level status of this ID verification step. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionIDVerificationsStatus `json:"status"`
// Type of identity document
DocumentType string `json:"document_type"`
// Accepted document subtype code from the workflow document settings, including
// the document region when applicable. Examples: `ID_CARD_GENERIC`,
// `QUEENSLAND_DRIVER_LICENSE_GENERIC`.
DocumentSubtype string `json:"document_subtype"`
// Document identification number
DocumentNumber string `json:"document_number"`
// Personal identification number
PersonalNumber string `json:"personal_number"`
// URL of the portrait image
PortraitImage string `json:"portrait_image"`
// URL of the front document image
FrontImage string `json:"front_image"`
// URL of the front document video
FrontVideo string `json:"front_video"`
// URL of the back document image
BackImage string `json:"back_image"`
// URL of the back document video
BackVideo string `json:"back_video"`
// URL of the full front document image
FullFrontImage string `json:"full_front_image"`
// URL of the full back document image
FullBackImage string `json:"full_back_image"`
// URL of the front document image captured from the front-facing camera
FrontImageCameraFront string `json:"front_image_camera_front"`
// URL of the back document image captured from the front-facing camera
BackImageCameraFront string `json:"back_image_camera_front"`
// Date of birth from document
DateOfBirth string `json:"date_of_birth"`
// Calculated age from date of birth
Age int64 `json:"age"`
// Document expiration date
ExpirationDate string `json:"expiration_date"`
// Document issue date
DateOfIssue string `json:"date_of_issue"`
// ISO code of issuing state
IssuingState string `json:"issuing_state"`
// Full name of issuing state
IssuingStateName string `json:"issuing_state_name"`
// First name from document
FirstName string `json:"first_name"`
// Last name from document
LastName string `json:"last_name"`
// Full name from document
FullName string `json:"full_name"`
// Gender from document
Gender string `json:"gender"`
// Raw address from document
Address string `json:"address"`
// Formatted full address
FormattedAddress string `json:"formatted_address"`
// Place of birth from document
PlaceOfBirth string `json:"place_of_birth"`
// Marital status from document
MaritalStatus string `json:"marital_status"`
// ISO nationality code
Nationality string `json:"nationality"`
// Additional document fields. Includes document-specific attributes (e.g.
// `dl_categories`, `blood_group`, `sponsor`, `employer`,
// `dl_class_code_b_from`, `dl_class_code_b_to`). Driver license class validity
// dates are returned as `dl_class_code_<class>_from` and
// `dl_class_code_<class>_to`, and per-class restriction/information codes (e.g.
// column 12 of UK licences) as `dl_class_code_<class>_notes`. When the document
// carries names, address, or place of birth in multiple scripts, this object
// also includes alternate-script versions of those fields. The workflow setting
// `preferred_characters` (`latin` or `non_latin`) controls which script
// populates the top-level fields (`first_name`, `last_name`, `full_name`,
// `address`, `place_of_birth`); the opposite script lands here as
// `first_name_non_latin` / `last_name_non_latin` / `full_name_non_latin` /
// `middle_name_non_latin` / `address_non_latin` / `place_of_birth_non_latin`
// (when `preferred_characters` is `latin`) or with a `_latin` suffix (when
// `preferred_characters` is `non_latin`). Keys appear only when the OCR
// actually extracts a real alternate-script value - a field whose alternate
// value is in the same script as the preferred set (for example, a
// Cyrillic-labelled field whose OCR value came back in Latin homoglyphs) is
// skipped. When `preferred_characters` is `latin` but the document only carries
// non-Latin text, Didit transliterates the extracted values and exposes
// `first_name_latin` / `last_name_latin` / etc. as a fallback.
ExtraFields SessionDecisionIDVerificationsExtraFields `json:"extra_fields"`
// Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null`
// if no MRZ was detected.
MRZ SessionDecisionIDVerificationsMRZ `json:"mrz"`
// Structured address details
ParsedAddress SessionDecisionIDVerificationsParsedAddress `json:"parsed_address"`
// Additional document verification files
ExtraFiles []string `json:"extra_files"`
// Face match score between the portrait extracted from the front document image
// and the front camera image
FrontImageCameraFrontFaceMatchScore float64 `json:"front_image_camera_front_face_match_score"`
// Face match score between the portrait extracted from the back document image
// and the front camera image
BackImageCameraFrontFaceMatchScore float64 `json:"back_image_camera_front_face_match_score"`
// Previous sessions or face blocklist entries whose face matched the selfie the
// front camera took during document capture (Silent Capture Face Search). Same
// entry format as `liveness_checks[].matches`. `null` for sessions created
// before this field existed or when the search did not run; an empty array when
// it ran and found nothing. `match_image_url` is a presigned URL that expires.
DocumentSelfieFaceMatches []SessionDecisionIDVerificationsDocumentSelfieFaceMatches `json:"document_selfie_face_matches"`
// Quality metrics for the front document image. Each sub-score ranges from 0 to
// 100.
FrontImageQualityScore SessionDecisionIDVerificationsFrontImageQualityScore `json:"front_image_quality_score"`
// Quality metrics for the back document image. Same structure as
// front_image_quality_score.
BackImageQualityScore SessionDecisionIDVerificationsBackImageQualityScore `json:"back_image_quality_score"`
// Document verification warnings
Warnings []SessionDecisionIDVerificationsWarnings `json:"warnings"`
// Matching documents found during duplicate/blocklist detection (up to 5
// matches)
Matches []SessionDecisionIDVerificationsMatches `json:"matches"`
// Document-liveness scores per fraud type, reported whether or not a warning
// fired, so an approved document can still be audited. `null` when the check
// did not run.
DocumentLiveness SessionDecisionIDVerificationsDocumentLiveness `json:"document_liveness"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerifications: One ID verification report - the full report for a single ID Verification step. `verification_method` says which of the three methods produced it (document capture, non-doc lookup or wallet sign-in) and the method-specific evidence block is populated accordingly.
func (*SessionDecisionIDVerifications) UnmarshalJSON ¶
func (r *SessionDecisionIDVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerifications leniently.
type SessionDecisionIDVerificationsAssurance ¶
type SessionDecisionIDVerificationsAssurance string
SessionDecisionIDVerificationsAssurance: Assurance tier derived from `verification_method`: `documentary` for a document that was captured and checked, `data_match` for details that matched a record held by the source queried, `cryptographic` for attributes an identity provider authenticated and signed.
SessionDecisionIDVerificationsAssurance is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsAssuranceDocumentary SessionDecisionIDVerificationsAssurance = "documentary" SessionDecisionIDVerificationsAssuranceDataMatch SessionDecisionIDVerificationsAssurance = "data_match" SessionDecisionIDVerificationsAssuranceCryptographic SessionDecisionIDVerificationsAssurance = "cryptographic" )
Known values of SessionDecisionIDVerificationsAssurance.
type SessionDecisionIDVerificationsBackImageQualityScore ¶
type SessionDecisionIDVerificationsBackImageQualityScore struct {
// Sharpness of the image measured via top-10% local Laplacian variance. Robust
// to documents with large uniform backgrounds. Higher values indicate a
// sharper, less blurry image.
FocusScore float64 `json:"focus_score"`
// How well-lit the image is. Penalizes images that are too dark or overexposed,
// with ideal brightness around mid-range.
BrightnessScore float64 `json:"brightness_score"`
// Indicates the direction of the brightness problem when the brightness_score
// is low. 'ok' means brightness is acceptable, 'too_dark' means the image is
// underexposed, 'too_bright' means the image is overexposed.
BrightnessIssue SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue `json:"brightness_issue"`
// true if all four corners of the document are fully visible inside the image
// frame, false if any corner is cut off. Null when corner coordinates are
// unavailable.
IsDocumentFullyVisible bool `json:"is_document_fully_visible"`
// Effective resolution of the image based on total pixel count.
ResolutionScore float64 `json:"resolution_score"`
// Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%).
OverallScore float64 `json:"overall_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsBackImageQualityScore: Quality metrics for the back document image. Same structure as front_image_quality_score.
func (*SessionDecisionIDVerificationsBackImageQualityScore) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsBackImageQualityScore) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsBackImageQualityScore leniently.
type SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue ¶
type SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue string
SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue: Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed.
SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssueOk SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue = "ok" SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssueTooDark SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue = "too_dark" SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssueTooBright SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue = "too_bright" )
Known values of SessionDecisionIDVerificationsBackImageQualityScoreBrightnessIssue.
type SessionDecisionIDVerificationsDocumentLiveness ¶
type SessionDecisionIDVerificationsDocumentLiveness struct {
PortraitReplace SessionDecisionIDVerificationsDocumentLivenessPortraitReplace `json:"portrait_replace"`
PrintedCopy SessionDecisionIDVerificationsDocumentLivenessPrintedCopy `json:"printed_copy"`
ScreenReplay SessionDecisionIDVerificationsDocumentLivenessScreenReplay `json:"screen_replay"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentLiveness: Document-liveness scores per fraud type, reported whether or not a warning fired, so an approved document can still be audited. `null` when the check did not run.
func (*SessionDecisionIDVerificationsDocumentLiveness) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentLiveness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentLiveness leniently.
type SessionDecisionIDVerificationsDocumentLivenessPortraitReplace ¶
type SessionDecisionIDVerificationsDocumentLivenessPortraitReplace struct {
// Likelihood that the document is genuine for this fraud type, 0-100 (higher =
// more likely genuine). The lowest of the two sides - the value the decision
// used. `null` when neither side produced a usable score.
Score float64 `json:"score"`
// Score for the front side; `null` when not captured or when the score was
// dropped.
Front float64 `json:"front"`
// Score for the back side; `null` when not captured or when the score was
// dropped.
Back float64 `json:"back"`
// The decline threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
DeclineThreshold float64 `json:"decline_threshold"`
// The review threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
ReviewThreshold float64 `json:"review_threshold"`
// The fraud-type bucket saved at evaluation time. Null when there is no usable
// score, the check was not applied, or historical evaluation evidence is
// unavailable. Later workflow edits do not change it.
Bucket SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket `json:"bucket"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentLivenessPortraitReplace is a response object.
func (*SessionDecisionIDVerificationsDocumentLivenessPortraitReplace) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentLivenessPortraitReplace) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentLivenessPortraitReplace leniently.
type SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket ¶
type SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket string
SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket: The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.
SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucketApprove SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket = "approve" SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucketReview SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket = "review" SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucketDecline SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket = "decline" )
Known values of SessionDecisionIDVerificationsDocumentLivenessPortraitReplaceBucket.
type SessionDecisionIDVerificationsDocumentLivenessPrintedCopy ¶
type SessionDecisionIDVerificationsDocumentLivenessPrintedCopy struct {
// Likelihood that the document is genuine for this fraud type, 0-100 (higher =
// more likely genuine). The lowest of the two sides - the value the decision
// used. `null` when neither side produced a usable score.
Score float64 `json:"score"`
// Score for the front side; `null` when not captured or when the score was
// dropped.
Front float64 `json:"front"`
// Score for the back side; `null` when not captured or when the score was
// dropped.
Back float64 `json:"back"`
// The decline threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
DeclineThreshold float64 `json:"decline_threshold"`
// The review threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
ReviewThreshold float64 `json:"review_threshold"`
// The fraud-type bucket saved at evaluation time. Null when there is no usable
// score, the check was not applied, or historical evaluation evidence is
// unavailable. Later workflow edits do not change it.
Bucket SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket `json:"bucket"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentLivenessPrintedCopy is a response object.
func (*SessionDecisionIDVerificationsDocumentLivenessPrintedCopy) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentLivenessPrintedCopy) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentLivenessPrintedCopy leniently.
type SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket ¶
type SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket string
SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket: The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.
SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucketApprove SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket = "approve" SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucketReview SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket = "review" SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucketDecline SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket = "decline" )
Known values of SessionDecisionIDVerificationsDocumentLivenessPrintedCopyBucket.
type SessionDecisionIDVerificationsDocumentLivenessScreenReplay ¶
type SessionDecisionIDVerificationsDocumentLivenessScreenReplay struct {
// Likelihood that the document is genuine for this fraud type, 0-100 (higher =
// more likely genuine). The lowest of the two sides - the value the decision
// used. `null` when neither side produced a usable score.
Score float64 `json:"score"`
// Score for the front side; `null` when not captured or when the score was
// dropped.
Front float64 `json:"front"`
// Score for the back side; `null` when not captured or when the score was
// dropped.
Back float64 `json:"back"`
// The decline threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
DeclineThreshold float64 `json:"decline_threshold"`
// The review threshold saved when this document was evaluated. Later workflow
// edits do not change it. Null when historical evaluation evidence is
// unavailable.
ReviewThreshold float64 `json:"review_threshold"`
// The fraud-type bucket saved at evaluation time. Null when there is no usable
// score, the check was not applied, or historical evaluation evidence is
// unavailable. Later workflow edits do not change it.
Bucket SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket `json:"bucket"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentLivenessScreenReplay is a response object.
func (*SessionDecisionIDVerificationsDocumentLivenessScreenReplay) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentLivenessScreenReplay) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentLivenessScreenReplay leniently.
type SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket ¶
type SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket string
SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket: The fraud-type bucket saved at evaluation time. Null when there is no usable score, the check was not applied, or historical evaluation evidence is unavailable. Later workflow edits do not change it.
SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucketApprove SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket = "approve" SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucketReview SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket = "review" SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucketDecline SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket = "decline" )
Known values of SessionDecisionIDVerificationsDocumentLivenessScreenReplayBucket.
type SessionDecisionIDVerificationsDocumentSelfieFaceMatches ¶
type SessionDecisionIDVerificationsDocumentSelfieFaceMatches struct {
// Session ID of the matching face. `null` when `source` is `imported`,
// `list_entry`, or `retained_template`.
SessionID string `json:"session_id"`
SessionNumber int64 `json:"session_number"`
// Face similarity between the two images, clamped to 0-100.
SimilarityPercentage float64 `json:"similarity_percentage"`
// `vendor_data` of the matching session or linked User for imported and
// retained-template faces.
VendorData string `json:"vendor_data"`
// Linked User id for `imported` and `retained_template` matches and for session
// matches linked to a User. `null` for list entries and sessions without a
// User.
VendorUserID string `json:"vendor_user_id"`
// Id of the retained biometric template. Set only when `source` is
// `retained_template`; `null` otherwise.
BiometricTemplateID string `json:"biometric_template_id"`
// When the matching face was captured, or when a retained template was created.
// `null` for list entries.
VerificationDate time.Time `json:"verification_date"`
// Identity data from the matching session or imported User profile. Always
// `null` for `retained_template` and `list_entry` matches.
UserDetails SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails `json:"user_details"`
// Reference image for image-backed matches. Always `null` for
// `retained_template` matches because retained templates contain no image.
MatchImageURL string `json:"match_image_url"`
// Lifecycle status of the matching session. `null` for non-session sources.
Status string `json:"status"`
// Whether the matching face is on a blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// Whether the matching face is on an allowlist.
IsAllowlisted bool `json:"is_allowlisted"`
// Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`,
// `FACE_MATCH`); `null` for workflow sessions and non-session sources.
APIService string `json:"api_service"`
// Origin of the matching face: `session`, `imported` (User face upload),
// `list_entry` (allow/block list), or `retained_template` (an image-free
// biometric template stored on a User, listed under
// `/v3/biometric-templates/`).
Source SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentSelfieFaceMatches is a response object.
func (*SessionDecisionIDVerificationsDocumentSelfieFaceMatches) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentSelfieFaceMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentSelfieFaceMatches leniently.
type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource ¶
type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource string
SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource: Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`).
SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSourceSession SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource = "session" SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSourceImported SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource = "imported" SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSourceListEntry SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource = "list_entry" SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSourceRetainedTemplate SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource = "retained_template" )
Known values of SessionDecisionIDVerificationsDocumentSelfieFaceMatchesSource.
type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails ¶
type SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails struct {
FullName string `json:"full_name"`
DocumentType string `json:"document_type"`
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails: Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.
func (*SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsDocumentSelfieFaceMatchesUserDetails leniently.
type SessionDecisionIDVerificationsExtraFields ¶
type SessionDecisionIDVerificationsExtraFields struct {
DlCategories []string `json:"dl_categories"`
BloodGroup string `json:"blood_group"`
// First name in the non-Latin script when `preferred_characters=latin` and a
// non-Latin version is present on the document (e.g. `Айна` for a Kyrgyz ID).
FirstNameNonLatin string `json:"first_name_non_latin"`
// Surname in the non-Latin script when `preferred_characters=latin` and a
// non-Latin version is present on the document.
LastNameNonLatin string `json:"last_name_non_latin"`
// Middle name / patronymic in the non-Latin script when
// `preferred_characters=latin` and a non-Latin version is present on the
// document.
MiddleNameNonLatin string `json:"middle_name_non_latin"`
// Composed full name in the non-Latin script. Reconstructed from the individual
// components when both first and last names are available.
FullNameNonLatin string `json:"full_name_non_latin"`
// Address in the non-Latin script when `preferred_characters=latin` and a
// non-Latin version is present on the document.
AddressNonLatin string `json:"address_non_latin"`
// Place of birth in the non-Latin script when `preferred_characters=latin` and
// a non-Latin version is present on the document.
PlaceOfBirthNonLatin string `json:"place_of_birth_non_latin"`
// First name in Latin script. Populated when `preferred_characters=non_latin`
// and a Latin version is present on the document, or - as a transliteration
// fallback - when `preferred_characters=latin` but the document only carries
// non-Latin text.
FirstNameLatin string `json:"first_name_latin"`
// Surname in Latin script. Same rules as `first_name_latin`.
LastNameLatin string `json:"last_name_latin"`
// Middle name / patronymic in Latin script. Same rules as `first_name_latin`.
MiddleNameLatin string `json:"middle_name_latin"`
// Composed full name in Latin script. Always reconstructed from the individual
// components when both first and last names are available.
FullNameLatin string `json:"full_name_latin"`
// Address in Latin script. Same rules as `first_name_latin`.
AddressLatin string `json:"address_latin"`
// Place of birth in Latin script. Same rules as `first_name_latin`.
PlaceOfBirthLatin string `json:"place_of_birth_latin"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsExtraFields: Additional document fields. Includes document-specific attributes (e.g. `dl_categories`, `blood_group`, `sponsor`, `employer`, `dl_class_code_b_from`, `dl_class_code_b_to`). Driver license class validity dates are returned as `dl_class_code_<class>_from` and `dl_class_code_<class>_to`, and per-class restriction/information codes (e.g. column 12 of UK licences) as `dl_class_code_<class>_notes`. When the document carries names, address, or place of birth in multiple scripts, this object also includes alternate-script versions of those fields. The workflow setting `preferred_characters` (`latin` or `non_latin`) controls which script populates the top-level fields (`first_name`, `last_name`, `full_name`, `address`, `place_of_birth`); the opposite script lands here as `first_name_non_latin` / `last_name_non_latin` / `full_name_non_latin` / `middle_name_non_latin` / `address_non_latin` / `place_of_birth_non_latin` (when `preferred_characters` is `latin`) or with a `_latin` suffix (when `preferred_characters` is `non_latin`). Keys appear only when the OCR actually extracts a real alternate-script value - a field whose alternate value is in the same script as the preferred set (for example, a Cyrillic-labelled field whose OCR value came back in Latin homoglyphs) is skipped. When `preferred_characters` is `latin` but the document only carries non-Latin text, Didit transliterates the extracted values and exposes `first_name_latin` / `last_name_latin` / etc. as a fallback.
func (*SessionDecisionIDVerificationsExtraFields) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsExtraFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsExtraFields leniently.
type SessionDecisionIDVerificationsFallbackFrom ¶
type SessionDecisionIDVerificationsFallbackFrom struct {
// The method that failed.
Method SessionDecisionIDVerificationsFallbackFromMethod `json:"method"`
// The outcome that ended it, e.g. `no_match`, `provider_error`, `cancelled`,
// `timeout`.
Reason string `json:"reason"`
// The configured action that was taken, e.g. `decline`.
Action string `json:"action"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsFallbackFrom: Why a non-document method ended the ID step. Set on the declined report when a lookup or a wallet sign-in failed and the country's fallback switch was `decline`. `null` otherwise.
func (*SessionDecisionIDVerificationsFallbackFrom) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsFallbackFrom) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsFallbackFrom leniently.
type SessionDecisionIDVerificationsFallbackFromMethod ¶
type SessionDecisionIDVerificationsFallbackFromMethod string
SessionDecisionIDVerificationsFallbackFromMethod: The method that failed.
SessionDecisionIDVerificationsFallbackFromMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsFallbackFromMethodIDLookup SessionDecisionIDVerificationsFallbackFromMethod = "id_lookup" SessionDecisionIDVerificationsFallbackFromMethodWallet SessionDecisionIDVerificationsFallbackFromMethod = "wallet" )
Known values of SessionDecisionIDVerificationsFallbackFromMethod.
type SessionDecisionIDVerificationsFrontImageQualityScore ¶
type SessionDecisionIDVerificationsFrontImageQualityScore struct {
// Sharpness of the image measured via top-10% local Laplacian variance. Robust
// to documents with large uniform backgrounds. Higher values indicate a
// sharper, less blurry image.
FocusScore float64 `json:"focus_score"`
// How well-lit the image is. Penalizes images that are too dark or overexposed,
// with ideal brightness around mid-range.
BrightnessScore float64 `json:"brightness_score"`
// Indicates the direction of the brightness problem when the brightness_score
// is low. 'ok' means brightness is acceptable, 'too_dark' means the image is
// underexposed, 'too_bright' means the image is overexposed.
BrightnessIssue SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue `json:"brightness_issue"`
// true if all four corners of the document are fully visible inside the image
// frame, false if any corner is cut off. Null when corner coordinates are
// unavailable.
IsDocumentFullyVisible bool `json:"is_document_fully_visible"`
// Effective resolution of the image based on total pixel count.
ResolutionScore float64 `json:"resolution_score"`
// Weighted composite of sub-scores (focus 45%, brightness 30%, resolution 25%).
OverallScore float64 `json:"overall_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsFrontImageQualityScore: Quality metrics for the front document image. Each sub-score ranges from 0 to 100.
func (*SessionDecisionIDVerificationsFrontImageQualityScore) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsFrontImageQualityScore) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsFrontImageQualityScore leniently.
type SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue ¶
type SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue string
SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue: Indicates the direction of the brightness problem when the brightness_score is low. 'ok' means brightness is acceptable, 'too_dark' means the image is underexposed, 'too_bright' means the image is overexposed.
SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssueOk SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue = "ok" SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssueTooDark SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue = "too_dark" SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssueTooBright SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue = "too_bright" )
Known values of SessionDecisionIDVerificationsFrontImageQualityScoreBrightnessIssue.
type SessionDecisionIDVerificationsIDLookup ¶
type SessionDecisionIDVerificationsIDLookup struct {
// Customer-facing name of the source queried, e.g. `Department of Home Affairs`
// (a government register) or `UK credit bureau and financial services records`
// (not a government register). This is the only statement of provenance for the
// lookup; do not assume a government source.
Source string `json:"source"`
// When the register answered.
CheckedAt time.Time `json:"checked_at"`
// 1-based attempt number this report came from.
Attempts int64 `json:"attempts"`
// Attempt budget configured for the country (1 to 5, default 1).
MaxAttempts int64 `json:"max_attempts"`
// What the register answered. Only `match`, `partial_match` and `no_match`
// count against the attempt budget and bill.
Outcome SessionDecisionIDVerificationsIDLookupOutcome `json:"outcome"`
// One row per comparable field the source answered on, plus one row per source
// error. Comparison rows use the normalised field names below rather than the
// country's request field keys, because several request fields (first and last
// name, or any of the identifier aliases) collapse into a single comparison. A
// source that failed appends a row with `field: "provider"` and `result:
// "error"`, so read `result` before treating a row as a field verdict.
Comparison []SessionDecisionIDVerificationsIDLookupComparison `json:"comparison"`
// Short-lived presigned URL to the portrait the source returned. Only the four
// government registers that return one (South Africa, Nigeria, Argentina,
// Panama).
RegistryPortrait string `json:"registry_portrait"`
// Selfie against the registry portrait, 0-100. Only where the register returns
// a portrait.
FaceMatchScore float64 `json:"face_match_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsIDLookup: Registry evidence. Present only when `verification_method` is `id_lookup`; `null` otherwise.
func (*SessionDecisionIDVerificationsIDLookup) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsIDLookup) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsIDLookup leniently.
type SessionDecisionIDVerificationsIDLookupComparison ¶
type SessionDecisionIDVerificationsIDLookupComparison struct {
// Normalised comparison field. `provider` is not a user field: it marks a
// source error row.
Field SessionDecisionIDVerificationsIDLookupComparisonField `json:"field"`
// Display label for the row, e.g. `ID number`, `Full name`, `Provider`.
Label string `json:"label"`
// What the user typed. `null` on a `provider` error row.
Provided string `json:"provided"`
// What the source held. On a `provider` error row this carries the error
// message instead.
Record string `json:"record"`
// Per-field comparison result. `error` appears only on a `provider` row and
// means that source did not answer; treat it as evidence about the query, never
// as a field mismatch.
Result SessionDecisionIDVerificationsIDLookupComparisonResult `json:"result"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsIDLookupComparison is a response object.
func (*SessionDecisionIDVerificationsIDLookupComparison) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsIDLookupComparison) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsIDLookupComparison leniently.
type SessionDecisionIDVerificationsIDLookupComparisonField ¶
type SessionDecisionIDVerificationsIDLookupComparisonField string
SessionDecisionIDVerificationsIDLookupComparisonField: Normalised comparison field. `provider` is not a user field: it marks a source error row.
SessionDecisionIDVerificationsIDLookupComparisonField is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsIDLookupComparisonFieldIdentificationNumber SessionDecisionIDVerificationsIDLookupComparisonField = "identification_number" SessionDecisionIDVerificationsIDLookupComparisonFieldFullName SessionDecisionIDVerificationsIDLookupComparisonField = "full_name" SessionDecisionIDVerificationsIDLookupComparisonFieldDateOfBirth SessionDecisionIDVerificationsIDLookupComparisonField = "date_of_birth" SessionDecisionIDVerificationsIDLookupComparisonFieldAddress SessionDecisionIDVerificationsIDLookupComparisonField = "address" SessionDecisionIDVerificationsIDLookupComparisonFieldProvider SessionDecisionIDVerificationsIDLookupComparisonField = "provider" )
Known values of SessionDecisionIDVerificationsIDLookupComparisonField.
type SessionDecisionIDVerificationsIDLookupComparisonResult ¶
type SessionDecisionIDVerificationsIDLookupComparisonResult string
SessionDecisionIDVerificationsIDLookupComparisonResult: Per-field comparison result. `error` appears only on a `provider` row and means that source did not answer; treat it as evidence about the query, never as a field mismatch.
SessionDecisionIDVerificationsIDLookupComparisonResult is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsIDLookupComparisonResultMatch SessionDecisionIDVerificationsIDLookupComparisonResult = "match" SessionDecisionIDVerificationsIDLookupComparisonResultPartial SessionDecisionIDVerificationsIDLookupComparisonResult = "partial" SessionDecisionIDVerificationsIDLookupComparisonResultNoMatch SessionDecisionIDVerificationsIDLookupComparisonResult = "no_match" SessionDecisionIDVerificationsIDLookupComparisonResultError SessionDecisionIDVerificationsIDLookupComparisonResult = "error" )
Known values of SessionDecisionIDVerificationsIDLookupComparisonResult.
type SessionDecisionIDVerificationsIDLookupOutcome ¶
type SessionDecisionIDVerificationsIDLookupOutcome string
SessionDecisionIDVerificationsIDLookupOutcome: What the register answered. Only `match`, `partial_match` and `no_match` count against the attempt budget and bill.
SessionDecisionIDVerificationsIDLookupOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsIDLookupOutcomeMatch SessionDecisionIDVerificationsIDLookupOutcome = "match" SessionDecisionIDVerificationsIDLookupOutcomePartialMatch SessionDecisionIDVerificationsIDLookupOutcome = "partial_match" SessionDecisionIDVerificationsIDLookupOutcomeNoMatch SessionDecisionIDVerificationsIDLookupOutcome = "no_match" SessionDecisionIDVerificationsIDLookupOutcomeProviderError SessionDecisionIDVerificationsIDLookupOutcome = "provider_error" SessionDecisionIDVerificationsIDLookupOutcomeFormatRejected SessionDecisionIDVerificationsIDLookupOutcome = "format_rejected" )
Known values of SessionDecisionIDVerificationsIDLookupOutcome.
type SessionDecisionIDVerificationsMRZ ¶
type SessionDecisionIDVerificationsMRZ struct {
Surname string `json:"surname"`
Name string `json:"name"`
Country string `json:"country"`
Nationality string `json:"nationality"`
BirthDate string `json:"birth_date"`
ExpiryDate string `json:"expiry_date"`
Sex string `json:"sex"`
DocumentType string `json:"document_type"`
DocumentNumber string `json:"document_number"`
OptionalData string `json:"optional_data"`
OptionalData2 string `json:"optional_data_2"`
BirthDateHash string `json:"birth_date_hash"`
ExpiryDateHash string `json:"expiry_date_hash"`
DocumentNumberHash string `json:"document_number_hash"`
FinalHash string `json:"final_hash"`
PersonalNumber string `json:"personal_number"`
Warnings []string `json:"warnings"`
Errors []string `json:"errors"`
MRZType string `json:"mrz_type"`
MRZString string `json:"mrz_string"`
MRZKey string `json:"mrz_key"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsMRZ: Parsed Machine-Readable Zone (MRZ) fields extracted from the document. `null` if no MRZ was detected.
func (*SessionDecisionIDVerificationsMRZ) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsMRZ) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsMRZ leniently.
type SessionDecisionIDVerificationsMatches ¶
type SessionDecisionIDVerificationsMatches struct {
// Session ID of the matching document
SessionID string `json:"session_id"`
// Session number of the matching document
SessionNumber int64 `json:"session_number"`
// Vendor data associated with the matching session
VendorData string `json:"vendor_data"`
// Date when the matching session was verified
VerificationDate time.Time `json:"verification_date"`
UserDetails SessionDecisionIDVerificationsMatchesUserDetails `json:"user_details"`
// Status of the matching session
Status string `json:"status"`
// Whether the matching document is blocklisted
IsBlocklisted bool `json:"is_blocklisted"`
// API service type of the matching session
APIService string `json:"api_service"`
// URL of the front document image from the matching document
FrontImageURL string `json:"front_image_url"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsMatches is a response object.
func (*SessionDecisionIDVerificationsMatches) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsMatches leniently.
type SessionDecisionIDVerificationsMatchesUserDetails ¶
type SessionDecisionIDVerificationsMatchesUserDetails struct {
// Full name from the matching document
Name string `json:"name"`
// Type of the matching document
DocumentType string `json:"document_type"`
// Document number of the matching document
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsMatchesUserDetails is a response object.
func (*SessionDecisionIDVerificationsMatchesUserDetails) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsMatchesUserDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsMatchesUserDetails leniently.
type SessionDecisionIDVerificationsParsedAddress ¶
type SessionDecisionIDVerificationsParsedAddress struct {
City string `json:"city"`
Label string `json:"label"`
Region string `json:"region"`
// Two-letter country code
Country string `json:"country"`
// Address category (e.g., Residential, Commercial)
Category string `json:"category"`
Street1 string `json:"street_1"`
Street2 string `json:"street_2"`
// Whether the address has been verified
IsVerified bool `json:"is_verified"`
PostalCode string `json:"postal_code"`
RawResults SessionDecisionIDVerificationsParsedAddressRawResults `json:"raw_results"`
AddressType string `json:"address_type"`
DocumentLocation SessionDecisionIDVerificationsParsedAddressDocumentLocation `json:"document_location"`
FormattedAddress string `json:"formatted_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddress: Structured address details
func (*SessionDecisionIDVerificationsParsedAddress) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddress leniently.
type SessionDecisionIDVerificationsParsedAddressDocumentLocation ¶
type SessionDecisionIDVerificationsParsedAddressDocumentLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressDocumentLocation is a response object.
func (*SessionDecisionIDVerificationsParsedAddressDocumentLocation) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressDocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressDocumentLocation leniently.
type SessionDecisionIDVerificationsParsedAddressRawResults ¶
type SessionDecisionIDVerificationsParsedAddressRawResults struct {
Types []string `json:"types"`
Geometry SessionDecisionIDVerificationsParsedAddressRawResultsGeometry `json:"geometry"`
PlaceID string `json:"place_id"`
FormattedAddress string `json:"formatted_address"`
AddressComponents []SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents `json:"address_components"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResults is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResults) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResults leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents struct {
Types []string `json:"types"`
LongName string `json:"long_name"`
ShortName string `json:"short_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsAddressComponents leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometry ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometry struct {
Location SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation `json:"location"`
Viewport SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport `json:"viewport"`
LocationType string `json:"location_type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsGeometry is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsGeometry) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsGeometry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsGeometry leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation struct {
Lat float64 `json:"lat"`
Lng float64 `json:"lng"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsGeometryLocation leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport struct {
Northeast SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast `json:"northeast"`
Southwest SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest `json:"southwest"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewport leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast struct {
Lat float64 `json:"lat"`
Lng float64 `json:"lng"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportNortheast leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest struct {
Lat float64 `json:"lat"`
Lng float64 `json:"lng"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsGeometryViewportSouthwest leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints struct {
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPoints leniently.
type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation ¶
type SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation struct {
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation is a response object.
func (*SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsParsedAddressRawResultsNavigationPointsLocation leniently.
type SessionDecisionIDVerificationsStatus ¶
type SessionDecisionIDVerificationsStatus string
SessionDecisionIDVerificationsStatus: Feature-level status of this ID verification step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionIDVerificationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsStatusNotFinished SessionDecisionIDVerificationsStatus = "Not Finished" SessionDecisionIDVerificationsStatusApproved SessionDecisionIDVerificationsStatus = "Approved" SessionDecisionIDVerificationsStatusDeclined SessionDecisionIDVerificationsStatus = "Declined" SessionDecisionIDVerificationsStatusInReview SessionDecisionIDVerificationsStatus = "In Review" SessionDecisionIDVerificationsStatusExpired SessionDecisionIDVerificationsStatus = "Expired" )
Known values of SessionDecisionIDVerificationsStatus.
type SessionDecisionIDVerificationsVerificationMethod ¶
type SessionDecisionIDVerificationsVerificationMethod string
SessionDecisionIDVerificationsVerificationMethod: Which ID Verification method produced this report. `document` - the user photographed a physical ID (the default, and the value on every session created before the other methods existed). `id_lookup` - the user typed their national ID number and it was checked against a government register or another authoritative source for that country (`id_lookup.source` names which). `wallet` - the user signed in with a government or bank digital identity.
SessionDecisionIDVerificationsVerificationMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsVerificationMethodDocument SessionDecisionIDVerificationsVerificationMethod = "document" SessionDecisionIDVerificationsVerificationMethodIDLookup SessionDecisionIDVerificationsVerificationMethod = "id_lookup" SessionDecisionIDVerificationsVerificationMethodWallet SessionDecisionIDVerificationsVerificationMethod = "wallet" )
Known values of SessionDecisionIDVerificationsVerificationMethod.
type SessionDecisionIDVerificationsWalletVerification ¶
type SessionDecisionIDVerificationsWalletVerification struct {
// Catalog wallet id, e.g. `mitid`.
Provider string `json:"provider"`
// Wallet name as the end user knows it, e.g. `MitID`.
ProviderName string `json:"provider_name"`
// The authority behind the wallet, e.g. `Danish Agency for Digital Government`.
IssuingAuthority string `json:"issuing_authority"`
// ISO 3166-1 alpha-3 country the wallet was offered in.
IssuingCountry string `json:"issuing_country"`
// Credential the wallet presented, e.g. `person_identification`.
CredentialType string `json:"credential_type"`
// The level of assurance the wallet asserted. A sign-in that asserts less than
// the level requested fails instead of downgrading.
LevelOfAssurance SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance `json:"level_of_assurance"`
// The wallet's authentication instant.
VerifiedAt time.Time `json:"verified_at"`
// Whether the signed assertion the wallet returned validated.
SignatureValid bool `json:"signature_valid"`
// The attributes the wallet shared, keyed as the wallet's catalog entry lists
// them.
Attributes map[string]any `json:"attributes"`
// Short-lived presigned URL to the portrait the wallet shared, where it shares
// one.
Portrait string `json:"portrait"`
// Selfie against the wallet portrait, 0-100, where the wallet shares one.
FaceMatchScore float64 `json:"face_match_score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsWalletVerification: Credential evidence. Present only when `verification_method` is `wallet`; `null` otherwise.
func (*SessionDecisionIDVerificationsWalletVerification) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsWalletVerification) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsWalletVerification leniently.
type SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance ¶
type SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance string
SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance: The level of assurance the wallet asserted. A sign-in that asserts less than the level requested fails instead of downgrading.
SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsWalletVerificationLevelOfAssuranceLow SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance = "low" SessionDecisionIDVerificationsWalletVerificationLevelOfAssuranceSubstantial SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance = "substantial" SessionDecisionIDVerificationsWalletVerificationLevelOfAssuranceHigh SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance = "high" )
Known values of SessionDecisionIDVerificationsWalletVerificationLevelOfAssurance.
type SessionDecisionIDVerificationsWarnings ¶
type SessionDecisionIDVerificationsWarnings struct {
// The feature that generated this warning (e.g., `ID_VERIFICATION`, `NFC`,
// `LIVENESS`). The value identifies the feature block the warning belongs to.
// Each module's warnings array typically uses the value matching its module,
// but the enum above is authoritative across all feature warnings on the
// decision payload.
Feature SessionDecisionIDVerificationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
// Additional contextual data about the warning
AdditionalData map[string]any `json:"additional_data"`
// Type of log: information, warning, or error
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning (for graph-based
// workflows)
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIDVerificationsWarnings is a response object.
func (*SessionDecisionIDVerificationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionIDVerificationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIDVerificationsWarnings leniently.
type SessionDecisionIDVerificationsWarningsFeature ¶
type SessionDecisionIDVerificationsWarningsFeature string
SessionDecisionIDVerificationsWarningsFeature: The feature that generated this warning (e.g., `ID_VERIFICATION`, `NFC`, `LIVENESS`). The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module, but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionIDVerificationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIDVerificationsWarningsFeatureIDVerification SessionDecisionIDVerificationsWarningsFeature = "ID_VERIFICATION" SessionDecisionIDVerificationsWarningsFeatureNFC SessionDecisionIDVerificationsWarningsFeature = "NFC" SessionDecisionIDVerificationsWarningsFeatureLiveness SessionDecisionIDVerificationsWarningsFeature = "LIVENESS" SessionDecisionIDVerificationsWarningsFeatureFacematch SessionDecisionIDVerificationsWarningsFeature = "FACEMATCH" SessionDecisionIDVerificationsWarningsFeatureProofOfAddress SessionDecisionIDVerificationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionIDVerificationsWarningsFeaturePhone SessionDecisionIDVerificationsWarningsFeature = "PHONE" SessionDecisionIDVerificationsWarningsFeatureEmail SessionDecisionIDVerificationsWarningsFeature = "EMAIL" SessionDecisionIDVerificationsWarningsFeatureAML SessionDecisionIDVerificationsWarningsFeature = "AML" SessionDecisionIDVerificationsWarningsFeatureLocation SessionDecisionIDVerificationsWarningsFeature = "LOCATION" SessionDecisionIDVerificationsWarningsFeatureDatabaseValidation SessionDecisionIDVerificationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionIDVerificationsWarningsFeatureQuestionnaire SessionDecisionIDVerificationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionIDVerificationsWarningsFeatureDocumentAi SessionDecisionIDVerificationsWarningsFeature = "DOCUMENT_AI" SessionDecisionIDVerificationsWarningsFeatureKYBRegistry SessionDecisionIDVerificationsWarningsFeature = "KYB_REGISTRY" SessionDecisionIDVerificationsWarningsFeatureKYBDocuments SessionDecisionIDVerificationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionIDVerificationsWarningsFeatureKYBKeyPeople SessionDecisionIDVerificationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionIDVerificationsWarningsFeature.
type SessionDecisionIPAnalyses ¶
type SessionDecisionIPAnalyses struct {
// Unique identifier for this Device & IP Analysis step in the workflow graph.
NodeID string `json:"node_id"`
// Feature-level status of this Device & IP Analysis entry. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionIPAnalysesStatus `json:"status"`
// Brand of the device used
DeviceBrand string `json:"device_brand"`
// Model of the device used
DeviceModel string `json:"device_model"`
// Browser family used
BrowserFamily string `json:"browser_family"`
// Operating system family
OsFamily string `json:"os_family"`
// Platform type (mobile, desktop, etc)
Platform string `json:"platform"`
// Unique device fingerprint identifier
DeviceFingerprint string `json:"device_fingerprint"`
// Country detected from IP
IPCountry string `json:"ip_country"`
// Two-letter country code from IP
IPCountryCode string `json:"ip_country_code"`
// State/region detected from IP
IPState string `json:"ip_state"`
// City detected from IP
IPCity string `json:"ip_city"`
// Latitude coordinate of IP location
Latitude float64 `json:"latitude"`
// Longitude coordinate of IP location
Longitude float64 `json:"longitude"`
// IP address
IPAddress string `json:"ip_address"`
// Internet Service Provider
Isp string `json:"isp"`
// Organization associated with IP
Organization string `json:"organization"`
// Whether IP is from VPN or Tor network
IsVpnOrTor bool `json:"is_vpn_or_tor"`
// Whether IP is from a data center
IsDataCenter bool `json:"is_data_center"`
// Time zone detected from IP
TimeZone string `json:"time_zone"`
// Time zone offset
TimeZoneOffset string `json:"time_zone_offset"`
// IP geolocation of this entry plus great-circle distances (km) to the ID
// document address and the POA document address. Distances are `null` when
// either side has no resolvable location.
IP SessionDecisionIPAnalysesIP `json:"ip"`
// Location extracted from the ID document address plus distances (km) to the IP
// geolocation and the POA document address. `location` is `null` when no
// document address could be geocoded.
IDDocument SessionDecisionIPAnalysesIDDocument `json:"id_document"`
// Location extracted from the Proof of Address document plus distances (km) to
// the IP geolocation and the ID document address. `location` is `null` when the
// session has no POA step or the address could not be geocoded.
POADocument SessionDecisionIPAnalysesPOADocument `json:"poa_document"`
Warnings []SessionDecisionIPAnalysesWarnings `json:"warnings"`
// Cross-session matches found for this entry's IP address or device identity.
// Every match is another verification session in your application (`source` is
// always `session`) that shares the same value, always belonging to a different
// vendor user / `vendor_data` than the current session, capped at 5 per
// collector (`device_fingerprint` sums two independently capped collectors, so
// up to 10 entries are possible). Every item carries `match_source`,
// `confidence`, `match_mode`, `device_info` and `location_info`; the keys
// `recovery_similarity`, `tls_ja4_corroborated` and `recovery_gate_reason` are
// present only when `match_source` is `recovered_high`.
Matches []SessionDecisionIPAnalysesMatches `json:"matches"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalyses is a response object.
func (*SessionDecisionIPAnalyses) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalyses) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalyses leniently.
type SessionDecisionIPAnalysesIDDocument ¶
type SessionDecisionIPAnalysesIDDocument struct {
// Coordinates, or `null` when unavailable.
Location SessionDecisionIPAnalysesIDDocumentLocation `json:"location"`
DistanceFromIP float64 `json:"distance_from_ip"`
DistanceFromPOADocument float64 `json:"distance_from_poa_document"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesIDDocument: Location extracted from the ID document address plus distances (km) to the IP geolocation and the POA document address. `location` is `null` when no document address could be geocoded.
func (*SessionDecisionIPAnalysesIDDocument) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesIDDocument) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesIDDocument leniently.
type SessionDecisionIPAnalysesIDDocumentLocation ¶
type SessionDecisionIPAnalysesIDDocumentLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesIDDocumentLocation: Coordinates, or `null` when unavailable.
func (*SessionDecisionIPAnalysesIDDocumentLocation) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesIDDocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesIDDocumentLocation leniently.
type SessionDecisionIPAnalysesIP ¶
type SessionDecisionIPAnalysesIP struct {
// Coordinates, or `null` when unavailable.
Location SessionDecisionIPAnalysesIPLocation `json:"location"`
DistanceFromIDDocument float64 `json:"distance_from_id_document"`
DistanceFromPOADocument float64 `json:"distance_from_poa_document"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesIP: IP geolocation of this entry plus great-circle distances (km) to the ID document address and the POA document address. Distances are `null` when either side has no resolvable location.
func (*SessionDecisionIPAnalysesIP) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesIP) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesIP leniently.
type SessionDecisionIPAnalysesIPLocation ¶
type SessionDecisionIPAnalysesIPLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesIPLocation: Coordinates, or `null` when unavailable.
func (*SessionDecisionIPAnalysesIPLocation) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesIPLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesIPLocation leniently.
type SessionDecisionIPAnalysesMatches ¶
type SessionDecisionIPAnalysesMatches struct {
// Session ID of the matching session.
SessionID string `json:"session_id"`
// Sequential number of the matching session.
SessionNumber int64 `json:"session_number"`
// `vendor_data` of the matching session - always different from the current
// session's vendor user.
VendorData string `json:"vendor_data"`
// Creation date of the matching session (`YYYY-MM-DDTHH:MM:SSZ`).
VerificationDate time.Time `json:"verification_date"`
// Whether the match was on IP address or device fingerprint
MatchType SessionDecisionIPAnalysesMatchesMatchType `json:"match_type"`
// How this match was reached: `ip_address` (shared IP address - network
// co-location, not a device-identity claim), `persistent_id` (exact stored
// persistent device identifier), `legacy_fp` (legacy `didit-fp-*`
// device-fingerprint hash), or `recovered_high` (high-confidence fuzzy
// fingerprint-recovery hit). Lower-confidence recovery candidates surface as
// risk warnings only, never in this array.
MatchSource SessionDecisionIPAnalysesMatchesMatchSource `json:"match_source"`
// The value that matched: the shared IP address, the persistent device
// identifier or legacy fingerprint hash, or - for `recovered_high` - the UUID
// of the recovered device.
MatchedValue string `json:"matched_value"`
// Lifecycle status of the matching session.
Status string `json:"status"`
// Whether the matched value is on a blocklist. Currently always `false` for
// device/IP matches.
IsBlocklisted bool `json:"is_blocklisted"`
// Standalone API service of the matching session; `null` for workflow sessions.
APIService string `json:"api_service"`
// Always `session` for device/IP matches - every match is another verification
// session in your application.
Source SessionDecisionIPAnalysesMatchesSource `json:"source"`
// Device details observed on the matching session.
DeviceInfo SessionDecisionIPAnalysesMatchesDeviceInfo `json:"device_info"`
// Network and geolocation details observed on the matching session.
LocationInfo SessionDecisionIPAnalysesMatchesLocationInfo `json:"location_info"`
// Server-side identification confidence, computed as `1 - P(false positive)`:
// `1.0` for deterministic matches (`persistent_id`, or hardware-rooted
// `recovered_high`), `0.5` for `legacy_fp`, `0.0` for `ip_address` (co-location
// only), and a corroboration-adjusted value below `1.0` for probabilistic
// recovered matches (higher when the TLS JA4 fingerprint and IP country
// independently agree).
Confidence float64 `json:"confidence"`
// Evidence class of the match: `deterministic` (exact stored or hardware-rooted
// identifier that cannot collide between physical devices), `probabilistic`
// (fuzzy fingerprint evidence), or `co_occurrence` (shared network only, no
// device-identity claim).
MatchMode SessionDecisionIPAnalysesMatchesMatchMode `json:"match_mode"`
// Cosine similarity of the fingerprint-recovery match, rounded to 4 decimals.
// Present only when `match_source` is `recovered_high`.
RecoverySimilarity float64 `json:"recovery_similarity"`
// Whether the TLS JA4 fingerprints of the two observations agree - a
// server-observed signal the browser cannot spoof. Present only when
// `match_source` is `recovered_high`.
TLSJa4Corroborated bool `json:"tls_ja4_corroborated"`
// Why the recovery match passed the false-positive hard gate:
// `hardware_root_match` (a hardware-rooted device identifier matched exactly)
// or, on configurations that admit probe-only evidence,
// `exact_composite_plus_<n>_families` /
// `very_high_similarity_plus_<n>_families`. Present only when `match_source` is
// `recovered_high`.
RecoveryGateReason string `json:"recovery_gate_reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesMatches is a response object.
func (*SessionDecisionIPAnalysesMatches) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesMatches leniently.
type SessionDecisionIPAnalysesMatchesDeviceInfo ¶
type SessionDecisionIPAnalysesMatchesDeviceInfo struct {
DeviceBrand string `json:"device_brand"`
DeviceModel string `json:"device_model"`
BrowserFamily string `json:"browser_family"`
OsFamily string `json:"os_family"`
Platform string `json:"platform"`
DeviceFingerprint string `json:"device_fingerprint"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesMatchesDeviceInfo: Device details observed on the matching session.
func (*SessionDecisionIPAnalysesMatchesDeviceInfo) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesMatchesDeviceInfo) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesMatchesDeviceInfo leniently.
type SessionDecisionIPAnalysesMatchesLocationInfo ¶
type SessionDecisionIPAnalysesMatchesLocationInfo struct {
IPAddress string `json:"ip_address"`
IPCountry string `json:"ip_country"`
IPCountryCode string `json:"ip_country_code"`
IPState string `json:"ip_state"`
IPCity string `json:"ip_city"`
IsVpnOrTor bool `json:"is_vpn_or_tor"`
IsDataCenter bool `json:"is_data_center"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesMatchesLocationInfo: Network and geolocation details observed on the matching session.
func (*SessionDecisionIPAnalysesMatchesLocationInfo) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesMatchesLocationInfo) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesMatchesLocationInfo leniently.
type SessionDecisionIPAnalysesMatchesMatchMode ¶
type SessionDecisionIPAnalysesMatchesMatchMode string
SessionDecisionIPAnalysesMatchesMatchMode: Evidence class of the match: `deterministic` (exact stored or hardware-rooted identifier that cannot collide between physical devices), `probabilistic` (fuzzy fingerprint evidence), or `co_occurrence` (shared network only, no device-identity claim).
SessionDecisionIPAnalysesMatchesMatchMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIPAnalysesMatchesMatchModeDeterministic SessionDecisionIPAnalysesMatchesMatchMode = "deterministic" SessionDecisionIPAnalysesMatchesMatchModeProbabilistic SessionDecisionIPAnalysesMatchesMatchMode = "probabilistic" SessionDecisionIPAnalysesMatchesMatchModeCoOccurrence SessionDecisionIPAnalysesMatchesMatchMode = "co_occurrence" )
Known values of SessionDecisionIPAnalysesMatchesMatchMode.
type SessionDecisionIPAnalysesMatchesMatchSource ¶
type SessionDecisionIPAnalysesMatchesMatchSource string
SessionDecisionIPAnalysesMatchesMatchSource: How this match was reached: `ip_address` (shared IP address - network co-location, not a device-identity claim), `persistent_id` (exact stored persistent device identifier), `legacy_fp` (legacy `didit-fp-*` device-fingerprint hash), or `recovered_high` (high-confidence fuzzy fingerprint-recovery hit). Lower-confidence recovery candidates surface as risk warnings only, never in this array.
SessionDecisionIPAnalysesMatchesMatchSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIPAnalysesMatchesMatchSourceIPAddress SessionDecisionIPAnalysesMatchesMatchSource = "ip_address" SessionDecisionIPAnalysesMatchesMatchSourcePersistentID SessionDecisionIPAnalysesMatchesMatchSource = "persistent_id" SessionDecisionIPAnalysesMatchesMatchSourceLegacyFp SessionDecisionIPAnalysesMatchesMatchSource = "legacy_fp" SessionDecisionIPAnalysesMatchesMatchSourceRecoveredHigh SessionDecisionIPAnalysesMatchesMatchSource = "recovered_high" )
Known values of SessionDecisionIPAnalysesMatchesMatchSource.
type SessionDecisionIPAnalysesMatchesMatchType ¶
type SessionDecisionIPAnalysesMatchesMatchType string
SessionDecisionIPAnalysesMatchesMatchType: Whether the match was on IP address or device fingerprint
SessionDecisionIPAnalysesMatchesMatchType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIPAnalysesMatchesMatchTypeIPAddress SessionDecisionIPAnalysesMatchesMatchType = "ip_address" SessionDecisionIPAnalysesMatchesMatchTypeDeviceFingerprint SessionDecisionIPAnalysesMatchesMatchType = "device_fingerprint" )
Known values of SessionDecisionIPAnalysesMatchesMatchType.
type SessionDecisionIPAnalysesMatchesSource ¶
type SessionDecisionIPAnalysesMatchesSource string
SessionDecisionIPAnalysesMatchesSource: Always `session` for device/IP matches - every match is another verification session in your application.
SessionDecisionIPAnalysesMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const (
SessionDecisionIPAnalysesMatchesSourceSession SessionDecisionIPAnalysesMatchesSource = "session"
)
Known values of SessionDecisionIPAnalysesMatchesSource.
type SessionDecisionIPAnalysesPOADocument ¶
type SessionDecisionIPAnalysesPOADocument struct {
// Coordinates, or `null` when unavailable.
Location SessionDecisionIPAnalysesPOADocumentLocation `json:"location"`
DistanceFromIP float64 `json:"distance_from_ip"`
DistanceFromIDDocument float64 `json:"distance_from_id_document"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesPOADocument: Location extracted from the Proof of Address document plus distances (km) to the IP geolocation and the ID document address. `location` is `null` when the session has no POA step or the address could not be geocoded.
func (*SessionDecisionIPAnalysesPOADocument) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesPOADocument) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesPOADocument leniently.
type SessionDecisionIPAnalysesPOADocumentLocation ¶
type SessionDecisionIPAnalysesPOADocumentLocation struct {
Latitude float64 `json:"latitude"`
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesPOADocumentLocation: Coordinates, or `null` when unavailable.
func (*SessionDecisionIPAnalysesPOADocumentLocation) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesPOADocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesPOADocumentLocation leniently.
type SessionDecisionIPAnalysesStatus ¶
type SessionDecisionIPAnalysesStatus string
SessionDecisionIPAnalysesStatus: Feature-level status of this Device & IP Analysis entry. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionIPAnalysesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIPAnalysesStatusNotFinished SessionDecisionIPAnalysesStatus = "Not Finished" SessionDecisionIPAnalysesStatusApproved SessionDecisionIPAnalysesStatus = "Approved" SessionDecisionIPAnalysesStatusDeclined SessionDecisionIPAnalysesStatus = "Declined" SessionDecisionIPAnalysesStatusInReview SessionDecisionIPAnalysesStatus = "In Review" SessionDecisionIPAnalysesStatusResubRequested SessionDecisionIPAnalysesStatus = "Resub Requested" )
Known values of SessionDecisionIPAnalysesStatus.
type SessionDecisionIPAnalysesWarnings ¶
type SessionDecisionIPAnalysesWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionIPAnalysesWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionIPAnalysesWarnings is a response object.
func (*SessionDecisionIPAnalysesWarnings) UnmarshalJSON ¶
func (r *SessionDecisionIPAnalysesWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionIPAnalysesWarnings leniently.
type SessionDecisionIPAnalysesWarningsFeature ¶
type SessionDecisionIPAnalysesWarningsFeature string
SessionDecisionIPAnalysesWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionIPAnalysesWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionIPAnalysesWarningsFeatureIDVerification SessionDecisionIPAnalysesWarningsFeature = "ID_VERIFICATION" SessionDecisionIPAnalysesWarningsFeatureNFC SessionDecisionIPAnalysesWarningsFeature = "NFC" SessionDecisionIPAnalysesWarningsFeatureLiveness SessionDecisionIPAnalysesWarningsFeature = "LIVENESS" SessionDecisionIPAnalysesWarningsFeatureFacematch SessionDecisionIPAnalysesWarningsFeature = "FACEMATCH" SessionDecisionIPAnalysesWarningsFeatureProofOfAddress SessionDecisionIPAnalysesWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionIPAnalysesWarningsFeaturePhone SessionDecisionIPAnalysesWarningsFeature = "PHONE" SessionDecisionIPAnalysesWarningsFeatureEmail SessionDecisionIPAnalysesWarningsFeature = "EMAIL" SessionDecisionIPAnalysesWarningsFeatureAML SessionDecisionIPAnalysesWarningsFeature = "AML" SessionDecisionIPAnalysesWarningsFeatureLocation SessionDecisionIPAnalysesWarningsFeature = "LOCATION" SessionDecisionIPAnalysesWarningsFeatureDatabaseValidation SessionDecisionIPAnalysesWarningsFeature = "DATABASE_VALIDATION" SessionDecisionIPAnalysesWarningsFeatureQuestionnaire SessionDecisionIPAnalysesWarningsFeature = "QUESTIONNAIRE" SessionDecisionIPAnalysesWarningsFeatureDocumentAi SessionDecisionIPAnalysesWarningsFeature = "DOCUMENT_AI" SessionDecisionIPAnalysesWarningsFeatureKYBRegistry SessionDecisionIPAnalysesWarningsFeature = "KYB_REGISTRY" SessionDecisionIPAnalysesWarningsFeatureKYBDocuments SessionDecisionIPAnalysesWarningsFeature = "KYB_DOCUMENTS" SessionDecisionIPAnalysesWarningsFeatureKYBKeyPeople SessionDecisionIPAnalysesWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionIPAnalysesWarningsFeature.
type SessionDecisionKeyPeopleChecks ¶
type SessionDecisionKeyPeopleChecks struct {
Status string `json:"status"`
NodeID string `json:"node_id"`
// Parties discovered via the registry check.
Registry SessionDecisionKeyPeopleChecksRegistry `json:"registry"`
// Parties submitted by the business admin during the Key People flow
// (BusinessParty rows where source=USER).
Submitted SessionDecisionKeyPeopleChecksSubmitted `json:"submitted"`
// Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.
UBOKYCSummary SessionDecisionKeyPeopleChecksUBOKYCSummary `json:"ubo_kyc_summary"`
Warnings []map[string]any `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecks: Aggregate check over the company's officers + UBOs. Uses the `registry` / `submitted` shape. Present only when session_kind = business.
func (*SessionDecisionKeyPeopleChecks) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecks leniently.
type SessionDecisionKeyPeopleChecksRegistry ¶
type SessionDecisionKeyPeopleChecksRegistry struct {
// Officers discovered via the registry check, each enriched with the status of
// any child KYC session and AML screening spawned for them.
Officers []SessionDecisionKeyPeopleChecksRegistryOfficers `json:"officers"`
// Beneficial owners discovered via the registry check, each enriched with the
// status of any child KYC session and AML screening spawned for them.
BeneficialOwners []SessionDecisionKeyPeopleChecksRegistryBeneficialOwners `json:"beneficial_owners"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistry: Parties discovered via the registry check.
func (*SessionDecisionKeyPeopleChecksRegistry) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistry leniently.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwners ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwners struct {
UUID string `json:"uuid"`
// Beneficial owner's full name (or company name for corporate UBOs).
Name string `json:"name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
// Complete birth date when reported.
DateOfBirth string `json:"date_of_birth"`
CountryOfBirth string `json:"country_of_birth"`
Email string `json:"email"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
EntityType SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType `json:"entity_type"`
Nationality string `json:"nationality"`
Designation string `json:"designation"`
// Role names held by this owner, e.g. `["ubo", "shareholder"]`.
Roles []string `json:"roles"`
// Free-form string (e.g. `"25"`, `"25-50%"`); use `effective_ownership_percent`
// for a parsed numeric value.
OwnershipMinShares string `json:"ownership_min_shares"`
// Upper bound of the ownership percentage as reported by the registry.
// Free-form string; use `effective_ownership_percent` for a parsed numeric
// value.
IsActive bool `json:"is_active"`
// Status of the AML screening run for this beneficial owner. `null` when no AML
// screening was run.
AMLStatus SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus `json:"aml_status"`
// Raw lifecycle status of the child KYC session spawned for this beneficial
// owner. This is the full session status enum (not a reduced
// Approved/Declined/Pending set). `null` when no child KYC session exists.
KYCStatus SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus `json:"kyc_status"`
// Shareable URL of the child KYC session. `null` when no child session exists.
KYCSessionURL string `json:"kyc_session_url"`
// Session id of the child KYC session. Pass it to this same decision endpoint
// to fetch the person's full KYC report. `null` when no child session exists.
KYCSessionID string `json:"kyc_session_id"`
// Base workflow type of the child session's workflow (e.g. `kyc`). `null` for
// graph-based workflows or when no child session exists.
VerificationWorkflowType string `json:"verification_workflow_type"`
// Workflow id used by the child session. `null` when no child session exists.
VerificationWorkflowID string `json:"verification_workflow_id"`
// Human-readable label of the child session's workflow. `null` when unset.
VerificationWorkflowLabel string `json:"verification_workflow_label"`
// Per-feature progress of the child verification session, e.g. `[{"feature":
// "ID_VERIFICATION", "status": "Approved"}]`. `null` when the child session has
// no resolvable feature list.
VerificationWorkflowFeatures []SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures `json:"verification_workflow_features"`
// Stable internal identifier of the verified individual behind the child
// session - useful for cross-session linking. `null` when no child session
// exists or the user has not been resolved yet.
DiditInternalID string `json:"didit_internal_id"`
// Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`).
// `null` until the child session has an ID verification result.
KYCDocumentType string `json:"kyc_document_type"`
// Nationality extracted from the document in the child KYC session. `null`
// until available.
KYCNationality string `json:"kyc_nationality"`
// Whether the child KYC session's liveness check passed. `null` when no
// liveness check has run.
KYCLivenessPassed bool `json:"kyc_liveness_passed"`
// When the child KYC session reached `Approved`. `null` while the child session
// has any other status.
KYCVerifiedAt time.Time `json:"kyc_verified_at"`
// Per-category summary derived from the person's AML hits. `null` when there
// are no hits.
KYCAMLCategories SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories `json:"kyc_aml_categories"`
// ISO 8601 timestamp of the last verification-invite notification sent for this
// person's child session. `null` when none was sent.
KYCNotificationSentAt string `json:"kyc_notification_sent_at"`
// For corporate UBOs: the owning entity's own beneficial owners, as raw objects
// extracted from the registry. Empty array when not applicable.
ChildBeneficialOwners []map[string]any `json:"child_beneficial_owners"`
// Parsed numeric ownership percentage - the max bound when available, otherwise
// the min bound. `null` when neither bound could be parsed.
EffectiveOwnershipPercent float64 `json:"effective_ownership_percent"`
// Appointment date when reported.
AppointmentDate string `json:"appointment_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryBeneficialOwners is a response object.
func (*SessionDecisionKeyPeopleChecksRegistryBeneficialOwners) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryBeneficialOwners) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryBeneficialOwners leniently.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus: Status of the AML screening run for this beneficial owner. `null` when no AML screening was run.
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatusNotFinished SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus = "Not Finished" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatusApproved SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatusDeclined SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatusInReview SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatusResubRequested SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus = "Resub Requested" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersAMLStatus.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityTypePerson SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType = "person" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityTypeCompany SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType = "company" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersEntityType.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories struct {
Sanctions SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions `json:"sanctions"`
PEP SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP `json:"pep"`
AdverseMedia SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia `json:"adverse_media"`
Warnings SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories: Per-category summary derived from the person's AML hits. `null` when there are no hits.
func (*SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategories leniently.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMediaMatch SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia = "match" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMediaClear SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesAdverseMedia.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEPMatch SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP = "match" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEPClear SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesPEP.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctionsMatch SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions = "match" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctionsClear SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesSanctions.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarningsMatch SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings = "match" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarningsClear SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCAMLCategoriesWarnings.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus: Raw lifecycle status of the child KYC session spawned for this beneficial owner. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusNotStarted SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Not Started" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusInProgress SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "In Progress" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusApproved SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusDeclined SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusInReview SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusExpired SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Expired" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusAbandoned SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Abandoned" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusKYCExpired SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Kyc Expired" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusResubmitted SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Resubmitted" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatusAwaitingUser SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus = "Awaiting User" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersKYCStatus.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures struct {
// Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).
Feature string `json:"feature"`
// Feature-level status inside the child session.
Status SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures is a response object.
func (*SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeatures leniently.
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus ¶
type SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus string
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus: Feature-level status inside the child session.
SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatusNotFinished SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus = "Not Finished" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatusApproved SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatusDeclined SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatusInReview SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatusResubRequested SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus = "Resub Requested" )
Known values of SessionDecisionKeyPeopleChecksRegistryBeneficialOwnersVerificationWorkflowFeaturesStatus.
type SessionDecisionKeyPeopleChecksRegistryOfficers ¶
type SessionDecisionKeyPeopleChecksRegistryOfficers struct {
UUID string `json:"uuid"`
// Officer's full name as recorded in the registry.
Name string `json:"name"`
// Free-text designation from the registry (e.g. `Director`, `Company
// Secretary`).
Designation string `json:"designation"`
// Normalized officer role.
Role SessionDecisionKeyPeopleChecksRegistryOfficersRole `json:"role"`
Nationality string `json:"nationality"`
// Date the officer was appointed.
AppointmentDate string `json:"appointment_date"`
// Date the appointment ended, when reported.
TerminationDate string `json:"termination_date"`
IsActive bool `json:"is_active"`
// Officer address reported by the registry.
Address string `json:"address"`
// Status of the AML screening run for this officer. `null` when no AML
// screening was run.
AMLStatus SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus `json:"aml_status"`
// Raw lifecycle status of the child KYC session spawned for this officer. This
// is the full session status enum (not a reduced Approved/Declined/Pending
// set). `null` when no child KYC session exists.
KYCStatus SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus `json:"kyc_status"`
// Shareable URL of the child KYC session. `null` when no child session exists.
KYCSessionURL string `json:"kyc_session_url"`
// Session id of the child KYC session. Pass it to this same decision endpoint
// to fetch the person's full KYC report. `null` when no child session exists.
KYCSessionID string `json:"kyc_session_id"`
// Base workflow type of the child session's workflow (e.g. `kyc`). `null` for
// graph-based workflows or when no child session exists.
VerificationWorkflowType string `json:"verification_workflow_type"`
// Workflow id used by the child session. `null` when no child session exists.
VerificationWorkflowID string `json:"verification_workflow_id"`
// Human-readable label of the child session's workflow. `null` when unset.
VerificationWorkflowLabel string `json:"verification_workflow_label"`
// Per-feature progress of the child verification session, e.g. `[{"feature":
// "ID_VERIFICATION", "status": "Approved"}]`. `null` when the child session has
// no resolvable feature list.
VerificationWorkflowFeatures []SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures `json:"verification_workflow_features"`
// Stable internal identifier of the verified individual behind the child
// session - useful for cross-session linking. `null` when no child session
// exists or the user has not been resolved yet.
DiditInternalID string `json:"didit_internal_id"`
// Document type presented in the child KYC session (e.g. `P`, `ID`, `DL`).
// `null` until the child session has an ID verification result.
KYCDocumentType string `json:"kyc_document_type"`
// Nationality extracted from the document in the child KYC session. `null`
// until available.
KYCNationality string `json:"kyc_nationality"`
// Whether the child KYC session's liveness check passed. `null` when no
// liveness check has run.
KYCLivenessPassed bool `json:"kyc_liveness_passed"`
// When the child KYC session reached `Approved`. `null` while the child session
// has any other status.
KYCVerifiedAt time.Time `json:"kyc_verified_at"`
// Per-category summary derived from the person's AML hits. `null` when there
// are no hits.
KYCAMLCategories SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories `json:"kyc_aml_categories"`
// ISO 8601 timestamp of the last verification-invite notification sent for this
// person's child session. `null` when none was sent.
KYCNotificationSentAt string `json:"kyc_notification_sent_at"`
// Given name when explicitly reported by the registry; not inferred from the
// full name.
FirstName string `json:"first_name"`
// Family name when explicitly reported by the registry.
LastName string `json:"last_name"`
// Complete registry-reported birth date. Null when only a birth year or month
// is known.
DateOfBirth string `json:"date_of_birth"`
// Registry-reported birth year, including when the full date is unavailable.
DateOfBirthYear int64 `json:"date_of_birth_year"`
// Registry-reported birth month. Null when only the year is known.
DateOfBirthMonth int64 `json:"date_of_birth_month"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryOfficers is a response object.
func (*SessionDecisionKeyPeopleChecksRegistryOfficers) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryOfficers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryOfficers leniently.
type SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus string
SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus: Status of the AML screening run for this officer. `null` when no AML screening was run.
SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatusNotFinished SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus = "Not Finished" SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatusApproved SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatusDeclined SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatusInReview SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatusResubRequested SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus = "Resub Requested" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersAMLStatus.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories struct {
Sanctions SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions `json:"sanctions"`
PEP SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP `json:"pep"`
AdverseMedia SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia `json:"adverse_media"`
Warnings SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories: Per-category summary derived from the person's AML hits. `null` when there are no hits.
func (*SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategories leniently.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia string
SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMediaMatch SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia = "match" SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMediaClear SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesAdverseMedia.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP string
SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEPMatch SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP = "match" SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEPClear SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesPEP.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions string
SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctionsMatch SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions = "match" SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctionsClear SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesSanctions.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings string
SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarningsMatch SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings = "match" SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarningsClear SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings = "clear" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersKYCAMLCategoriesWarnings.
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus string
SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus: Raw lifecycle status of the child KYC session spawned for this officer. This is the full session status enum (not a reduced Approved/Declined/Pending set). `null` when no child KYC session exists.
SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusNotStarted SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Not Started" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusInProgress SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "In Progress" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusApproved SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusDeclined SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusInReview SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusExpired SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Expired" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusAbandoned SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Abandoned" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusKYCExpired SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Kyc Expired" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusResubmitted SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Resubmitted" SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatusAwaitingUser SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus = "Awaiting User" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersKYCStatus.
type SessionDecisionKeyPeopleChecksRegistryOfficersRole ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersRole string
SessionDecisionKeyPeopleChecksRegistryOfficersRole: Normalized officer role.
SessionDecisionKeyPeopleChecksRegistryOfficersRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersRoleDirector SessionDecisionKeyPeopleChecksRegistryOfficersRole = "director" SessionDecisionKeyPeopleChecksRegistryOfficersRoleNonExecutiveDirector SessionDecisionKeyPeopleChecksRegistryOfficersRole = "non_executive_director" SessionDecisionKeyPeopleChecksRegistryOfficersRoleSecretary SessionDecisionKeyPeopleChecksRegistryOfficersRole = "secretary" SessionDecisionKeyPeopleChecksRegistryOfficersRoleChairman SessionDecisionKeyPeopleChecksRegistryOfficersRole = "chairman" SessionDecisionKeyPeopleChecksRegistryOfficersRoleUBO SessionDecisionKeyPeopleChecksRegistryOfficersRole = "ubo" SessionDecisionKeyPeopleChecksRegistryOfficersRoleRepresentative SessionDecisionKeyPeopleChecksRegistryOfficersRole = "representative" SessionDecisionKeyPeopleChecksRegistryOfficersRoleFounder SessionDecisionKeyPeopleChecksRegistryOfficersRole = "founder" SessionDecisionKeyPeopleChecksRegistryOfficersRoleLegalAdvisor SessionDecisionKeyPeopleChecksRegistryOfficersRole = "legal_advisor" SessionDecisionKeyPeopleChecksRegistryOfficersRoleAuthorizedSignatory SessionDecisionKeyPeopleChecksRegistryOfficersRole = "authorized_signatory" SessionDecisionKeyPeopleChecksRegistryOfficersRoleTrustee SessionDecisionKeyPeopleChecksRegistryOfficersRole = "trustee" SessionDecisionKeyPeopleChecksRegistryOfficersRoleBeneficiary SessionDecisionKeyPeopleChecksRegistryOfficersRole = "beneficiary" SessionDecisionKeyPeopleChecksRegistryOfficersRoleSettlor SessionDecisionKeyPeopleChecksRegistryOfficersRole = "settlor" SessionDecisionKeyPeopleChecksRegistryOfficersRoleProtector SessionDecisionKeyPeopleChecksRegistryOfficersRole = "protector" SessionDecisionKeyPeopleChecksRegistryOfficersRoleCompanyOfficer SessionDecisionKeyPeopleChecksRegistryOfficersRole = "company_officer" SessionDecisionKeyPeopleChecksRegistryOfficersRoleInvestor SessionDecisionKeyPeopleChecksRegistryOfficersRole = "investor" SessionDecisionKeyPeopleChecksRegistryOfficersRoleOther SessionDecisionKeyPeopleChecksRegistryOfficersRole = "other" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersRole.
type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures struct {
// Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).
Feature string `json:"feature"`
// Feature-level status inside the child session.
Status SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures is a response object.
func (*SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeatures leniently.
type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus ¶
type SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus string
SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus: Feature-level status inside the child session.
SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatusNotFinished SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus = "Not Finished" SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatusApproved SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus = "Approved" SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatusDeclined SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus = "Declined" SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatusInReview SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus = "In Review" SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatusResubRequested SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus = "Resub Requested" )
Known values of SessionDecisionKeyPeopleChecksRegistryOfficersVerificationWorkflowFeaturesStatus.
type SessionDecisionKeyPeopleChecksSubmitted ¶
type SessionDecisionKeyPeopleChecksSubmitted struct {
Parties []SessionDecisionKeyPeopleChecksSubmittedParties `json:"parties"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksSubmitted: Parties submitted by the business admin during the Key People flow (BusinessParty rows where source=USER).
func (*SessionDecisionKeyPeopleChecksSubmitted) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksSubmitted) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksSubmitted leniently.
type SessionDecisionKeyPeopleChecksSubmittedParties ¶
type SessionDecisionKeyPeopleChecksSubmittedParties struct {
UUID string `json:"uuid"`
EntityType SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType `json:"entity_type"`
// Always `USER` here - this bucket only contains parties entered or confirmed
// by the end user in the Key People flow (registry-discovered people appear
// under `registry`).
Source SessionDecisionKeyPeopleChecksSubmittedPartiesSource `json:"source"`
Name string `json:"name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
Email string `json:"email"`
// Nationality for persons; country of incorporation for company parties.
Nationality string `json:"nationality"`
PhoneNumber string `json:"phone_number"`
DateOfBirth string `json:"date_of_birth"`
// Free-text job title / position (persons only).
Position string `json:"position"`
// Workflow-defined custom fields collected for this party; keys are defined by
// the workflow's key-people field descriptors.
CustomFields map[string]any `json:"custom_fields"`
IsActive bool `json:"is_active"`
// True when the end user skipped verification for this party (only possible
// when the role allows skipping).
IsSkipped bool `json:"is_skipped"`
// True when a child KYC / KYB sub-session is required for this party based on
// role settings and ownership thresholds.
RequiresVerification bool `json:"requires_verification"`
// All roles held by this party, each with its own ownership and voting
// percentages. There is no scalar `role`/`ownership_percent` on the party
// itself.
Roles []SessionDecisionKeyPeopleChecksSubmittedPartiesRoles `json:"roles"`
// Child KYC session id for person parties requiring verification. `null`
// otherwise.
KYCSessionID string `json:"kyc_session_id"`
// Lifecycle status of the child KYC session. `null` when no child KYC session
// exists.
KYCSessionStatus SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus `json:"kyc_session_status"`
KYCSessionURL string `json:"kyc_session_url"`
// Child KYB sub-session id for corporate parties requiring verification. `null`
// otherwise.
KYBSubSessionID string `json:"kyb_sub_session_id"`
// Lifecycle status of the child KYB sub-session. `null` when no sub-session
// exists.
KYBSubSessionStatus SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus `json:"kyb_sub_session_status"`
// Shareable URL of the child KYB sub-session. `null` when no sub-session
// exists.
KYBSubSessionURL string `json:"kyb_sub_session_url"`
// Base workflow type of the child session's workflow (KYC session preferred,
// falling back to the KYB sub-session). `null` for graph-based workflows or
// when no child session exists.
VerificationWorkflowType string `json:"verification_workflow_type"`
// Workflow id used by the child session. `null` when no child session exists.
VerificationWorkflowID string `json:"verification_workflow_id"`
// Human-readable label of the child session's workflow. `null` when unset.
VerificationWorkflowLabel string `json:"verification_workflow_label"`
// Per-feature progress of the child verification session, e.g. `[{"feature":
// "ID_VERIFICATION", "status": "Approved"}]`. `null` when the child session has
// no resolvable feature list.
VerificationWorkflowFeatures []SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures `json:"verification_workflow_features"`
// Stable internal identifier of the verified individual behind the child
// session. `null` when not resolved.
DiditInternalID string `json:"didit_internal_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksSubmittedParties: Party submitted by the business admin via the Key People flow (source=USER).
func (*SessionDecisionKeyPeopleChecksSubmittedParties) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksSubmittedParties) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksSubmittedParties leniently.
type SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType string
SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksSubmittedPartiesEntityTypePerson SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType = "person" SessionDecisionKeyPeopleChecksSubmittedPartiesEntityTypeCompany SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType = "company" )
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesEntityType.
type SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus string
SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus: Lifecycle status of the child KYB sub-session. `null` when no sub-session exists.
SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusNotStarted SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Not Started" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusInProgress SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "In Progress" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusApproved SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Approved" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusDeclined SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Declined" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusInReview SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "In Review" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusExpired SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Expired" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusAbandoned SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Abandoned" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusKYCExpired SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Kyc Expired" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusResubmitted SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Resubmitted" SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatusAwaitingUser SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus = "Awaiting User" )
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesKYBSubSessionStatus.
type SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus string
SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus: Lifecycle status of the child KYC session. `null` when no child KYC session exists.
SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusNotStarted SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Not Started" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusInProgress SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "In Progress" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusApproved SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Approved" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusDeclined SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Declined" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusInReview SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "In Review" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusExpired SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Expired" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusAbandoned SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Abandoned" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusKYCExpired SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Kyc Expired" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusResubmitted SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Resubmitted" SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatusAwaitingUser SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus = "Awaiting User" )
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesKYCSessionStatus.
type SessionDecisionKeyPeopleChecksSubmittedPartiesRoles ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesRoles struct {
Role SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole `json:"role"`
OwnershipPercent float64 `json:"ownership_percent"`
VotingPercent float64 `json:"voting_percent"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksSubmittedPartiesRoles is a response object.
func (*SessionDecisionKeyPeopleChecksSubmittedPartiesRoles) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksSubmittedPartiesRoles) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksSubmittedPartiesRoles leniently.
type SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole string
SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleDirector SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "director" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleNonExecutiveDirector SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "non_executive_director" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleSecretary SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "secretary" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleChairman SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "chairman" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleUBO SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "ubo" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleRepresentative SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "representative" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleFounder SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "founder" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleLegalAdvisor SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "legal_advisor" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleAuthorizedSignatory SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "authorized_signatory" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleTrustee SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "trustee" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleBeneficiary SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "beneficiary" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleSettlor SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "settlor" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleProtector SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "protector" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleCompanyOfficer SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "company_officer" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleInvestor SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "investor" SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRoleOther SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole = "other" )
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesRolesRole.
type SessionDecisionKeyPeopleChecksSubmittedPartiesSource ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesSource string
SessionDecisionKeyPeopleChecksSubmittedPartiesSource: Always `USER` here - this bucket only contains parties entered or confirmed by the end user in the Key People flow (registry-discovered people appear under `registry`).
SessionDecisionKeyPeopleChecksSubmittedPartiesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const (
SessionDecisionKeyPeopleChecksSubmittedPartiesSourceUser SessionDecisionKeyPeopleChecksSubmittedPartiesSource = "USER"
)
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesSource.
type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures struct {
// Feature display name (e.g. `ID_VERIFICATION`, `LIVENESS`, `AML`).
Feature string `json:"feature"`
// Feature-level status inside the child session.
Status SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures is a response object.
func (*SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeatures leniently.
type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus ¶
type SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus string
SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus: Feature-level status inside the child session.
SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatusNotFinished SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus = "Not Finished" SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatusApproved SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus = "Approved" SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatusDeclined SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus = "Declined" SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatusInReview SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus = "In Review" SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatusResubRequested SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus = "Resub Requested" )
Known values of SessionDecisionKeyPeopleChecksSubmittedPartiesVerificationWorkflowFeaturesStatus.
type SessionDecisionKeyPeopleChecksUBOKYCSummary ¶
type SessionDecisionKeyPeopleChecksUBOKYCSummary struct {
Total int64 `json:"total"`
Approved int64 `json:"approved"`
// UBOs whose KYC is Declined or In Review.
Flagged int64 `json:"flagged"`
Pending int64 `json:"pending"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionKeyPeopleChecksUBOKYCSummary: Aggregate UBO KYC progress, or null when no UBOs have linked KYC sessions.
func (*SessionDecisionKeyPeopleChecksUBOKYCSummary) UnmarshalJSON ¶
func (r *SessionDecisionKeyPeopleChecksUBOKYCSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionKeyPeopleChecksUBOKYCSummary leniently.
type SessionDecisionLivenessChecks ¶
type SessionDecisionLivenessChecks struct {
// Workflow graph node id of the liveness step that produced this report.
NodeID string `json:"node_id"`
// Feature-level status of this liveness step. Independent of the top-level
// session `status` - a session can reach its overall decision while an
// individual feature stays `In Review`.
Status SessionDecisionLivenessChecksStatus `json:"status"`
// Method used for liveness detection
Method string `json:"method"`
// Confidence score of the liveness check
Score float64 `json:"score"`
// URL of the reference image used
ReferenceImage string `json:"reference_image"`
// URL of the liveness check video
VideoURL string `json:"video_url"`
// Estimated age of the person
AgeEstimation float64 `json:"age_estimation"`
// Similar faces found by the duplicate-face search (top matches,
// blocklisted/allowlisted entries first). Each entry's `source` tells you where
// the matching face came from: `session` (another verification session),
// `imported` (a face uploaded against a vendor user), `list_entry` (an
// org-managed allow/block list face), or `retained_template` (an image-free
// biometric template stored on a User, listed under
// `/v3/biometric-templates/`). `session_id`, `session_number`, `status` and
// `api_service` are `null` for non-session sources. `imported` matches still
// populate `vendor_data`, `verification_date` and - when the vendor user has a
// name on file - `user_details` (with `full_name` only) from the vendor-user
// record; `retained_template` matches populate `vendor_user_id`, `vendor_data`,
// `biometric_template_id` and `verification_date`, while their image and
// identity fields are `null`; `list_entry` matches return all of these as
// `null`.
Matches []SessionDecisionLivenessChecksMatches `json:"matches"`
Warnings []SessionDecisionLivenessChecksWarnings `json:"warnings"`
// Face image quality score (0-100%). Only available for passive liveness.
FaceQuality float64 `json:"face_quality"`
// Face luminance/brightness score (0-100%). Only available for passive
// liveness.
FaceLuminance float64 `json:"face_luminance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionLivenessChecks: One liveness report - the full report for a single liveness pass.
func (*SessionDecisionLivenessChecks) UnmarshalJSON ¶
func (r *SessionDecisionLivenessChecks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionLivenessChecks leniently.
type SessionDecisionLivenessChecksMatches ¶
type SessionDecisionLivenessChecksMatches struct {
// Session ID of the matching face. `null` when `source` is `imported`,
// `list_entry`, or `retained_template`.
SessionID string `json:"session_id"`
SessionNumber int64 `json:"session_number"`
// Face similarity between the two images, clamped to 0-100.
SimilarityPercentage float64 `json:"similarity_percentage"`
// `vendor_data` of the matching session or linked User for imported and
// retained-template faces.
VendorData string `json:"vendor_data"`
// Linked User id for `imported` and `retained_template` matches and for session
// matches linked to a User. `null` for list entries and sessions without a
// User.
VendorUserID string `json:"vendor_user_id"`
// Id of the retained biometric template. Set only when `source` is
// `retained_template`; `null` otherwise.
BiometricTemplateID string `json:"biometric_template_id"`
// When the matching face was captured, or when a retained template was created.
// `null` for list entries.
VerificationDate time.Time `json:"verification_date"`
// Identity data from the matching session or imported User profile. Always
// `null` for `retained_template` and `list_entry` matches.
UserDetails SessionDecisionLivenessChecksMatchesUserDetails `json:"user_details"`
// Reference image for image-backed matches. Always `null` for
// `retained_template` matches because retained templates contain no image.
MatchImageURL string `json:"match_image_url"`
// Lifecycle status of the matching session. `null` for non-session sources.
Status string `json:"status"`
// Whether the matching face is on a blocklist.
IsBlocklisted bool `json:"is_blocklisted"`
// Whether the matching face is on an allowlist.
IsAllowlisted bool `json:"is_allowlisted"`
// Standalone API service of the matching session (e.g. `PASSIVE_LIVENESS`,
// `FACE_MATCH`); `null` for workflow sessions and non-session sources.
APIService string `json:"api_service"`
// Origin of the matching face: `session`, `imported` (User face upload),
// `list_entry` (allow/block list), or `retained_template` (an image-free
// biometric template stored on a User, listed under
// `/v3/biometric-templates/`).
Source SessionDecisionLivenessChecksMatchesSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionLivenessChecksMatches is a response object.
func (*SessionDecisionLivenessChecksMatches) UnmarshalJSON ¶
func (r *SessionDecisionLivenessChecksMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionLivenessChecksMatches leniently.
type SessionDecisionLivenessChecksMatchesSource ¶
type SessionDecisionLivenessChecksMatchesSource string
SessionDecisionLivenessChecksMatchesSource: Origin of the matching face: `session`, `imported` (User face upload), `list_entry` (allow/block list), or `retained_template` (an image-free biometric template stored on a User, listed under `/v3/biometric-templates/`).
SessionDecisionLivenessChecksMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionLivenessChecksMatchesSourceSession SessionDecisionLivenessChecksMatchesSource = "session" SessionDecisionLivenessChecksMatchesSourceImported SessionDecisionLivenessChecksMatchesSource = "imported" SessionDecisionLivenessChecksMatchesSourceListEntry SessionDecisionLivenessChecksMatchesSource = "list_entry" SessionDecisionLivenessChecksMatchesSourceRetainedTemplate SessionDecisionLivenessChecksMatchesSource = "retained_template" )
Known values of SessionDecisionLivenessChecksMatchesSource.
type SessionDecisionLivenessChecksMatchesUserDetails ¶
type SessionDecisionLivenessChecksMatchesUserDetails struct {
FullName string `json:"full_name"`
DocumentType string `json:"document_type"`
DocumentNumber string `json:"document_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionLivenessChecksMatchesUserDetails: Identity data from the matching session or imported User profile. Always `null` for `retained_template` and `list_entry` matches.
func (*SessionDecisionLivenessChecksMatchesUserDetails) UnmarshalJSON ¶
func (r *SessionDecisionLivenessChecksMatchesUserDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionLivenessChecksMatchesUserDetails leniently.
type SessionDecisionLivenessChecksStatus ¶
type SessionDecisionLivenessChecksStatus string
SessionDecisionLivenessChecksStatus: Feature-level status of this liveness step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionLivenessChecksStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionLivenessChecksStatusNotFinished SessionDecisionLivenessChecksStatus = "Not Finished" SessionDecisionLivenessChecksStatusApproved SessionDecisionLivenessChecksStatus = "Approved" SessionDecisionLivenessChecksStatusDeclined SessionDecisionLivenessChecksStatus = "Declined" SessionDecisionLivenessChecksStatusInReview SessionDecisionLivenessChecksStatus = "In Review" SessionDecisionLivenessChecksStatusResubRequested SessionDecisionLivenessChecksStatus = "Resub Requested" )
Known values of SessionDecisionLivenessChecksStatus.
type SessionDecisionLivenessChecksWarnings ¶
type SessionDecisionLivenessChecksWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionLivenessChecksWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionLivenessChecksWarnings is a response object.
func (*SessionDecisionLivenessChecksWarnings) UnmarshalJSON ¶
func (r *SessionDecisionLivenessChecksWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionLivenessChecksWarnings leniently.
type SessionDecisionLivenessChecksWarningsFeature ¶
type SessionDecisionLivenessChecksWarningsFeature string
SessionDecisionLivenessChecksWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionLivenessChecksWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionLivenessChecksWarningsFeatureIDVerification SessionDecisionLivenessChecksWarningsFeature = "ID_VERIFICATION" SessionDecisionLivenessChecksWarningsFeatureNFC SessionDecisionLivenessChecksWarningsFeature = "NFC" SessionDecisionLivenessChecksWarningsFeatureLiveness SessionDecisionLivenessChecksWarningsFeature = "LIVENESS" SessionDecisionLivenessChecksWarningsFeatureFacematch SessionDecisionLivenessChecksWarningsFeature = "FACEMATCH" SessionDecisionLivenessChecksWarningsFeatureProofOfAddress SessionDecisionLivenessChecksWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionLivenessChecksWarningsFeaturePhone SessionDecisionLivenessChecksWarningsFeature = "PHONE" SessionDecisionLivenessChecksWarningsFeatureEmail SessionDecisionLivenessChecksWarningsFeature = "EMAIL" SessionDecisionLivenessChecksWarningsFeatureAML SessionDecisionLivenessChecksWarningsFeature = "AML" SessionDecisionLivenessChecksWarningsFeatureLocation SessionDecisionLivenessChecksWarningsFeature = "LOCATION" SessionDecisionLivenessChecksWarningsFeatureDatabaseValidation SessionDecisionLivenessChecksWarningsFeature = "DATABASE_VALIDATION" SessionDecisionLivenessChecksWarningsFeatureQuestionnaire SessionDecisionLivenessChecksWarningsFeature = "QUESTIONNAIRE" SessionDecisionLivenessChecksWarningsFeatureDocumentAi SessionDecisionLivenessChecksWarningsFeature = "DOCUMENT_AI" SessionDecisionLivenessChecksWarningsFeatureKYBRegistry SessionDecisionLivenessChecksWarningsFeature = "KYB_REGISTRY" SessionDecisionLivenessChecksWarningsFeatureKYBDocuments SessionDecisionLivenessChecksWarningsFeature = "KYB_DOCUMENTS" SessionDecisionLivenessChecksWarningsFeatureKYBKeyPeople SessionDecisionLivenessChecksWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionLivenessChecksWarningsFeature.
type SessionDecisionNFCSkipReason ¶
type SessionDecisionNFCSkipReason string
SessionDecisionNFCSkipReason: Why NFC chip verification did not run, populated whenever the workflow includes an NFC step. `null` while NFC is pending or when the chip was actually read. Values: `USER_SKIPPED` - the user chose to skip on an NFC-capable device (allowed by `allow_nfc_skip`); `DOCUMENT_WITHOUT_CHIP` - the document has no readable NFC chip (not an ICAO 9303 electronic document); `CHIP_CERTIFICATE_UNAVAILABLE` - the issuing country's signing certificate (CSCA) covering the document's issue period is unavailable, so the chip signature cannot be verified; `DEVICE_WITHOUT_NFC` - the device reported no NFC reader; `INTEGRATION_WITHOUT_NFC_ACCESS` - the verification ran without a native SDK (e.g. in a web browser), which has no access to the phone's NFC reader; `MRZ_KEY_UNAVAILABLE` - the chip access key could not be derived from the document's MRZ; `JPKI_UNAVAILABLE` - the document is a Japan My Number Card, whose chip is read through JPKI, and JPKI was not available for this verification: it is not enabled, or the app's native SDK cannot read My Number Cards.
SessionDecisionNFCSkipReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCSkipReasonUserSkipped SessionDecisionNFCSkipReason = "USER_SKIPPED" SessionDecisionNFCSkipReasonDocumentWithoutChip SessionDecisionNFCSkipReason = "DOCUMENT_WITHOUT_CHIP" SessionDecisionNFCSkipReasonDeviceWithoutNFC SessionDecisionNFCSkipReason = "DEVICE_WITHOUT_NFC" SessionDecisionNFCSkipReasonIntegrationWithoutNFCAccess SessionDecisionNFCSkipReason = "INTEGRATION_WITHOUT_NFC_ACCESS" )
Known values of SessionDecisionNFCSkipReason.
type SessionDecisionNFCVerifications ¶
type SessionDecisionNFCVerifications struct {
// Workflow graph node id of the NFC step that produced this report. Use it to
// correlate the report with the workflow definition.
NodeID string `json:"node_id"`
// Feature-level status of this NFC step. Independent of the top-level session
// `status` - a session can reach its overall decision while an individual
// feature stays `In Review`.
Status SessionDecisionNFCVerificationsStatus `json:"status"`
// `true` when this NFC step was explicitly skipped instead of read;
// `skip_reason` says why.
IsNFCSkipped bool `json:"is_nfc_skipped"`
// Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same
// taxonomy as the session-level `nfc_skip_reason`, which additionally covers
// the cases where NFC never produced a report at all.
SkipReason SessionDecisionNFCVerificationsSkipReason `json:"skip_reason"`
// How the NFC step reads the chip. `icao`: ICAO 9303 ePassport or eID chip,
// opened with the access key from the MRZ. `jpki`: Japan My Number Card, where
// the card signs a one-time challenge after the holder enters the card PIN in a
// native SDK; the result is under `jpki`. Also set on skipped steps, so you can
// tell a skipped My Number Card read apart.
ChipProtocol SessionDecisionNFCVerificationsChipProtocol `json:"chip_protocol"`
// What a Japan My Number Card read through JPKI proved. Present when
// `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for
// skipped steps, and when the NFC step closed without any card read (that case
// raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their
// serial numbers, the signatures or the 12-digit My Number.
Jpki SessionDecisionNFCVerificationsJpki `json:"jpki"`
// Presigned URL to the portrait read from the chip (ICAO DG2). `null` for a
// JPKI read (`chip_protocol: "jpki"`) and for skipped steps.
PortraitImage string `json:"portrait_image"`
// Presigned URL to the holder's signature image read from the chip (ICAO DG7),
// when the chip stores one. `null` for a JPKI read (`chip_protocol: "jpki"`)
// and for skipped steps.
SignatureImage string `json:"signature_image"`
// Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read
// (`chip_protocol: "jpki"`) and for skipped steps.
ChipData SessionDecisionNFCVerificationsChipData `json:"chip_data"`
// ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group
// hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof
// under `jpki`.
Authenticity SessionDecisionNFCVerificationsAuthenticity `json:"authenticity"`
// Summary of the ICAO Document Signer Certificate. `null` for a JPKI read
// (`chip_protocol: "jpki"`) and for skipped steps.
CertificateSummary SessionDecisionNFCVerificationsCertificateSummary `json:"certificate_summary"`
Warnings []SessionDecisionNFCVerificationsWarnings `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerifications: One NFC report: the full report for a single chip read (an ICAO 9303 ePassport or eID chip, or a Japan My Number Card read through JPKI).
func (*SessionDecisionNFCVerifications) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerifications leniently.
type SessionDecisionNFCVerificationsAuthenticity ¶
type SessionDecisionNFCVerificationsAuthenticity struct {
SodIntegrity bool `json:"sod_integrity"`
DgIntegrity bool `json:"dg_integrity"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsAuthenticity: ICAO passive authentication: SOD signature (`sod_integrity`) and Data Group hashes (`dg_integrity`). `null` for a JPKI read, which reports its proof under `jpki`.
func (*SessionDecisionNFCVerificationsAuthenticity) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsAuthenticity) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsAuthenticity leniently.
type SessionDecisionNFCVerificationsCertificateSummary ¶
type SessionDecisionNFCVerificationsCertificateSummary struct {
Issuer string `json:"issuer"`
Subject string `json:"subject"`
SerialNumber string `json:"serial_number"`
NotValidAfter time.Time `json:"not_valid_after"`
NotValidBefore time.Time `json:"not_valid_before"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsCertificateSummary: Summary of the ICAO Document Signer Certificate. `null` for a JPKI read (`chip_protocol: "jpki"`) and for skipped steps.
func (*SessionDecisionNFCVerificationsCertificateSummary) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsCertificateSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsCertificateSummary leniently.
type SessionDecisionNFCVerificationsChipData ¶
type SessionDecisionNFCVerificationsChipData struct {
DocumentType string `json:"document_type"`
IssuingCountry string `json:"issuing_country"`
DocumentNumber string `json:"document_number"`
ExpirationDate string `json:"expiration_date"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
BirthDate string `json:"birth_date"`
Gender string `json:"gender"`
Nationality string `json:"nationality"`
Address string `json:"address"`
PlaceOfBirth string `json:"place_of_birth"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsChipData: Personal data parsed from the ICAO chip's Data Groups. `null` for a JPKI read (`chip_protocol: "jpki"`) and for skipped steps.
func (*SessionDecisionNFCVerificationsChipData) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsChipData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsChipData leniently.
type SessionDecisionNFCVerificationsChipProtocol ¶
type SessionDecisionNFCVerificationsChipProtocol string
SessionDecisionNFCVerificationsChipProtocol: How the NFC step reads the chip. `icao`: ICAO 9303 ePassport or eID chip, opened with the access key from the MRZ. `jpki`: Japan My Number Card, where the card signs a one-time challenge after the holder enters the card PIN in a native SDK; the result is under `jpki`. Also set on skipped steps, so you can tell a skipped My Number Card read apart.
SessionDecisionNFCVerificationsChipProtocol is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsChipProtocolIcao SessionDecisionNFCVerificationsChipProtocol = "icao" SessionDecisionNFCVerificationsChipProtocolJpki SessionDecisionNFCVerificationsChipProtocol = "jpki" )
Known values of SessionDecisionNFCVerificationsChipProtocol.
type SessionDecisionNFCVerificationsJpki ¶
type SessionDecisionNFCVerificationsJpki struct {
// The card certificates read. `user_authentication` (4-digit PIN) is always
// read; `signature` (signature PIN) is read when the NFC node's
// `jpki_request_attributes` setting is on.
CertificateTypes []SessionDecisionNFCVerificationsJpkiCertificateTypes `json:"certificate_types"`
// `true` when every certificate read chains to the JPKI certification
// authority, is inside its validity period and is a My Number Card certificate
// of its type.
ChainValid bool `json:"chain_valid"`
// `true` when every signature the card made over the one-time challenge
// verifies. The card only signs after its PIN is entered, so this proves
// possession of the card and knowledge of the PIN.
SignatureValid bool `json:"signature_valid"`
// `good` when the revocation check confirmed every certificate is valid,
// `revoked` when any certificate is revoked (for example a card reported lost),
// `unchecked` when no revocation answer was available. `unchecked` is never
// treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides
// the outcome (default `REVIEW`).
RevocationStatus SessionDecisionNFCVerificationsJpkiRevocationStatus `json:"revocation_status"`
// Generation of the JPKI certification authority that issued the certificates,
// for example `2023`. `null` when no certificate chains to one.
CaGeneration string `json:"ca_generation"`
// The earliest expiry among the certificates read.
CertificateExpiresAt time.Time `json:"certificate_expires_at"`
// Per-certificate results, one entry per certificate read.
Certificates []SessionDecisionNFCVerificationsJpkiCertificates `json:"certificates"`
// The holder's data from the signature certificate, once its chain is valid.
// `null` when the signature certificate was not requested or did not chain to
// the JPKI certification authority.
Attributes SessionDecisionNFCVerificationsJpkiAttributes `json:"attributes"`
// `true` when the attributes match the data read from the photo of the same
// card, `false` when any attribute differs (`JPKI_AND_OCR_DATA_NOT_SAME`),
// `null` when nothing could be compared, including whenever `attributes` is
// `null`.
AttributesMatchOCR bool `json:"attributes_match_ocr"`
// Names of the attributes that differ from the photo data, never their values.
// Empty when everything compared matches.
MismatchedAttributes []SessionDecisionNFCVerificationsJpkiMismatchedAttributes `json:"mismatched_attributes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsJpki: What a Japan My Number Card read through JPKI proved. Present when `chip_protocol` is `jpki` and the card was read. `null` for ICAO chips, for skipped steps, and when the NFC step closed without any card read (that case raises `JPKI_SIGNATURE_INVALID`). Never carries the certificates, their serial numbers, the signatures or the 12-digit My Number.
func (*SessionDecisionNFCVerificationsJpki) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsJpki) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsJpki leniently.
type SessionDecisionNFCVerificationsJpkiAttributes ¶
type SessionDecisionNFCVerificationsJpkiAttributes struct {
// Name as registered, usually in Japanese script.
FullName string `json:"full_name"`
// Date of birth, `YYYY-MM-DD`. `null` when the registered date is incomplete.
DateOfBirth string `json:"date_of_birth"`
// `M`, `F`, or `null` when not registered.
Gender SessionDecisionNFCVerificationsJpkiAttributesGender `json:"gender"`
// Registered address.
Address string `json:"address"`
// Position string marking the characters of `full_name` that were replaced by a
// substitute because the original character is outside the standard character
// set. `null` when none were replaced.
NameSubstituteCharacters string `json:"name_substitute_characters"`
// Position string marking substitute characters in `address`, as for
// `name_substitute_characters`.
AddressSubstituteCharacters string `json:"address_substitute_characters"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsJpkiAttributes: The holder's data from the signature certificate, once its chain is valid. `null` when the signature certificate was not requested or did not chain to the JPKI certification authority.
func (*SessionDecisionNFCVerificationsJpkiAttributes) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsJpkiAttributes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsJpkiAttributes leniently.
type SessionDecisionNFCVerificationsJpkiAttributesGender ¶
type SessionDecisionNFCVerificationsJpkiAttributesGender string
SessionDecisionNFCVerificationsJpkiAttributesGender: `M`, `F`, or `null` when not registered.
SessionDecisionNFCVerificationsJpkiAttributesGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiAttributesGenderM SessionDecisionNFCVerificationsJpkiAttributesGender = "M" SessionDecisionNFCVerificationsJpkiAttributesGenderF SessionDecisionNFCVerificationsJpkiAttributesGender = "F" )
Known values of SessionDecisionNFCVerificationsJpkiAttributesGender.
type SessionDecisionNFCVerificationsJpkiCertificateTypes ¶
type SessionDecisionNFCVerificationsJpkiCertificateTypes string
SessionDecisionNFCVerificationsJpkiCertificateTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiCertificateTypesUserAuthentication SessionDecisionNFCVerificationsJpkiCertificateTypes = "user_authentication" SessionDecisionNFCVerificationsJpkiCertificateTypesSignature SessionDecisionNFCVerificationsJpkiCertificateTypes = "signature" )
Known values of SessionDecisionNFCVerificationsJpkiCertificateTypes.
type SessionDecisionNFCVerificationsJpkiCertificates ¶
type SessionDecisionNFCVerificationsJpkiCertificates struct {
// Which card certificate this entry describes.
Type SessionDecisionNFCVerificationsJpkiCertificatesType `json:"type"`
// `true` when the certificate chains to the JPKI certification authority of its
// type, is inside its validity period and is a My Number Card certificate of
// that type.
ChainValid bool `json:"chain_valid"`
// `true` when the card's signature over the one-time challenge verifies against
// this certificate.
SignatureValid bool `json:"signature_valid"`
// Generation of the JPKI certification authority that issued the certificate,
// for example `2023`. `null` when no trusted issuer was found.
CaGeneration string `json:"ca_generation"`
// Start of the certificate's validity period. `null` when the certificate could
// not be read.
NotValidBefore time.Time `json:"not_valid_before"`
// End of the certificate's validity period. `null` when the certificate could
// not be read.
NotValidAfter time.Time `json:"not_valid_after"`
// Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer`
// (not issued by the JPKI certification authority of its type), `expired`,
// `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that
// type) or `key_usage` (the key may not sign). `null` when the chain is valid.
Failure SessionDecisionNFCVerificationsJpkiCertificatesFailure `json:"failure"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsJpkiCertificates: What one certificate read from the card proved. Never the certificate itself or its serial number.
func (*SessionDecisionNFCVerificationsJpkiCertificates) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsJpkiCertificates) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsJpkiCertificates leniently.
type SessionDecisionNFCVerificationsJpkiCertificatesFailure ¶
type SessionDecisionNFCVerificationsJpkiCertificatesFailure string
SessionDecisionNFCVerificationsJpkiCertificatesFailure: Why `chain_valid` is `false`: `unreadable_certificate`, `untrusted_issuer` (not issued by the JPKI certification authority of its type), `expired`, `not_yet_valid`, `wrong_policy` (not a My Number Card certificate of that type) or `key_usage` (the key may not sign). `null` when the chain is valid.
SessionDecisionNFCVerificationsJpkiCertificatesFailure is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiCertificatesFailureUnreadableCertificate SessionDecisionNFCVerificationsJpkiCertificatesFailure = "unreadable_certificate" SessionDecisionNFCVerificationsJpkiCertificatesFailureUntrustedIssuer SessionDecisionNFCVerificationsJpkiCertificatesFailure = "untrusted_issuer" SessionDecisionNFCVerificationsJpkiCertificatesFailureExpired SessionDecisionNFCVerificationsJpkiCertificatesFailure = "expired" SessionDecisionNFCVerificationsJpkiCertificatesFailureNotYetValid SessionDecisionNFCVerificationsJpkiCertificatesFailure = "not_yet_valid" SessionDecisionNFCVerificationsJpkiCertificatesFailureWrongPolicy SessionDecisionNFCVerificationsJpkiCertificatesFailure = "wrong_policy" SessionDecisionNFCVerificationsJpkiCertificatesFailureKeyUsage SessionDecisionNFCVerificationsJpkiCertificatesFailure = "key_usage" )
Known values of SessionDecisionNFCVerificationsJpkiCertificatesFailure.
type SessionDecisionNFCVerificationsJpkiCertificatesType ¶
type SessionDecisionNFCVerificationsJpkiCertificatesType string
SessionDecisionNFCVerificationsJpkiCertificatesType: Which card certificate this entry describes.
SessionDecisionNFCVerificationsJpkiCertificatesType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiCertificatesTypeUserAuthentication SessionDecisionNFCVerificationsJpkiCertificatesType = "user_authentication" SessionDecisionNFCVerificationsJpkiCertificatesTypeSignature SessionDecisionNFCVerificationsJpkiCertificatesType = "signature" )
Known values of SessionDecisionNFCVerificationsJpkiCertificatesType.
type SessionDecisionNFCVerificationsJpkiMismatchedAttributes ¶
type SessionDecisionNFCVerificationsJpkiMismatchedAttributes string
SessionDecisionNFCVerificationsJpkiMismatchedAttributes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiMismatchedAttributesFullName SessionDecisionNFCVerificationsJpkiMismatchedAttributes = "full_name" SessionDecisionNFCVerificationsJpkiMismatchedAttributesDateOfBirth SessionDecisionNFCVerificationsJpkiMismatchedAttributes = "date_of_birth" SessionDecisionNFCVerificationsJpkiMismatchedAttributesGender SessionDecisionNFCVerificationsJpkiMismatchedAttributes = "gender" SessionDecisionNFCVerificationsJpkiMismatchedAttributesAddress SessionDecisionNFCVerificationsJpkiMismatchedAttributes = "address" )
Known values of SessionDecisionNFCVerificationsJpkiMismatchedAttributes.
type SessionDecisionNFCVerificationsJpkiRevocationStatus ¶
type SessionDecisionNFCVerificationsJpkiRevocationStatus string
SessionDecisionNFCVerificationsJpkiRevocationStatus: `good` when the revocation check confirmed every certificate is valid, `revoked` when any certificate is revoked (for example a card reported lost), `unchecked` when no revocation answer was available. `unchecked` is never treated as `good`: the NFC node's `jpki_revocation_unchecked_action` decides the outcome (default `REVIEW`).
SessionDecisionNFCVerificationsJpkiRevocationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsJpkiRevocationStatusGood SessionDecisionNFCVerificationsJpkiRevocationStatus = "good" SessionDecisionNFCVerificationsJpkiRevocationStatusRevoked SessionDecisionNFCVerificationsJpkiRevocationStatus = "revoked" SessionDecisionNFCVerificationsJpkiRevocationStatusUnchecked SessionDecisionNFCVerificationsJpkiRevocationStatus = "unchecked" )
Known values of SessionDecisionNFCVerificationsJpkiRevocationStatus.
type SessionDecisionNFCVerificationsSkipReason ¶
type SessionDecisionNFCVerificationsSkipReason string
SessionDecisionNFCVerificationsSkipReason: Why this NFC step was skipped. Only set when `is_nfc_skipped` is `true`. Same taxonomy as the session-level `nfc_skip_reason`, which additionally covers the cases where NFC never produced a report at all.
SessionDecisionNFCVerificationsSkipReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsSkipReasonUserSkipped SessionDecisionNFCVerificationsSkipReason = "USER_SKIPPED" SessionDecisionNFCVerificationsSkipReasonDocumentWithoutChip SessionDecisionNFCVerificationsSkipReason = "DOCUMENT_WITHOUT_CHIP" SessionDecisionNFCVerificationsSkipReasonDeviceWithoutNFC SessionDecisionNFCVerificationsSkipReason = "DEVICE_WITHOUT_NFC" SessionDecisionNFCVerificationsSkipReasonIntegrationWithoutNFCAccess SessionDecisionNFCVerificationsSkipReason = "INTEGRATION_WITHOUT_NFC_ACCESS" )
Known values of SessionDecisionNFCVerificationsSkipReason.
type SessionDecisionNFCVerificationsStatus ¶
type SessionDecisionNFCVerificationsStatus string
SessionDecisionNFCVerificationsStatus: Feature-level status of this NFC step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionNFCVerificationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsStatusNotFinished SessionDecisionNFCVerificationsStatus = "Not Finished" SessionDecisionNFCVerificationsStatusApproved SessionDecisionNFCVerificationsStatus = "Approved" SessionDecisionNFCVerificationsStatusDeclined SessionDecisionNFCVerificationsStatus = "Declined" SessionDecisionNFCVerificationsStatusInReview SessionDecisionNFCVerificationsStatus = "In Review" SessionDecisionNFCVerificationsStatusResubRequested SessionDecisionNFCVerificationsStatus = "Resub Requested" )
Known values of SessionDecisionNFCVerificationsStatus.
type SessionDecisionNFCVerificationsWarnings ¶
type SessionDecisionNFCVerificationsWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionNFCVerificationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionNFCVerificationsWarnings is a response object.
func (*SessionDecisionNFCVerificationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionNFCVerificationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionNFCVerificationsWarnings leniently.
type SessionDecisionNFCVerificationsWarningsFeature ¶
type SessionDecisionNFCVerificationsWarningsFeature string
SessionDecisionNFCVerificationsWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionNFCVerificationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionNFCVerificationsWarningsFeatureIDVerification SessionDecisionNFCVerificationsWarningsFeature = "ID_VERIFICATION" SessionDecisionNFCVerificationsWarningsFeatureNFC SessionDecisionNFCVerificationsWarningsFeature = "NFC" SessionDecisionNFCVerificationsWarningsFeatureLiveness SessionDecisionNFCVerificationsWarningsFeature = "LIVENESS" SessionDecisionNFCVerificationsWarningsFeatureFacematch SessionDecisionNFCVerificationsWarningsFeature = "FACEMATCH" SessionDecisionNFCVerificationsWarningsFeatureProofOfAddress SessionDecisionNFCVerificationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionNFCVerificationsWarningsFeaturePhone SessionDecisionNFCVerificationsWarningsFeature = "PHONE" SessionDecisionNFCVerificationsWarningsFeatureEmail SessionDecisionNFCVerificationsWarningsFeature = "EMAIL" SessionDecisionNFCVerificationsWarningsFeatureAML SessionDecisionNFCVerificationsWarningsFeature = "AML" SessionDecisionNFCVerificationsWarningsFeatureLocation SessionDecisionNFCVerificationsWarningsFeature = "LOCATION" SessionDecisionNFCVerificationsWarningsFeatureDatabaseValidation SessionDecisionNFCVerificationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionNFCVerificationsWarningsFeatureQuestionnaire SessionDecisionNFCVerificationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionNFCVerificationsWarningsFeatureDocumentAi SessionDecisionNFCVerificationsWarningsFeature = "DOCUMENT_AI" SessionDecisionNFCVerificationsWarningsFeatureKYBRegistry SessionDecisionNFCVerificationsWarningsFeature = "KYB_REGISTRY" SessionDecisionNFCVerificationsWarningsFeatureKYBDocuments SessionDecisionNFCVerificationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionNFCVerificationsWarningsFeatureKYBKeyPeople SessionDecisionNFCVerificationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionNFCVerificationsWarningsFeature.
type SessionDecisionPOAVerifications ¶
type SessionDecisionPOAVerifications struct {
// Unique identifier for this POA step in the workflow graph.
NodeID string `json:"node_id"`
// Feature-level status of this Proof of Address step. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionPOAVerificationsStatus `json:"status"`
// URL of the proof of address document
DocumentFile string `json:"document_file"`
// Two-letter country code of the issuing state
IssuingState string `json:"issuing_state"`
// Type of proof of address document
DocumentType string `json:"document_type"`
// More specific classification of the POA document within its `document_type`,
// when one was detected. `null` otherwise.
DocumentSubtype string `json:"document_subtype"`
// Language code of the document
DocumentLanguage string `json:"document_language"`
// File-forensics metadata extracted from the uploaded POA document. Always
// contains the keys below (values are `null` when not applicable, e.g. EXIF
// dates for PDFs). `null` when no metadata could be extracted.
DocumentMetadata SessionDecisionPOAVerificationsDocumentMetadata `json:"document_metadata"`
// Name of the document issuer
Issuer string `json:"issuer"`
// Date when the document was issued
IssueDate string `json:"issue_date"`
// Expiration date of the document, if available
ExpirationDate string `json:"expiration_date"`
// Raw address from the proof of address document
POAAddress string `json:"poa_address"`
// Formatted address from the proof of address document
POAFormattedAddress string `json:"poa_formatted_address"`
POAParsedAddress SessionDecisionPOAVerificationsPOAParsedAddress `json:"poa_parsed_address"`
// Account-holder / addressee name extracted from the POA document, used for
// name matching. `null` when no name could be extracted.
NameOnDocument string `json:"name_on_document"`
// Similarity score (0-100) between `name_on_document` and the expected name
// supplied at session creation. `null` when either side is missing.
NameMatchScoreExpectedDetails float64 `json:"name_match_score_expected_details"`
// Similarity score (0-100) between `name_on_document` and the name extracted by
// the ID verification step. `null` when either side is missing.
NameMatchScoreIDVerification float64 `json:"name_match_score_id_verification"`
// Expected raw address for verification
ExpectedDetailsAddress string `json:"expected_details_address"`
// Expected formatted address for verification
ExpectedDetailsFormattedAddress string `json:"expected_details_formatted_address"`
// Expected parsed address details for verification
ExpectedDetailsParsedAddress map[string]any `json:"expected_details_parsed_address"`
// Additional banking and contact details extracted from the document.
ExtraFields SessionDecisionPOAVerificationsExtraFields `json:"extra_fields"`
// Additional proof of address files
ExtraFiles []string `json:"extra_files"`
Warnings []SessionDecisionPOAVerificationsWarnings `json:"warnings"`
// QR codes and barcodes detected across every processed page of the document.
// Empty when none are found. A located but undecodable QR code has
// `parsed_payload: null`.
DetectedCodes []DocumentAiDetectedCode `json:"detected_codes"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerifications is a response object.
func (*SessionDecisionPOAVerifications) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerifications leniently.
type SessionDecisionPOAVerificationsDocumentMetadata ¶
type SessionDecisionPOAVerificationsDocumentMetadata struct {
// Size of the document
FileSize int64 `json:"file_size"`
// Content type of the document
ContentType string `json:"content_type"`
// Date when the document was created
CreationDate string `json:"creation_date"`
// Date when the document was modified
ModifiedDate string `json:"modified_date"`
// PDF forensic analysis for suspected overlay-text manipulation. Null when no
// overlay manipulation evidence was found or the document was not a PDF.
OverlayManipulation SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation `json:"overlay_manipulation"`
// Creator application recorded in the document metadata.
Creator string `json:"creator"`
// Producer software recorded in the PDF metadata.
Producer string `json:"producer"`
// Editing/processing software recorded in the file metadata.
Software string `json:"software"`
// Encryption scheme of the document, when encrypted.
Encryption string `json:"encryption"`
// Whether the PDF carries a digital signature.
IsSigned bool `json:"is_signed"`
// Whether signature validation indicates the file was modified after signing.
IsTampered bool `json:"is_tampered"`
// Details of the digital signature(s), when present.
SignatureInfo map[string]any `json:"signature_info"`
// EXIF original capture date, for image uploads.
ExifOriginalDate string `json:"exif_original_date"`
// EXIF digitization date, for image uploads.
ExifDigitizedDate string `json:"exif_digitized_date"`
// Whether the file metadata indicates processing by a known document editor.
ProcessedByKnownEditor bool `json:"processed_by_known_editor"`
// Whether the creation and modification dates differ - a common manipulation
// signal.
HasDifferentCreationModDate bool `json:"has_different_creation_mod_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsDocumentMetadata: File-forensics metadata extracted from the uploaded POA document. Always contains the keys below (values are `null` when not applicable, e.g. EXIF dates for PDFs). `null` when no metadata could be extracted.
func (*SessionDecisionPOAVerificationsDocumentMetadata) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsDocumentMetadata) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsDocumentMetadata leniently.
type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation ¶
type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation struct {
// Whether overlay-text manipulation evidence was detected.
Detected bool `json:"detected"`
// Whether the PDF could be analyzed.
Analyzed bool `json:"analyzed"`
// Forensic signals that fired, such as duplicate_font_subset or
// glyph_fragmentation.
Signals []string `json:"signals"`
// Suspected manipulated areas in PDF page coordinates.
ManipulatedRegions []SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions `json:"manipulated_regions"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation: PDF forensic analysis for suspected overlay-text manipulation. Null when no overlay manipulation evidence was found or the document was not a PDF.
func (*SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulation leniently.
type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions ¶
type SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions struct {
Page int64 `json:"page"`
X float64 `json:"x"`
Y float64 `json:"y"`
Width float64 `json:"width"`
Height float64 `json:"height"`
PageWidth float64 `json:"page_width"`
PageHeight float64 `json:"page_height"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions is a response object.
func (*SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsDocumentMetadataOverlayManipulationManipulatedRegions leniently.
type SessionDecisionPOAVerificationsExtraFields ¶
type SessionDecisionPOAVerificationsExtraFields struct {
BankAccountNumber string `json:"bank_account_number"`
BankIBAN string `json:"bank_iban"`
BankSortCode string `json:"bank_sort_code"`
BankRoutingNumber string `json:"bank_routing_number"`
BankSwiftBIC string `json:"bank_swift_bic"`
BankBranchName string `json:"bank_branch_name"`
BankBranchAddress string `json:"bank_branch_address"`
DocumentPhoneNumber string `json:"document_phone_number"`
AdditionalNames []string `json:"additional_names"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsExtraFields: Additional banking and contact details extracted from the document.
func (*SessionDecisionPOAVerificationsExtraFields) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsExtraFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsExtraFields leniently.
type SessionDecisionPOAVerificationsPOAParsedAddress ¶
type SessionDecisionPOAVerificationsPOAParsedAddress struct {
// Type of address (Street, Avenue, etc)
AddressType string `json:"address_type"`
// Primary street address
Street1 string `json:"street_1"`
// Secondary street address
Street2 string `json:"street_2"`
// City name
City string `json:"city"`
// Region or state name
Region string `json:"region"`
// Two-letter country code
Country string `json:"country"`
// Postal code
PostalCode string `json:"postal_code"`
DocumentLocation SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation `json:"document_location"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsPOAParsedAddress is a response object.
func (*SessionDecisionPOAVerificationsPOAParsedAddress) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsPOAParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsPOAParsedAddress leniently.
type SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation ¶
type SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation struct {
// Latitude coordinate
Latitude float64 `json:"latitude"`
// Longitude coordinate
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation is a response object.
func (*SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsPOAParsedAddressDocumentLocation leniently.
type SessionDecisionPOAVerificationsStatus ¶
type SessionDecisionPOAVerificationsStatus string
SessionDecisionPOAVerificationsStatus: Feature-level status of this Proof of Address step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionPOAVerificationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionPOAVerificationsStatusNotFinished SessionDecisionPOAVerificationsStatus = "Not Finished" SessionDecisionPOAVerificationsStatusApproved SessionDecisionPOAVerificationsStatus = "Approved" SessionDecisionPOAVerificationsStatusDeclined SessionDecisionPOAVerificationsStatus = "Declined" SessionDecisionPOAVerificationsStatusInReview SessionDecisionPOAVerificationsStatus = "In Review" SessionDecisionPOAVerificationsStatusResubRequested SessionDecisionPOAVerificationsStatus = "Resub Requested" )
Known values of SessionDecisionPOAVerificationsStatus.
type SessionDecisionPOAVerificationsWarnings ¶
type SessionDecisionPOAVerificationsWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionPOAVerificationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPOAVerificationsWarnings is a response object.
func (*SessionDecisionPOAVerificationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionPOAVerificationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPOAVerificationsWarnings leniently.
type SessionDecisionPOAVerificationsWarningsFeature ¶
type SessionDecisionPOAVerificationsWarningsFeature string
SessionDecisionPOAVerificationsWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionPOAVerificationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionPOAVerificationsWarningsFeatureIDVerification SessionDecisionPOAVerificationsWarningsFeature = "ID_VERIFICATION" SessionDecisionPOAVerificationsWarningsFeatureNFC SessionDecisionPOAVerificationsWarningsFeature = "NFC" SessionDecisionPOAVerificationsWarningsFeatureLiveness SessionDecisionPOAVerificationsWarningsFeature = "LIVENESS" SessionDecisionPOAVerificationsWarningsFeatureFacematch SessionDecisionPOAVerificationsWarningsFeature = "FACEMATCH" SessionDecisionPOAVerificationsWarningsFeatureProofOfAddress SessionDecisionPOAVerificationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionPOAVerificationsWarningsFeaturePhone SessionDecisionPOAVerificationsWarningsFeature = "PHONE" SessionDecisionPOAVerificationsWarningsFeatureEmail SessionDecisionPOAVerificationsWarningsFeature = "EMAIL" SessionDecisionPOAVerificationsWarningsFeatureAML SessionDecisionPOAVerificationsWarningsFeature = "AML" SessionDecisionPOAVerificationsWarningsFeatureLocation SessionDecisionPOAVerificationsWarningsFeature = "LOCATION" SessionDecisionPOAVerificationsWarningsFeatureDatabaseValidation SessionDecisionPOAVerificationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionPOAVerificationsWarningsFeatureQuestionnaire SessionDecisionPOAVerificationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionPOAVerificationsWarningsFeatureDocumentAi SessionDecisionPOAVerificationsWarningsFeature = "DOCUMENT_AI" SessionDecisionPOAVerificationsWarningsFeatureKYBRegistry SessionDecisionPOAVerificationsWarningsFeature = "KYB_REGISTRY" SessionDecisionPOAVerificationsWarningsFeatureKYBDocuments SessionDecisionPOAVerificationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionPOAVerificationsWarningsFeatureKYBKeyPeople SessionDecisionPOAVerificationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionPOAVerificationsWarningsFeature.
type SessionDecisionPhoneVerifications ¶
type SessionDecisionPhoneVerifications struct {
// Unique identifier for this phone step in the workflow graph.
NodeID string `json:"node_id"`
// Feature-level status of this phone verification step. Independent of the
// top-level session `status` - a session can reach its overall decision while
// an individual feature stays `In Review`.
Status SessionDecisionPhoneVerificationsStatus `json:"status"`
// Country calling code prefix
PhoneNumberPrefix string `json:"phone_number_prefix"`
// Phone number without country prefix
PhoneNumber string `json:"phone_number"`
// Complete phone number with country prefix
FullNumber string `json:"full_number"`
// Two-letter country code (ISO 3166-1 alpha-2)
CountryCode string `json:"country_code"`
// Full country name
CountryName string `json:"country_name"`
Carrier SessionDecisionPhoneVerificationsCarrier `json:"carrier"`
// Whether the phone number is from a disposable service
IsDisposable bool `json:"is_disposable"`
// Whether the phone number is virtual
IsVirtual bool `json:"is_virtual"`
// Method used to verify the phone number
VerificationMethod string `json:"verification_method"`
// Number of verification attempts made
VerificationAttempts int64 `json:"verification_attempts"`
// Timestamp when the phone was verified
VerifiedAt time.Time `json:"verified_at"`
// Chronological list of events in the phone verification lifecycle.
Lifecycle []SessionDecisionPhoneVerificationsLifecycle `json:"lifecycle"`
// List of warnings related to phone verification
Warnings []SessionDecisionPhoneVerificationsWarnings `json:"warnings"`
// Matches found for this phone number. Each match has a `source`: `session`
// (another verification session in your application matched on the same number,
// returned with
// `session_id`/`session_number`/`vendor_data`/`verification_date`) or
// `list_entry` (the number is on an org-managed allow/block list - see
// `/management-api/lists/overview`). Cross-session matches use different
// `vendor_data` and are capped at 5.
Matches []SessionDecisionPhoneVerificationsMatches `json:"matches"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerifications is a response object.
func (*SessionDecisionPhoneVerifications) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerifications) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerifications leniently.
type SessionDecisionPhoneVerificationsCarrier ¶
type SessionDecisionPhoneVerificationsCarrier struct {
// Name of the phone carrier
Name string `json:"name"`
// Type of phone line (mobile, landline, etc)
Type string `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerificationsCarrier is a response object.
func (*SessionDecisionPhoneVerificationsCarrier) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerificationsCarrier) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerificationsCarrier leniently.
type SessionDecisionPhoneVerificationsLifecycle ¶
type SessionDecisionPhoneVerificationsLifecycle struct {
Type string `json:"type"`
Timestamp time.Time `json:"timestamp"`
// Event-specific payload. Send events carry `status`, `reason`, `channel`,
// `actual_channel`; delivery events carry `channel`, `status`; code-check
// events carry `code_tried`, `status`; final status events carry `reason` - or
// `null` when there is no reason to report (e.g.
// `PHONE_VERIFICATION_APPROVED`).
Details SessionDecisionPhoneVerificationsLifecycleDetails `json:"details"`
Fee float64 `json:"fee"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerificationsLifecycle is a response object.
func (*SessionDecisionPhoneVerificationsLifecycle) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerificationsLifecycle) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerificationsLifecycle leniently.
type SessionDecisionPhoneVerificationsLifecycleDetails ¶
type SessionDecisionPhoneVerificationsLifecycleDetails struct {
Status string `json:"status"`
Reason string `json:"reason"`
Channel string `json:"channel"`
ActualChannel string `json:"actual_channel"`
CodeTried string `json:"code_tried"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerificationsLifecycleDetails: Event-specific payload. Send events carry `status`, `reason`, `channel`, `actual_channel`; delivery events carry `channel`, `status`; code-check events carry `code_tried`, `status`; final status events carry `reason` - or `null` when there is no reason to report (e.g. `PHONE_VERIFICATION_APPROVED`).
func (*SessionDecisionPhoneVerificationsLifecycleDetails) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerificationsLifecycleDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerificationsLifecycleDetails leniently.
type SessionDecisionPhoneVerificationsMatches ¶
type SessionDecisionPhoneVerificationsMatches struct {
SessionID string `json:"session_id"`
SessionNumber int64 `json:"session_number"`
VendorData string `json:"vendor_data"`
VerificationDate time.Time `json:"verification_date"`
PhoneNumber string `json:"phone_number"`
Status string `json:"status"`
IsBlocklisted bool `json:"is_blocklisted"`
APIService string `json:"api_service"`
// Where this match came from. `session` means another verification session in
// your application matched on this value. `list_entry` means the value was hit
// against an org-managed list (allowlist/blocklist) - see the management API
// lists overview at `/management-api/lists/overview` for how to manage those
// lists.
Source SessionDecisionPhoneVerificationsMatchesSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerificationsMatches is a response object.
func (*SessionDecisionPhoneVerificationsMatches) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerificationsMatches) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerificationsMatches leniently.
type SessionDecisionPhoneVerificationsMatchesSource ¶
type SessionDecisionPhoneVerificationsMatchesSource string
SessionDecisionPhoneVerificationsMatchesSource: Where this match came from. `session` means another verification session in your application matched on this value. `list_entry` means the value was hit against an org-managed list (allowlist/blocklist) - see the management API lists overview at `/management-api/lists/overview` for how to manage those lists.
SessionDecisionPhoneVerificationsMatchesSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionPhoneVerificationsMatchesSourceSession SessionDecisionPhoneVerificationsMatchesSource = "session" SessionDecisionPhoneVerificationsMatchesSourceListEntry SessionDecisionPhoneVerificationsMatchesSource = "list_entry" )
Known values of SessionDecisionPhoneVerificationsMatchesSource.
type SessionDecisionPhoneVerificationsStatus ¶
type SessionDecisionPhoneVerificationsStatus string
SessionDecisionPhoneVerificationsStatus: Feature-level status of this phone verification step. Independent of the top-level session `status` - a session can reach its overall decision while an individual feature stays `In Review`.
SessionDecisionPhoneVerificationsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionPhoneVerificationsStatusNotFinished SessionDecisionPhoneVerificationsStatus = "Not Finished" SessionDecisionPhoneVerificationsStatusApproved SessionDecisionPhoneVerificationsStatus = "Approved" SessionDecisionPhoneVerificationsStatusDeclined SessionDecisionPhoneVerificationsStatus = "Declined" SessionDecisionPhoneVerificationsStatusInReview SessionDecisionPhoneVerificationsStatus = "In Review" SessionDecisionPhoneVerificationsStatusExpired SessionDecisionPhoneVerificationsStatus = "Expired" )
Known values of SessionDecisionPhoneVerificationsStatus.
type SessionDecisionPhoneVerificationsWarnings ¶
type SessionDecisionPhoneVerificationsWarnings struct {
// The feature that generated this warning. The value identifies the feature
// block the warning belongs to. Each module's warnings array typically uses the
// value matching its module (e.g. `PHONE` inside
// `phone_verifications[].warnings`), but the enum above is authoritative across
// all feature warnings on the decision payload.
Feature SessionDecisionPhoneVerificationsWarningsFeature `json:"feature"`
Risk string `json:"risk"`
AdditionalData map[string]any `json:"additional_data"`
LogType string `json:"log_type"`
ShortDescription string `json:"short_description"`
LongDescription string `json:"long_description"`
// The workflow graph node ID that generated this warning
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionPhoneVerificationsWarnings is a response object.
func (*SessionDecisionPhoneVerificationsWarnings) UnmarshalJSON ¶
func (r *SessionDecisionPhoneVerificationsWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionPhoneVerificationsWarnings leniently.
type SessionDecisionPhoneVerificationsWarningsFeature ¶
type SessionDecisionPhoneVerificationsWarningsFeature string
SessionDecisionPhoneVerificationsWarningsFeature: The feature that generated this warning. The value identifies the feature block the warning belongs to. Each module's warnings array typically uses the value matching its module (e.g. `PHONE` inside `phone_verifications[].warnings`), but the enum above is authoritative across all feature warnings on the decision payload.
SessionDecisionPhoneVerificationsWarningsFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionPhoneVerificationsWarningsFeatureIDVerification SessionDecisionPhoneVerificationsWarningsFeature = "ID_VERIFICATION" SessionDecisionPhoneVerificationsWarningsFeatureNFC SessionDecisionPhoneVerificationsWarningsFeature = "NFC" SessionDecisionPhoneVerificationsWarningsFeatureLiveness SessionDecisionPhoneVerificationsWarningsFeature = "LIVENESS" SessionDecisionPhoneVerificationsWarningsFeatureFacematch SessionDecisionPhoneVerificationsWarningsFeature = "FACEMATCH" SessionDecisionPhoneVerificationsWarningsFeatureProofOfAddress SessionDecisionPhoneVerificationsWarningsFeature = "PROOF_OF_ADDRESS" SessionDecisionPhoneVerificationsWarningsFeaturePhone SessionDecisionPhoneVerificationsWarningsFeature = "PHONE" SessionDecisionPhoneVerificationsWarningsFeatureEmail SessionDecisionPhoneVerificationsWarningsFeature = "EMAIL" SessionDecisionPhoneVerificationsWarningsFeatureAML SessionDecisionPhoneVerificationsWarningsFeature = "AML" SessionDecisionPhoneVerificationsWarningsFeatureLocation SessionDecisionPhoneVerificationsWarningsFeature = "LOCATION" SessionDecisionPhoneVerificationsWarningsFeatureDatabaseValidation SessionDecisionPhoneVerificationsWarningsFeature = "DATABASE_VALIDATION" SessionDecisionPhoneVerificationsWarningsFeatureQuestionnaire SessionDecisionPhoneVerificationsWarningsFeature = "QUESTIONNAIRE" SessionDecisionPhoneVerificationsWarningsFeatureDocumentAi SessionDecisionPhoneVerificationsWarningsFeature = "DOCUMENT_AI" SessionDecisionPhoneVerificationsWarningsFeatureKYBRegistry SessionDecisionPhoneVerificationsWarningsFeature = "KYB_REGISTRY" SessionDecisionPhoneVerificationsWarningsFeatureKYBDocuments SessionDecisionPhoneVerificationsWarningsFeature = "KYB_DOCUMENTS" SessionDecisionPhoneVerificationsWarningsFeatureKYBKeyPeople SessionDecisionPhoneVerificationsWarningsFeature = "KYB_KEY_PEOPLE" )
Known values of SessionDecisionPhoneVerificationsWarningsFeature.
type SessionDecisionQuestionnaireResponses ¶
type SessionDecisionQuestionnaireResponses struct {
// Unique identifier for this questionnaire step in the workflow graph.
NodeID string `json:"node_id"`
// Unique identifier for the questionnaire
QuestionnaireID string `json:"questionnaire_id"`
// Title of the questionnaire
Title string `json:"title"`
// Description of the questionnaire
Description string `json:"description"`
// Supported languages
Languages []string `json:"languages"`
// Default language
DefaultLanguage string `json:"default_language"`
// Whether the questionnaire is active
IsActive bool `json:"is_active"`
// Whether the questionnaire is a simple linear form (no branching graph).
IsSimpleQuestionnaire bool `json:"is_simple_questionnaire"`
// Stable identifier of the questionnaire group across versions.
QuestionnaireGroupID string `json:"questionnaire_group_id"`
// Version number of the questionnaire that was answered.
Version int64 `json:"version"`
// Timestamp at which this questionnaire version was published.
PublishedAt time.Time `json:"published_at"`
Sections []SessionDecisionQuestionnaireResponsesSections `json:"sections"`
// Status of the questionnaire
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionQuestionnaireResponses is a response object.
func (*SessionDecisionQuestionnaireResponses) UnmarshalJSON ¶
func (r *SessionDecisionQuestionnaireResponses) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionQuestionnaireResponses leniently.
type SessionDecisionQuestionnaireResponsesSections ¶
type SessionDecisionQuestionnaireResponsesSections struct {
// Section title
Title string `json:"title"`
// Section description
Description string `json:"description"`
Items []SessionDecisionQuestionnaireResponsesSectionsItems `json:"items"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionQuestionnaireResponsesSections is a response object.
func (*SessionDecisionQuestionnaireResponsesSections) UnmarshalJSON ¶
func (r *SessionDecisionQuestionnaireResponsesSections) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionQuestionnaireResponsesSections leniently.
type SessionDecisionQuestionnaireResponsesSectionsItems ¶
type SessionDecisionQuestionnaireResponsesSectionsItems struct {
// Unique identifier for the item
UUID string `json:"uuid"`
// Stable node identifier of this form element within the questionnaire graph.
Value string `json:"value"`
// Type of the questionnaire element
ElementType string `json:"element_type"`
// Whether the item is required
IsRequired bool `json:"is_required"`
// Title of the item
Title string `json:"title"`
// Description of the item
Description string `json:"description"`
// Placeholder text
Placeholder string `json:"placeholder"`
// Choices for dropdown or single choice elements
Choices []SessionDecisionQuestionnaireResponsesSectionsItemsChoices `json:"choices"`
// Maximum number of files allowed
MaxFiles int64 `json:"max_files"`
// Answer provided for the item
Answer SessionDecisionQuestionnaireResponsesSectionsItemsAnswer `json:"answer"`
// Conditional-requirement rule, when the element is only required for certain
// answers.
RequiredIf map[string]any `json:"required_if"`
// Configuration for repeatable element groups, when applicable.
RepeatableConfig map[string]any `json:"repeatable_config"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionQuestionnaireResponsesSectionsItems is a response object.
func (*SessionDecisionQuestionnaireResponsesSectionsItems) UnmarshalJSON ¶
func (r *SessionDecisionQuestionnaireResponsesSectionsItems) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionQuestionnaireResponsesSectionsItems leniently.
type SessionDecisionQuestionnaireResponsesSectionsItemsAnswer ¶
type SessionDecisionQuestionnaireResponsesSectionsItemsAnswer struct {
Value string `json:"value"`
Text string `json:"text"`
Files []string `json:"files"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionQuestionnaireResponsesSectionsItemsAnswer: Answer provided for the item
func (*SessionDecisionQuestionnaireResponsesSectionsItemsAnswer) UnmarshalJSON ¶
func (r *SessionDecisionQuestionnaireResponsesSectionsItemsAnswer) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionQuestionnaireResponsesSectionsItemsAnswer leniently.
type SessionDecisionQuestionnaireResponsesSectionsItemsChoices ¶
type SessionDecisionQuestionnaireResponsesSectionsItemsChoices struct {
Label string `json:"label"`
Value string `json:"value"`
// Whether this choice requires additional text input
RequiresTextInput bool `json:"requires_text_input"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionQuestionnaireResponsesSectionsItemsChoices is a response object.
func (*SessionDecisionQuestionnaireResponsesSectionsItemsChoices) UnmarshalJSON ¶
func (r *SessionDecisionQuestionnaireResponsesSectionsItemsChoices) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionQuestionnaireResponsesSectionsItemsChoices leniently.
type SessionDecisionRegistryChecks ¶
type SessionDecisionRegistryChecks struct {
// Feature lifecycle status.
Status string `json:"status"`
NodeID string `json:"node_id"`
DataResolved bool `json:"data_resolved"`
// Full registry payload for the company (registry record merged with any
// user-provided or console-edited data).
Company SessionDecisionRegistryChecksCompany `json:"company"`
// Raw ownership snapshot kept for reviewers; its shape differs by registry
// source and is not a stable contract. Read `company.beneficial_owners` and
// `company.ownership` instead.
OwnershipStructure map[string]any `json:"ownership_structure"`
Warnings []map[string]any `json:"warnings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionRegistryChecks: One company registry check - the full company-registry payload enriched with ownership structure and warnings. Present only when `session_kind = business`.
func (*SessionDecisionRegistryChecks) UnmarshalJSON ¶
func (r *SessionDecisionRegistryChecks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionRegistryChecks leniently.
type SessionDecisionRegistryChecksCompany ¶
type SessionDecisionRegistryChecksCompany struct {
UUID string `json:"uuid"`
NodeID string `json:"node_id"`
Status string `json:"status"`
RegistryStatus string `json:"registry_status"`
DataResolved bool `json:"data_resolved"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
// Country of incorporation (ISO 3166-1 alpha-2, e.g. `GB`, `DE`, `US`).
CountryCode string `json:"country_code"`
// ISO 3166-2 subdivision code when applicable (e.g. `CA`, `NY` for US states).
Region string `json:"region"`
CompanyType string `json:"company_type"`
IncorporationDate string `json:"incorporation_date"`
RegisteredAddress string `json:"registered_address"`
TaxNumber string `json:"tax_number"`
RiskLevel SessionDecisionRegistryChecksCompanyRiskLevel `json:"risk_level"`
VerificationStatus string `json:"verification_status"`
IsFromRegistry bool `json:"is_from_registry"`
FetchStatus string `json:"fetch_status"`
// Alternative, trading, former or original-language company names as text, when
// reported.
AlternativeNames string `json:"alternative_names"`
NatureOfBusiness string `json:"nature_of_business"`
RegisteredCapital string `json:"registered_capital"`
// Registered/share capital amount as a decimal string (e.g. `"100.00"`), parsed
// from the registry filing. `null` when not available.
RegisteredCapitalAmount string `json:"registered_capital_amount"`
// ISO 4217 currency code of `registered_capital_amount` (e.g. `"GBP"`). `null`
// when not available.
RegisteredCapitalCurrency string `json:"registered_capital_currency"`
Website string `json:"website"`
Email string `json:"email"`
Phone string `json:"phone"`
LegalEntityIdentifier string `json:"legal_entity_identifier"`
LocationOfRegistration string `json:"location_of_registration"`
// EU VAT number, when collected during the hosted registry step or edited
// afterwards.
VATNumber string `json:"vat_number"`
// Result of validating the VAT number or, when there is none, the `tax_number`,
// at registry submit. `valid` / `invalid`: decided by the official registry of
// the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica,
// Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid`
// / `invalid_format`: decided by the country's format and check-digit rules
// where no registry can be queried. `could_not_validate`: the registry was
// unavailable. `not_applicable`: no number, a country without registry or
// rules, or a sandbox session.
VATValidationStatus SessionDecisionRegistryChecksCompanyVATValidationStatus `json:"vat_validation_status"`
// The number that was checked, as the source knows it (for example the VAT
// number derived from a French SIREN or a Dutch RSIN). `null` when no check
// ran.
VATValidatedNumber string `json:"vat_validated_number"`
// The source that decided `vat_validation_status`: an official registry, or
// `format_rules`. `null` when no check ran.
VATValidationSource SessionDecisionRegistryChecksCompanyVATValidationSource `json:"vat_validation_source"`
// Name registered with the source that validated the number, when it discloses
// one. Only set when the status is `valid`.
VATValidatedName string `json:"vat_validated_name"`
// Address registered with the source that validated the number, when it
// discloses one. Only set when the status is `valid`.
VATValidatedAddress string `json:"vat_validated_address"`
// Timestamp of the check. `null` when no check ran.
VATCheckedAt time.Time `json:"vat_checked_at"`
FinancialSummary map[string]any `json:"financial_summary"`
Officers []SessionDecisionRegistryChecksCompanyOfficers `json:"officers"`
BeneficialOwners []SessionDecisionRegistryChecksCompanyBeneficialOwners `json:"beneficial_owners"`
// Every address the registry states, one canonical shape. Null when it states
// none.
Addresses []KYBRegistryAddress `json:"addresses"`
// The activities the registry classifies the company under, one canonical
// shape. Null when it states none.
Industries []KYBRegistryIndustry `json:"industries"`
// Registry filing dates, when available. Annual returns and general meetings
// use last_annual_return_date and last_agm_date; they are distinct from
// financial accounts.
Accounts map[string]any `json:"accounts"`
// Raw record returned by the registry source, kept for reviewers. Its shape
// differs by country and source and is not a stable contract: read the
// canonical fields (`addresses`, `industries`, `ownership`,
// `beneficial_owners[].shareholding`) instead.
RegistryData map[string]any `json:"registry_data"`
// Data confirmed or edited by the end user.
UserProvidedData map[string]any `json:"user_provided_data"`
ConfirmedByUserAt time.Time `json:"confirmed_by_user_at"`
LastConsoleEditAt time.Time `json:"last_console_edit_at"`
IsEditable bool `json:"is_editable"`
Ownership KYBRegistryOwnership `json:"ownership"`
// The registry tier the workflow ordered: `basic`, `shareholders` or `ubo`.
// Also in `ownership.tier_requested`.
RegistryTier string `json:"registry_tier"`
// The tier the registry delivered and that is billed. Also in
// `ownership.tier_delivered`.
RegistryTierDelivered string `json:"registry_tier_delivered"`
// `not_requested`, `pending`, `delivered` or `unavailable`. Also in
// `ownership.status`.
RegistryOwnershipStatus string `json:"registry_ownership_status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionRegistryChecksCompany: Full registry payload for the company (registry record merged with any user-provided or console-edited data).
func (*SessionDecisionRegistryChecksCompany) UnmarshalJSON ¶
func (r *SessionDecisionRegistryChecksCompany) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionRegistryChecksCompany leniently.
type SessionDecisionRegistryChecksCompanyBeneficialOwners ¶
type SessionDecisionRegistryChecksCompanyBeneficialOwners struct {
UUID string `json:"uuid"`
Name string `json:"name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
EntityType SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType `json:"entity_type"`
Roles []string `json:"roles"`
// Free-form string (e.g. `"25.00"`, `"50"`); use `effective_ownership_percent`
// for a parsed numeric value.
OwnershipMinShares string `json:"ownership_min_shares"`
// Upper bound of the ownership percentage as reported by the registry.
// Free-form string; use `effective_ownership_percent` for a parsed numeric
// value.
IsActive bool `json:"is_active"`
KYCStatus SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus `json:"kyc_status"`
KYCSessionURL string `json:"kyc_session_url"`
EffectiveOwnershipPercent float64 `json:"effective_ownership_percent"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
CountryOfBirth string `json:"country_of_birth"`
Email string `json:"email"`
Nationality string `json:"nationality"`
Designation string `json:"designation"`
// Complete birth date when reported.
DateOfBirth string `json:"date_of_birth"`
// Appointment date when reported.
AppointmentDate string `json:"appointment_date"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionRegistryChecksCompanyBeneficialOwners is a response object.
func (*SessionDecisionRegistryChecksCompanyBeneficialOwners) UnmarshalJSON ¶
func (r *SessionDecisionRegistryChecksCompanyBeneficialOwners) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionRegistryChecksCompanyBeneficialOwners leniently.
type SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType ¶
type SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType string
SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityTypePerson SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType = "person" SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityTypeCompany SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType = "company" )
Known values of SessionDecisionRegistryChecksCompanyBeneficialOwnersEntityType.
type SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus ¶
type SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus string
SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatusApproved SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus = "Approved" SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatusDeclined SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus = "Declined" SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatusPending SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus = "Pending" )
Known values of SessionDecisionRegistryChecksCompanyBeneficialOwnersKYCStatus.
type SessionDecisionRegistryChecksCompanyOfficers ¶
type SessionDecisionRegistryChecksCompanyOfficers struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Designation string `json:"designation"`
Role string `json:"role"`
Nationality string `json:"nationality"`
IsActive bool `json:"is_active"`
KYCStatus SessionDecisionRegistryChecksCompanyOfficersKYCStatus `json:"kyc_status"`
KYCSessionURL string `json:"kyc_session_url"`
// Given name when explicitly reported by the registry; not inferred from the
// full name.
FirstName string `json:"first_name"`
// Family name when explicitly reported by the registry.
LastName string `json:"last_name"`
// Officer address reported by the registry.
Address string `json:"address"`
// Date the officer was appointed.
AppointmentDate string `json:"appointment_date"`
// Date the appointment ended, when reported.
TerminationDate string `json:"termination_date"`
// Complete registry-reported birth date. Null when only a birth year or month
// is known.
DateOfBirth string `json:"date_of_birth"`
// Registry-reported birth year, including when the full date is unavailable.
DateOfBirthYear int64 `json:"date_of_birth_year"`
// Registry-reported birth month. Null when only the year is known.
DateOfBirthMonth int64 `json:"date_of_birth_month"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionRegistryChecksCompanyOfficers is a response object.
func (*SessionDecisionRegistryChecksCompanyOfficers) UnmarshalJSON ¶
func (r *SessionDecisionRegistryChecksCompanyOfficers) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionRegistryChecksCompanyOfficers leniently.
type SessionDecisionRegistryChecksCompanyOfficersKYCStatus ¶
type SessionDecisionRegistryChecksCompanyOfficersKYCStatus string
SessionDecisionRegistryChecksCompanyOfficersKYCStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyOfficersKYCStatusApproved SessionDecisionRegistryChecksCompanyOfficersKYCStatus = "Approved" SessionDecisionRegistryChecksCompanyOfficersKYCStatusDeclined SessionDecisionRegistryChecksCompanyOfficersKYCStatus = "Declined" SessionDecisionRegistryChecksCompanyOfficersKYCStatusPending SessionDecisionRegistryChecksCompanyOfficersKYCStatus = "Pending" )
Known values of SessionDecisionRegistryChecksCompanyOfficersKYCStatus.
type SessionDecisionRegistryChecksCompanyRiskLevel ¶
type SessionDecisionRegistryChecksCompanyRiskLevel string
SessionDecisionRegistryChecksCompanyRiskLevel is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyRiskLevelLow SessionDecisionRegistryChecksCompanyRiskLevel = "LOW" SessionDecisionRegistryChecksCompanyRiskLevelMedium SessionDecisionRegistryChecksCompanyRiskLevel = "MEDIUM" SessionDecisionRegistryChecksCompanyRiskLevelHigh SessionDecisionRegistryChecksCompanyRiskLevel = "HIGH" )
Known values of SessionDecisionRegistryChecksCompanyRiskLevel.
type SessionDecisionRegistryChecksCompanyVATValidationSource ¶
type SessionDecisionRegistryChecksCompanyVATValidationSource string
SessionDecisionRegistryChecksCompanyVATValidationSource: The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.
SessionDecisionRegistryChecksCompanyVATValidationSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyVATValidationSourceEuVies SessionDecisionRegistryChecksCompanyVATValidationSource = "eu_vies" SessionDecisionRegistryChecksCompanyVATValidationSourcePlVATWhiteList SessionDecisionRegistryChecksCompanyVATValidationSource = "pl_vat_white_list" SessionDecisionRegistryChecksCompanyVATValidationSourceNoBrreg SessionDecisionRegistryChecksCompanyVATValidationSource = "no_brreg" SessionDecisionRegistryChecksCompanyVATValidationSourceChUIDRegister SessionDecisionRegistryChecksCompanyVATValidationSource = "ch_uid_register" SessionDecisionRegistryChecksCompanyVATValidationSourceBrReceitaFederal SessionDecisionRegistryChecksCompanyVATValidationSource = "br_receita_federal" SessionDecisionRegistryChecksCompanyVATValidationSourceCoRues SessionDecisionRegistryChecksCompanyVATValidationSource = "co_rues" SessionDecisionRegistryChecksCompanyVATValidationSourceCrHacienda SessionDecisionRegistryChecksCompanyVATValidationSource = "cr_hacienda" SessionDecisionRegistryChecksCompanyVATValidationSourceEcSri SessionDecisionRegistryChecksCompanyVATValidationSource = "ec_sri" SessionDecisionRegistryChecksCompanyVATValidationSourcePyDnit SessionDecisionRegistryChecksCompanyVATValidationSource = "py_dnit" SessionDecisionRegistryChecksCompanyVATValidationSourceFormatRules SessionDecisionRegistryChecksCompanyVATValidationSource = "format_rules" )
Known values of SessionDecisionRegistryChecksCompanyVATValidationSource.
type SessionDecisionRegistryChecksCompanyVATValidationStatus ¶
type SessionDecisionRegistryChecksCompanyVATValidationStatus string
SessionDecisionRegistryChecksCompanyVATValidationStatus: Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.
SessionDecisionRegistryChecksCompanyVATValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionRegistryChecksCompanyVATValidationStatusValid SessionDecisionRegistryChecksCompanyVATValidationStatus = "valid" SessionDecisionRegistryChecksCompanyVATValidationStatusInvalid SessionDecisionRegistryChecksCompanyVATValidationStatus = "invalid" SessionDecisionRegistryChecksCompanyVATValidationStatusFormatValid SessionDecisionRegistryChecksCompanyVATValidationStatus = "format_valid" SessionDecisionRegistryChecksCompanyVATValidationStatusInvalidFormat SessionDecisionRegistryChecksCompanyVATValidationStatus = "invalid_format" SessionDecisionRegistryChecksCompanyVATValidationStatusCouldNotValidate SessionDecisionRegistryChecksCompanyVATValidationStatus = "could_not_validate" SessionDecisionRegistryChecksCompanyVATValidationStatusNotApplicable SessionDecisionRegistryChecksCompanyVATValidationStatus = "not_applicable" )
Known values of SessionDecisionRegistryChecksCompanyVATValidationStatus.
type SessionDecisionResubmissions ¶
type SessionDecisionResubmissions struct {
// 1 for the first resubmission of the session, 2 for the second, and so on.
Number int64 `json:"number"`
// When the resubmission was requested.
CreatedAt time.Time `json:"created_at"`
// The session status just before the request.
PreviousStatus string `json:"previous_status"`
// The workflow steps sent back to the user.
Nodes []SessionDecisionResubmissionsNodes `json:"nodes"`
// The reason given for each step, keyed by `node_id`.
Reasons map[string]string `json:"reasons"`
// Who requested the resubmission.
RequestedBy SessionDecisionResubmissionsRequestedBy `json:"requested_by"`
// What the resubmitted steps returned before the request, under the same keys
// and in the same shape as the current results of this response
// (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`,
// `poa_verifications`, `phone_verifications`, `email_verifications`,
// `aml_screenings`, `ip_analyses`, `database_validations`,
// `questionnaire_responses`, `document_ai_documents`, `geolocation_checks`; for
// business sessions also `document_verifications`). Only the keys of the steps
// that were sent back appear.
Results map[string]any `json:"results"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionResubmissions is a response object.
func (*SessionDecisionResubmissions) UnmarshalJSON ¶
func (r *SessionDecisionResubmissions) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionResubmissions leniently.
type SessionDecisionResubmissionsNodes ¶
type SessionDecisionResubmissionsNodes struct {
NodeID string `json:"node_id"`
Feature string `json:"feature"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionResubmissionsNodes is a response object.
func (*SessionDecisionResubmissionsNodes) UnmarshalJSON ¶
func (r *SessionDecisionResubmissionsNodes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionResubmissionsNodes leniently.
type SessionDecisionResubmissionsRequestedBy ¶
type SessionDecisionResubmissionsRequestedBy struct {
Name string `json:"name"`
Email string `json:"email"`
Type string `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionResubmissionsRequestedBy: Who requested the resubmission.
func (*SessionDecisionResubmissionsRequestedBy) UnmarshalJSON ¶
func (r *SessionDecisionResubmissionsRequestedBy) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionResubmissionsRequestedBy leniently.
type SessionDecisionReviews ¶
type SessionDecisionReviews struct {
// Who performed the review. Usually the console reviewer's identifier (their
// email), but the value is `"API Client"` for status updates made with an API
// key and `"Unknown"` when no actor could be resolved - so do not parse this
// field as an email address.
User string `json:"user"`
NewStatus string `json:"new_status"`
Comment string `json:"comment"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDecisionReviews is a response object.
func (*SessionDecisionReviews) UnmarshalJSON ¶
func (r *SessionDecisionReviews) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDecisionReviews leniently.
type SessionDecisionSessionKind ¶
type SessionDecisionSessionKind string
SessionDecisionSessionKind: Discriminator indicating whether this is a User Verification (KYC) or Business Verification (KYB) session. When `user`, the KYC feature arrays (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `document_ai_documents`, `database_validations`, ...) apply and the business arrays are absent. When `business`, the payload instead carries `registry_checks`, `document_verifications`, `key_people_checks` plus the shared arrays (`aml_screenings`, `phone_verifications`, `email_verifications`, `ip_analyses`, `questionnaire_responses`). **Omitted when `include=events` is passed** - the events shape only exists for user sessions, so the discriminator is dropped from that variant.
SessionDecisionSessionKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionSessionKindUser SessionDecisionSessionKind = "user" SessionDecisionSessionKindBusiness SessionDecisionSessionKind = "business" )
Known values of SessionDecisionSessionKind.
type SessionDecisionStatus ¶
type SessionDecisionStatus string
SessionDecisionStatus: Overall lifecycle status of the session - the rolled-up workflow result. Terminal values are `Approved`, `Declined`, `In Review`, `Expired`, `Kyc Expired`, and `Abandoned`; `Not Started`, `In Progress`, `Awaiting User`, and `Resubmitted` indicate the session is still moving through the workflow.
SessionDecisionStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDecisionStatusNotStarted SessionDecisionStatus = "Not Started" SessionDecisionStatusInProgress SessionDecisionStatus = "In Progress" SessionDecisionStatusAwaitingUser SessionDecisionStatus = "Awaiting User" SessionDecisionStatusInReview SessionDecisionStatus = "In Review" SessionDecisionStatusApproved SessionDecisionStatus = "Approved" SessionDecisionStatusDeclined SessionDecisionStatus = "Declined" SessionDecisionStatusResubmitted SessionDecisionStatus = "Resubmitted" SessionDecisionStatusExpired SessionDecisionStatus = "Expired" SessionDecisionStatusKYCExpired SessionDecisionStatus = "Kyc Expired" SessionDecisionStatusAbandoned SessionDecisionStatus = "Abandoned" )
Known values of SessionDecisionStatus.
type SessionDeletionJob ¶
type SessionDeletionJob struct {
// Poll `GET /v3/sessions/delete/{job_id}/` with this id.
JobID string `json:"job_id"`
// `PENDING`: accepted, not started yet. `PROCESSING`: deleting; `processed` and
// `outcomes` are updating. `COMPLETED`: every selected session is accounted
// for. `FAILED`: the job stopped early; see `error`.
Status SessionDeletionJobStatus `json:"status"`
// Sessions selected when the deletion was requested.
Total int64 `json:"total"`
// Sessions the job has finished with so far.
Processed int64 `json:"processed"`
// How many sessions ended in each outcome. Every key is always present.
Outcomes SessionDeletionJobOutcomes `json:"outcomes"`
// Verifications that the deleted business verifications created, deleted with
// them. Always `0` for a job started by `POST /v3/sessions/delete/`, which
// deletes KYC sessions only.
DeletedChildVerifications int64 `json:"deleted_child_verifications"`
// `null` unless `status` is `FAILED`; then why the deletion stopped. The
// sessions the job had not reached are still in place: repeat the request to
// delete them.
Error string `json:"error"`
// When the deletion was requested.
CreatedAt time.Time `json:"created_at"`
// When the job finished; `null` while it runs.
CompletedAt time.Time `json:"completed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDeletionJob: A bulk session deletion running in the background: progress and counts per outcome, never which sessions it deleted.
func (*SessionDeletionJob) UnmarshalJSON ¶
func (r *SessionDeletionJob) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDeletionJob leniently.
type SessionDeletionJobOutcomes ¶
type SessionDeletionJobOutcomes struct {
// Sessions deleted together with their face embedding.
Deleted int64 `json:"deleted"`
// Sessions deleted that had no face embedding.
None int64 `json:"none"`
// Sessions deleted while one image-free biometric template was retained for
// their User, as the request or the application policy asked.
RetainedWithUser int64 `json:"retained_with_user"`
// Sessions deleted, with their face embedding, because retention was requested
// but they had no linked User.
IneligibleNoVendorUser int64 `json:"ineligible_no_vendor_user"`
// Sessions reported as not deleted. A job retries a group it could not delete
// by itself instead of counting it here.
FailedRetryable int64 `json:"failed_retryable"`
// Selected sessions that were already deleted, for example by another request,
// when the job reached them.
AlreadyDeleted int64 `json:"already_deleted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionDeletionJobOutcomes: How many sessions ended in each outcome. Every key is always present.
func (*SessionDeletionJobOutcomes) UnmarshalJSON ¶
func (r *SessionDeletionJobOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionDeletionJobOutcomes leniently.
type SessionDeletionJobStatus ¶
type SessionDeletionJobStatus string
SessionDeletionJobStatus: `PENDING`: accepted, not started yet. `PROCESSING`: deleting; `processed` and `outcomes` are updating. `COMPLETED`: every selected session is accounted for. `FAILED`: the job stopped early; see `error`.
SessionDeletionJobStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionDeletionJobStatusPending SessionDeletionJobStatus = "PENDING" SessionDeletionJobStatusProcessing SessionDeletionJobStatus = "PROCESSING" SessionDeletionJobStatusCompleted SessionDeletionJobStatus = "COMPLETED" SessionDeletionJobStatusFailed SessionDeletionJobStatus = "FAILED" )
Known values of SessionDeletionJobStatus.
type SessionEvent ¶
type SessionEvent struct {
// Event identifier.
UUID string `json:"uuid"`
// What happened. Reported by the device during the hosted flow or SDK:
// `LINK_OPENED`, `STEP_RENDERED`, `BUTTON_CLICKED`, `FORM_SUBMITTED`,
// `FILE_UPLOADED`, `ATTEMPT_FAILED` and `LOG` (debugging). Recorded by the
// server: `SESSION_CREATED`, `SESSION_STATUS_CHANGED` (`details.old_status`,
// `details.current_status`), `FEATURE_STEP_CHANGED`
// (`details.old_feature_step`, `details.current_feature_step`),
// `WORKFLOW_BRANCH_EVALUATED` and `WORKFLOW_STATUS_NODE_REACHED` (the workflow
// routing trace). `SESSION_COMPLETED`, `NOTE_ADDED` and `MANUAL_REVIEW_STARTED`
// can appear on older sessions.
EventType SessionEventEventType `json:"event_type"`
// When Didit stored the event. Events are stored asynchronously, a few seconds
// after `sent_at`.
CreatedAt time.Time `json:"created_at"`
// UI component that reported the event (device events only).
Component string `json:"component"`
// Verification feature the session was on when the event happened.
FeatureStep SessionEventFeatureStep `json:"feature_step"`
// Screen within the feature, for example `DOCUMENT_CAPTURE_FRONT` or
// `FACE_PASSIVE_LIVENESS`.
Step string `json:"step"`
// Event-specific data. The keys depend on `event_type`.
Details map[string]any `json:"details"`
// IP address the device reported the event from. `null` for server-recorded
// events.
IPAddress string `json:"ip_address"`
// User agent of the device. `null` for server-recorded events.
UserAgent string `json:"user_agent"`
// Device details the SDK or browser reported.
DeviceInfo map[string]any `json:"device_info"`
// Short-lived presigned link to a file attached to the event (for example a
// captured image). `null` when there is none, and always `null` for a scoped
// API key without `media: read`.
FileURL string `json:"file_url"`
// When the event happened, as a Unix timestamp in milliseconds. Results are
// ordered by it.
SentAt int64 `json:"sent_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionEvent: One entry of a verification session's event timeline.
func (*SessionEvent) UnmarshalJSON ¶
func (r *SessionEvent) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionEvent leniently.
type SessionEventEventType ¶
type SessionEventEventType string
SessionEventEventType: What happened. Reported by the device during the hosted flow or SDK: `LINK_OPENED`, `STEP_RENDERED`, `BUTTON_CLICKED`, `FORM_SUBMITTED`, `FILE_UPLOADED`, `ATTEMPT_FAILED` and `LOG` (debugging). Recorded by the server: `SESSION_CREATED`, `SESSION_STATUS_CHANGED` (`details.old_status`, `details.current_status`), `FEATURE_STEP_CHANGED` (`details.old_feature_step`, `details.current_feature_step`), `WORKFLOW_BRANCH_EVALUATED` and `WORKFLOW_STATUS_NODE_REACHED` (the workflow routing trace). `SESSION_COMPLETED`, `NOTE_ADDED` and `MANUAL_REVIEW_STARTED` can appear on older sessions.
SessionEventEventType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionEventEventTypeSessionCreated SessionEventEventType = "SESSION_CREATED" SessionEventEventTypeSessionCompleted SessionEventEventType = "SESSION_COMPLETED" SessionEventEventTypeSessionStatusChanged SessionEventEventType = "SESSION_STATUS_CHANGED" SessionEventEventTypeLinkOpened SessionEventEventType = "LINK_OPENED" SessionEventEventTypeFormSubmitted SessionEventEventType = "FORM_SUBMITTED" SessionEventEventTypeButtonClicked SessionEventEventType = "BUTTON_CLICKED" SessionEventEventTypeFileUploaded SessionEventEventType = "FILE_UPLOADED" SessionEventEventTypeAttemptFailed SessionEventEventType = "ATTEMPT_FAILED" SessionEventEventTypeFeatureStepChanged SessionEventEventType = "FEATURE_STEP_CHANGED" SessionEventEventTypeStepRendered SessionEventEventType = "STEP_RENDERED" SessionEventEventTypeNoteAdded SessionEventEventType = "NOTE_ADDED" SessionEventEventTypeManualReviewStarted SessionEventEventType = "MANUAL_REVIEW_STARTED" SessionEventEventTypeWorkflowBranchEvaluated SessionEventEventType = "WORKFLOW_BRANCH_EVALUATED" SessionEventEventTypeWorkflowStatusNodeReached SessionEventEventType = "WORKFLOW_STATUS_NODE_REACHED" SessionEventEventTypeLog SessionEventEventType = "LOG" )
Known values of SessionEventEventType.
type SessionEventFeatureStep ¶
type SessionEventFeatureStep string
SessionEventFeatureStep: Verification feature the session was on when the event happened.
SessionEventFeatureStep is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionEventFeatureStepOCR SessionEventFeatureStep = "OCR" SessionEventFeatureStepOCRBack SessionEventFeatureStep = "OCR_BACK" SessionEventFeatureStepNFC SessionEventFeatureStep = "NFC" SessionEventFeatureStepAML SessionEventFeatureStep = "AML" SessionEventFeatureStepFace SessionEventFeatureStep = "FACE" SessionEventFeatureStepLiveness SessionEventFeatureStep = "LIVENESS" SessionEventFeatureStepFaceMatch SessionEventFeatureStep = "FACE_MATCH" SessionEventFeatureStepIPAnalysis SessionEventFeatureStep = "IP_ANALYSIS" SessionEventFeatureStepAgeEstimation SessionEventFeatureStep = "AGE_ESTIMATION" SessionEventFeatureStepProofOfAddress SessionEventFeatureStep = "PROOF_OF_ADDRESS" SessionEventFeatureStepPhoneVerification SessionEventFeatureStep = "PHONE_VERIFICATION" SessionEventFeatureStepEmailVerification SessionEventFeatureStep = "EMAIL_VERIFICATION" SessionEventFeatureStepFaceSearch SessionEventFeatureStep = "FACE_SEARCH" SessionEventFeatureStepDatabaseValidation SessionEventFeatureStep = "DATABASE_VALIDATION" SessionEventFeatureStepQuestionnaire SessionEventFeatureStep = "QUESTIONNAIRE" SessionEventFeatureStepKYBRegistry SessionEventFeatureStep = "KYB_REGISTRY" SessionEventFeatureStepKYBDocuments SessionEventFeatureStep = "KYB_DOCUMENTS" SessionEventFeatureStepKYBKeyPeople SessionEventFeatureStep = "KYB_KEY_PEOPLE" SessionEventFeatureStepDocumentAi SessionEventFeatureStep = "DOCUMENT_AI" SessionEventFeatureStepGeolocation SessionEventFeatureStep = "GEOLOCATION" )
Known values of SessionEventFeatureStep.
type SessionImportError ¶
type SessionImportError struct {
UUID string `json:"uuid"`
RowNumber int64 `json:"row_number"`
ExternalID string `json:"external_id"`
Error string `json:"error"`
RawRow map[string]any `json:"raw_row"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionImportError is a response object.
func (*SessionImportError) UnmarshalJSON ¶
func (r *SessionImportError) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionImportError leniently.
type SessionImportJob ¶
type SessionImportJob struct {
// Import job id. Use this value to poll progress and fetch row errors.
UUID string `json:"uuid"`
Status SessionImportJobStatus `json:"status"`
ImportType SessionImportJobImportType `json:"import_type"`
SourceFormat SessionImportJobSourceFormat `json:"source_format"`
SourceFilename string `json:"source_filename"`
TotalRows int64 `json:"total_rows"`
ProcessedRows int64 `json:"processed_rows"`
CheckpointRow int64 `json:"checkpoint_row"`
CreatedCount int64 `json:"created_count"`
UpdatedCount int64 `json:"updated_count"`
SkippedCount int64 `json:"skipped_count"`
FailedCount int64 `json:"failed_count"`
TotalMediaBytes int64 `json:"total_media_bytes"`
LastError string `json:"last_error"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
StartedAt time.Time `json:"started_at"`
CompletedAt time.Time `json:"completed_at"`
// The job's state as the console shows it; `errors` is a completed job with
// rejected rows.
State SessionImportJobState `json:"state"`
Source SessionImportJobSource `json:"source"`
// Migration source; empty for a file or API import.
Provider string `json:"provider"`
ProviderOptions map[string]any `json:"provider_options"`
// The first characters of the key the migration holds. The key itself is never
// returned.
CredentialHint string `json:"credential_hint"`
CredentialsExpiresAt time.Time `json:"credentials_expires_at"`
// When a job paused by the provider's rate limit resumes by itself.
ResumesAt time.Time `json:"resumes_at"`
StatusMapping map[string]string `json:"status_mapping"`
IsDryRun bool `json:"is_dry_run"`
// What a dry run found: `total`, `by_status`, `already_in_didit`,
// `same_person`, `not_finished`, `failed`, `unmapped_statuses`.
DryRunSummary map[string]any `json:"dry_run_summary"`
FaceTemplatesEnabled bool `json:"face_templates_enabled"`
LawfulBasisConfirmedAt time.Time `json:"lawful_basis_confirmed_at"`
NotFinishedCount int64 `json:"not_finished_count"`
SamePersonCount int64 `json:"same_person_count"`
FaceTemplatesCount int64 `json:"face_templates_count"`
FaceDuplicatesCount int64 `json:"face_duplicates_count"`
FaceBlocklistHitsCount int64 `json:"face_blocklist_hits_count"`
CreatedByName string `json:"created_by_name"`
CreatedByEmail string `json:"created_by_email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionImportJob is a response object.
func (*SessionImportJob) UnmarshalJSON ¶
func (r *SessionImportJob) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionImportJob leniently.
type SessionImportJobImportType ¶
type SessionImportJobImportType string
SessionImportJobImportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionImportJobImportTypeUserVerification SessionImportJobImportType = "user_verification" SessionImportJobImportTypeBusinessVerification SessionImportJobImportType = "business_verification" SessionImportJobImportTypeStatusRules SessionImportJobImportType = "status_rules" SessionImportJobImportTypeTransactions SessionImportJobImportType = "transactions" )
Known values of SessionImportJobImportType.
type SessionImportJobSource ¶
type SessionImportJobSource string
SessionImportJobSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionImportJobSourceFile SessionImportJobSource = "file" SessionImportJobSourceAPI SessionImportJobSource = "api" SessionImportJobSourceProvider SessionImportJobSource = "provider" )
Known values of SessionImportJobSource.
type SessionImportJobSourceFormat ¶
type SessionImportJobSourceFormat string
SessionImportJobSourceFormat is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionImportJobSourceFormatCSV SessionImportJobSourceFormat = "csv" SessionImportJobSourceFormatNdjson SessionImportJobSourceFormat = "ndjson" )
Known values of SessionImportJobSourceFormat.
type SessionImportJobState ¶
type SessionImportJobState string
SessionImportJobState: The job's state as the console shows it; `errors` is a completed job with rejected rows.
SessionImportJobState is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionImportJobStateReady SessionImportJobState = "ready" SessionImportJobStateQueued SessionImportJobState = "queued" SessionImportJobStateRunning SessionImportJobState = "running" SessionImportJobStatePaused SessionImportJobState = "paused" SessionImportJobStateCompleted SessionImportJobState = "completed" SessionImportJobStateErrors SessionImportJobState = "errors" SessionImportJobStateFailed SessionImportJobState = "failed" SessionImportJobStateCancelled SessionImportJobState = "cancelled" )
Known values of SessionImportJobState.
type SessionImportJobStatus ¶
type SessionImportJobStatus string
SessionImportJobStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionImportJobStatusPending SessionImportJobStatus = "PENDING" SessionImportJobStatusProcessing SessionImportJobStatus = "PROCESSING" SessionImportJobStatusCompleted SessionImportJobStatus = "COMPLETED" SessionImportJobStatusFailed SessionImportJobStatus = "FAILED" SessionImportJobStatusPaused SessionImportJobStatus = "PAUSED" SessionImportJobStatusCancelled SessionImportJobStatus = "CANCELLED" SessionImportJobStatusReady SessionImportJobStatus = "READY" )
Known values of SessionImportJobStatus.
type SessionSignDocument ¶
type SessionSignDocument struct {
// Title shown to the signer. Defaults to `file_name`.
Title Opt[string] `json:"title"`
// File name, ending in `.pdf` or `.docx`. Required.
FileName string `json:"file_name"`
// The file, base64-encoded. A PDF can have up to 20 MB and 100 pages, without a
// password, scripts or attached files. A Word file (`.docx`) can have up to 20
// MB and is converted to PDF while the request runs, in at most 25 seconds; the
// PDF then has the same limits. Up to 5 Word files per session. A Word file
// with macros, tracked changes, links to external content or embedded objects
// is refused with `signature_document_not_supported`, and one that can't be
// converted returns `signature_document_conversion_failed`, each with a
// `reason`. Required.
ContentBase64 string `json:"content_base64"`
// Optional fields to place on this document, up to 200. Pages and positions
// refer to the PDF, or to the converted PDF for a Word file. Without fields,
// the signer reads the document and agrees to it.
Fields Opt[[]SignatureField] `json:"fields"`
}
SessionSignDocument is a request object.
func (SessionSignDocument) MarshalJSON ¶
func (r SessionSignDocument) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionWebhookDelivery ¶
type SessionWebhookDelivery struct {
// Delivery ID. Use it as `{webhook_uuid}` to get or resend this delivery.
UUID string `json:"uuid"`
// The session the delivery belongs to (the session in the path).
SessionID string `json:"session_id"`
// URL the delivery was sent to.
RequestURL string `json:"request_url"`
// HTTP status your endpoint returned. `null` while the delivery is queued and
// not yet attempted. When no HTTP answer was received Didit records a status of
// its own: `504` when your endpoint did not answer within 5 seconds, `503` for
// a connection failure, `400` when the URL was refused as unsafe (for example a
// private or internal address), and `404` for any other request error. `400` or
// above counts as a failed delivery.
ResponseStatus int64 `json:"response_status"`
// Session status when the event was generated, for example `In Progress`,
// `Approved` or `Declined`.
Status string `json:"status"`
WebhookType WebhookEvent `json:"webhook_type"`
// JSON text (a string) of the request headers Didit sent: `Content-Type`,
// `X-Signature`, `X-Signature-V2`, `X-Signature-Simple`, `X-Timestamp` and
// `User-Agent`. Parse it with a JSON parser. It holds signatures, never the
// signing secret.
RequestHeader string `json:"request_header"`
// JSON text (a string) of the exact payload Didit sent, keys sorted, including
// `event_id` and `timestamp`. Parse it with a JSON parser; see [Payload
// shape](https://docs.didit.me/integration/webhooks#payload-shape). For a
// scoped key without `media: read`, media URLs inside it are `null`; without
// `sessions: write`, session tokens and hosted verification links are `null`. A
// body changed that way no longer matches its signatures. Didit does not record
// the response body your endpoint returned.
RequestBody string `json:"request_body"`
// When the delivery was created.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionWebhookDelivery: One webhook delivery attempt recorded for a verification session, with the exact request headers and body Didit sent.
func (*SessionWebhookDelivery) UnmarshalJSON ¶
func (r *SessionWebhookDelivery) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionWebhookDelivery leniently.
type SessionsAddImagesParams ¶
type SessionsAddImagesParams struct {
// The image or PDF. Allowed extensions: `jpg`, `jpeg`, `png`, `webp`, `tiff`,
// `pdf`. At most 15 MB as uploaded; the file is then compressed and rejected
// with `400` if it is still larger than 2 MB (2,097,152 bytes). Empty files are
// rejected. Required.
File File `json:"-" form:"file"`
// `kyc` adds the file to the ID verification result, `poa` to the Proof of
// Address result. Required.
ModelType SessionsAddImagesParamsModelType `json:"model_type"`
// Password of an encrypted PDF. Without it, or with a wrong one, an encrypted
// PDF returns `400`.
FilePassword Opt[string] `json:"file_password"`
}
SessionsAddImagesParams holds the parameters of Client.Sessions.AddImages.
func (SessionsAddImagesParams) MarshalJSON ¶
func (r SessionsAddImagesParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsAddImagesParamsModelType ¶
type SessionsAddImagesParamsModelType string
SessionsAddImagesParamsModelType: `kyc` adds the file to the ID verification result, `poa` to the Proof of Address result.
SessionsAddImagesParamsModelType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsAddImagesParamsModelTypeKYC SessionsAddImagesParamsModelType = "kyc" SessionsAddImagesParamsModelTypePOA SessionsAddImagesParamsModelType = "poa" )
Known values of SessionsAddImagesParamsModelType.
type SessionsAddImagesResponse ¶
type SessionsAddImagesResponse struct {
// Short-lived presigned links to all extra files of the result named by
// `model_type`, oldest first. Each link is `null` for a scoped API key without
// `media: read`. Read fresh links from the session decision later.
ExtraFiles []string `json:"extra_files"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsAddImagesResponse is a response object.
func (*SessionsAddImagesResponse) UnmarshalJSON ¶
func (r *SessionsAddImagesResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsAddImagesResponse leniently.
type SessionsBatchDeleteParams ¶
type SessionsBatchDeleteParams struct {
// Numeric `session_number` values of the KYC sessions to delete, as digit-only
// strings (JSON numbers are also accepted and coerced). Required unless
// `delete_all` is `true`; an empty list returns `400`. Any non-digit entry
// rejects the whole request with `400` (unless `delete_all` is `true`, in which
// case validation is skipped and the entries are ignored). Numbers that do not
// match a live session in your application are silently skipped.
SessionNumbers Opt[[]string] `json:"session_numbers"`
// When `true`, every remaining KYC session in the calling application is
// deleted and `session_numbers` is ignored, unless you narrow the selection
// with `filter_*` keys. More than 20 matching sessions run as a deletion job
// (`202`) that covers only the sessions created before the request. Defaults to
// `false`. Irreversible; there is no confirmation step.
DeleteAll Opt[bool] `json:"delete_all"`
// Override the application's `face_retention_policy` for this deletion. `true`
// keeps one image-free face biometric template anchored to the session's User
// after the session is deleted; `false` deletes the face embedding with the
// session; omit or `null` to follow the application policy. Ignored for KYB
// sessions and for sessions without a face embedding.
RetainFaceEmbeddings Opt[bool] `json:"retain_face_embeddings"`
// Finite retention duration, in days, for a retained template. Required when a
// template is retained unless the application already sets
// `face_retention_days`. The template's `expires_at` is the earliest of this
// duration, the application's general data-retention window, and
// `face_retention_deadline`.
FaceRetentionDays Opt[int64] `json:"face_retention_days"`
// Optional hard expiry for a retained template. Must be in the future.
FaceRetentionDeadline Opt[time.Time] `json:"face_retention_deadline"`
// The class of instruction you are giving. `operational_session_delete` deletes
// the session and retains a template only when the policy or
// `retain_face_embeddings` says so. `privacy_erasure` purges every retained
// biometric template anchored to the session's User before deleting the
// session, cannot be overridden by the application policy, and cannot be
// combined with `retain_face_embeddings: true` (`400`).
DeletionInstruction Opt[SessionsBatchDeleteParamsDeletionInstruction] `json:"deletion_instruction"`
// Your durable reference for this deletion instruction (for example an
// erasure-ticket id). Recorded on the audit trail and on any retained template.
// Generated by Didit when omitted.
InstructionID Opt[string] `json:"instruction_id"`
// Narrows a `delete_all` to the sessions that match the `status` filter of
// [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterStatus Opt[any] `json:"filter_status"`
// Narrows a `delete_all` to the sessions that match the `vendor_data` filter of
// [List Sessions](/sessions-api/list-sessions), with the same value. One value,
// not a list: an array is joined into one comma-separated text, so several
// values are not matched as alternatives. Ignored without `delete_all`. An
// empty value is ignored and does not narrow the selection.
FilterVendorData Opt[string] `json:"filter_vendor_data"`
// Narrows a `delete_all` to the sessions that match the `search` filter of
// [List Sessions](/sessions-api/list-sessions), with the same value. One value,
// not a list: an array is joined into one comma-separated text, so several
// values are not matched as alternatives. Ignored without `delete_all`. An
// empty value is ignored and does not narrow the selection.
FilterSearch Opt[string] `json:"filter_search"`
// Narrows a `delete_all` to the sessions that match the `workflow_id` filter of
// [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterWorkflowID Opt[any] `json:"filter_workflow_id"`
// Narrows a `delete_all` to the sessions that match the `date_from` filter of
// [List Sessions](/sessions-api/list-sessions), with the same value. One value,
// not a list: an array is joined into one comma-separated value, so several
// values are refused with `400`. Ignored without `delete_all`. An empty value
// is ignored and does not narrow the selection.
FilterDateFrom Opt[string] `json:"filter_date_from"`
// Narrows a `delete_all` to the sessions that match the `date_to` filter of
// [List Sessions](/sessions-api/list-sessions), with the same value. One value,
// not a list: an array is joined into one comma-separated value, so several
// values are refused with `400`. Ignored without `delete_all`. An empty value
// is ignored and does not narrow the selection.
FilterDateTo Opt[string] `json:"filter_date_to"`
// Narrows a `delete_all` to the sessions that match the `country` filter of
// [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterCountry Opt[any] `json:"filter_country"`
// Narrows a `delete_all` to the sessions that match the `document_type` filter
// of [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterDocumentType Opt[any] `json:"filter_document_type"`
// Narrows a `delete_all` to the sessions that match the `document_name` filter
// of [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterDocumentName Opt[any] `json:"filter_document_name"`
// Narrows a `delete_all` to the sessions that match the `region` filter of
// [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterRegion Opt[any] `json:"filter_region"`
// Narrows a `delete_all` to the sessions that match the `didit_internal_id`
// filter of [List Sessions](/sessions-api/list-sessions), with the same value.
// One value, not a list: an array is joined into one comma-separated value, so
// several values are refused with `400`. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterDiditInternalID Opt[string] `json:"filter_didit_internal_id"`
// Narrows a `delete_all` to the sessions that match the `session_type` filter
// of [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterSessionType Opt[any] `json:"filter_session_type"`
// Narrows a `delete_all` to the sessions that match the `api_service` filter of
// [List Sessions](/sessions-api/list-sessions), with the same value. One value,
// not a list: an array is joined into one comma-separated value, so several
// values are refused with `400`. Ignored without `delete_all`. An empty value
// is ignored and does not narrow the selection.
FilterAPIService Opt[string] `json:"filter_api_service"`
// Narrows a `delete_all` to the sessions that match the `screened_full_name`
// filter of [List Sessions](/sessions-api/list-sessions), with the same value.
// One value, not a list: an array is joined into one comma-separated text, so
// several values are not matched as alternatives. Ignored without `delete_all`.
// An empty value is ignored and does not narrow the selection.
FilterScreenedFullName Opt[string] `json:"filter_screened_full_name"`
// Narrows a `delete_all` to the sessions that match the `warning` filter of
// [List Sessions](/sessions-api/list-sessions), with the same values. A
// comma-separated string or an array. Ignored without `delete_all`. An empty
// value is ignored and does not narrow the selection.
FilterWarning Opt[any] `json:"filter_warning"`
// Narrows a `delete_all` to the sessions that match the
// `status_initialized_as_in_review` filter of [List
// Sessions](/sessions-api/list-sessions), with the same values. Ignored without
// `delete_all`. An empty value is ignored and does not narrow the selection.
FilterStatusInitializedAsInReview Opt[bool] `json:"filter_status_initialized_as_in_review"`
// Narrows a `delete_all` to the sessions that match the `is_kyc_to_be_reviewed`
// filter of [List Sessions](/sessions-api/list-sessions), with the same values.
// Ignored without `delete_all`. An empty value is ignored and does not narrow
// the selection.
FilterIsKYCToBeReviewed Opt[bool] `json:"filter_is_kyc_to_be_reviewed"`
// Narrows a `delete_all` to the sessions that match the `euuid` filter of [List
// Sessions](/sessions-api/list-sessions), with the same value. One value, not a
// list: an array is joined into one comma-separated value, so several values
// are refused with `400`. Ignored without `delete_all`. An empty value is
// ignored and does not narrow the selection.
FilterEuuid Opt[string] `json:"filter_euuid"`
// Narrows a `delete_all` to the sessions that match the `organization_name`
// filter of [List Sessions](/sessions-api/list-sessions), with the same values.
// A comma-separated string or an array. With an API key it can only match your
// own organization's name, so it selects all of your sessions or none. Ignored
// without `delete_all`. An empty value is ignored and does not narrow the
// selection.
FilterOrganizationName Opt[any] `json:"filter_organization_name"`
}
SessionsBatchDeleteParams holds the parameters of Client.Sessions.BatchDelete.
func (SessionsBatchDeleteParams) MarshalJSON ¶
func (r SessionsBatchDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsBatchDeleteParamsDeletionInstruction ¶
type SessionsBatchDeleteParamsDeletionInstruction string
SessionsBatchDeleteParamsDeletionInstruction: The class of instruction you are giving. `operational_session_delete` deletes the session and retains a template only when the policy or `retain_face_embeddings` says so. `privacy_erasure` purges every retained biometric template anchored to the session's User before deleting the session, cannot be overridden by the application policy, and cannot be combined with `retain_face_embeddings: true` (`400`).
SessionsBatchDeleteParamsDeletionInstruction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsBatchDeleteParamsDeletionInstructionOperationalSessionDelete SessionsBatchDeleteParamsDeletionInstruction = "operational_session_delete" SessionsBatchDeleteParamsDeletionInstructionPrivacyErasure SessionsBatchDeleteParamsDeletionInstruction = "privacy_erasure" )
Known values of SessionsBatchDeleteParamsDeletionInstruction.
type SessionsBatchDeleteResponse ¶
type SessionsBatchDeleteResponse struct {
Results []SessionsBatchDeleteResponseResults `json:"results"`
// Poll `GET /v3/sessions/delete/{job_id}/` with this id.
JobID string `json:"job_id"`
// `PENDING`: accepted, not started yet. `PROCESSING`: deleting; `processed` and
// `outcomes` are updating. `COMPLETED`: every selected session is accounted
// for. `FAILED`: the job stopped early; see `error`.
Status SessionsBatchDeleteResponseStatus `json:"status"`
// Sessions selected when the deletion was requested.
Total int64 `json:"total"`
// Sessions the job has finished with so far.
Processed int64 `json:"processed"`
// How many sessions ended in each outcome. Every key is always present.
Outcomes SessionsBatchDeleteResponseOutcomes `json:"outcomes"`
// Verifications that the deleted business verifications created, deleted with
// them. Always `0` for a job started by `POST /v3/sessions/delete/`, which
// deletes KYC sessions only.
DeletedChildVerifications int64 `json:"deleted_child_verifications"`
// `null` unless `status` is `FAILED`; then why the deletion stopped. The
// sessions the job had not reached are still in place: repeat the request to
// delete them.
Error string `json:"error"`
// When the deletion was requested.
CreatedAt time.Time `json:"created_at"`
// When the job finished; `null` while it runs.
CompletedAt time.Time `json:"completed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsBatchDeleteResponse is a response object.
func (*SessionsBatchDeleteResponse) UnmarshalJSON ¶
func (r *SessionsBatchDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsBatchDeleteResponse leniently.
type SessionsBatchDeleteResponseOutcomes ¶
type SessionsBatchDeleteResponseOutcomes struct {
// Sessions deleted together with their face embedding.
Deleted int64 `json:"deleted"`
// Sessions deleted that had no face embedding.
None int64 `json:"none"`
// Sessions deleted while one image-free biometric template was retained for
// their User, as the request or the application policy asked.
RetainedWithUser int64 `json:"retained_with_user"`
// Sessions deleted, with their face embedding, because retention was requested
// but they had no linked User.
IneligibleNoVendorUser int64 `json:"ineligible_no_vendor_user"`
// Sessions reported as not deleted. A job retries a group it could not delete
// by itself instead of counting it here.
FailedRetryable int64 `json:"failed_retryable"`
// Selected sessions that were already deleted, for example by another request,
// when the job reached them.
AlreadyDeleted int64 `json:"already_deleted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsBatchDeleteResponseOutcomes: How many sessions ended in each outcome. Every key is always present.
func (*SessionsBatchDeleteResponseOutcomes) UnmarshalJSON ¶
func (r *SessionsBatchDeleteResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsBatchDeleteResponseOutcomes leniently.
type SessionsBatchDeleteResponseResults ¶
type SessionsBatchDeleteResponseResults struct {
// The deleted session.
SessionID string `json:"session_id"`
// The deleted session's number.
SessionNumber int64 `json:"session_number"`
// What happened to the session's face biometric data. `deleted`: the face
// embedding was deleted with the session (default). `retained_with_user`: the
// session is deleted and one image-free biometric template stays anchored to
// the User; see `biometric_template_uuid`. `none`: the session had no face
// embedding (for example a document-only KYC session without a liveness selfie;
// KYB sessions are never selected by this endpoint).
// `ineligible_no_vendor_user`: retention was requested but the session has no
// linked User, so the embedding was deleted with the session.
// `failed_retryable` (batch endpoint only): the group this session was deleted
// with could not be deleted (a storage service, a biometric store, or a
// monitoring provider was unavailable); this session is still in place, repeat
// the request for it.
FaceRetentionOutcome SessionsBatchDeleteResponseResultsFaceRetentionOutcome `json:"face_retention_outcome"`
// Id of the retained biometric template when `face_retention_outcome` is
// `retained_with_user`; `null` otherwise. Manage it through
// `/v3/biometric-templates/{template_uuid}/`.
BiometricTemplateUUID string `json:"biometric_template_uuid"`
// When the retained biometric template is deleted, when
// `face_retention_outcome` is `retained_with_user`; `null` when no template is
// retained.
BiometricTemplateExpiresAt time.Time `json:"biometric_template_expires_at"`
// Always `0` on this endpoint, which deletes KYC sessions only. Deleting a
// Business Verification (KYB) session with `DELETE
// /v3/session/{sessionId}/delete/` reports the verifications it created that
// were deleted with it.
DeletedChildVerifications int64 `json:"deleted_child_verifications"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsBatchDeleteResponseResults is a response object.
func (*SessionsBatchDeleteResponseResults) UnmarshalJSON ¶
func (r *SessionsBatchDeleteResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsBatchDeleteResponseResults leniently.
type SessionsBatchDeleteResponseResultsFaceRetentionOutcome ¶
type SessionsBatchDeleteResponseResultsFaceRetentionOutcome string
SessionsBatchDeleteResponseResultsFaceRetentionOutcome: What happened to the session's face biometric data. `deleted`: the face embedding was deleted with the session (default). `retained_with_user`: the session is deleted and one image-free biometric template stays anchored to the User; see `biometric_template_uuid`. `none`: the session had no face embedding (for example a document-only KYC session without a liveness selfie; KYB sessions are never selected by this endpoint). `ineligible_no_vendor_user`: retention was requested but the session has no linked User, so the embedding was deleted with the session. `failed_retryable` (batch endpoint only): the group this session was deleted with could not be deleted (a storage service, a biometric store, or a monitoring provider was unavailable); this session is still in place, repeat the request for it.
SessionsBatchDeleteResponseResultsFaceRetentionOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsBatchDeleteResponseResultsFaceRetentionOutcomeRetainedWithUser SessionsBatchDeleteResponseResultsFaceRetentionOutcome = "retained_with_user" SessionsBatchDeleteResponseResultsFaceRetentionOutcomeDeleted SessionsBatchDeleteResponseResultsFaceRetentionOutcome = "deleted" SessionsBatchDeleteResponseResultsFaceRetentionOutcomeNone SessionsBatchDeleteResponseResultsFaceRetentionOutcome = "none" SessionsBatchDeleteResponseResultsFaceRetentionOutcomeIneligibleNoVendorUser SessionsBatchDeleteResponseResultsFaceRetentionOutcome = "ineligible_no_vendor_user" SessionsBatchDeleteResponseResultsFaceRetentionOutcomeFailedRetryable SessionsBatchDeleteResponseResultsFaceRetentionOutcome = "failed_retryable" )
Known values of SessionsBatchDeleteResponseResultsFaceRetentionOutcome.
type SessionsBatchDeleteResponseStatus ¶
type SessionsBatchDeleteResponseStatus string
SessionsBatchDeleteResponseStatus: `PENDING`: accepted, not started yet. `PROCESSING`: deleting; `processed` and `outcomes` are updating. `COMPLETED`: every selected session is accounted for. `FAILED`: the job stopped early; see `error`.
SessionsBatchDeleteResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsBatchDeleteResponseStatusPending SessionsBatchDeleteResponseStatus = "PENDING" SessionsBatchDeleteResponseStatusProcessing SessionsBatchDeleteResponseStatus = "PROCESSING" SessionsBatchDeleteResponseStatusCompleted SessionsBatchDeleteResponseStatus = "COMPLETED" SessionsBatchDeleteResponseStatusFailed SessionsBatchDeleteResponseStatus = "FAILED" )
Known values of SessionsBatchDeleteResponseStatus.
type SessionsBulkUpdateAMLHitStatusParams ¶
type SessionsBulkUpdateAMLHitStatusParams struct {
// Non-empty list of hit updates. Required.
HitUpdates []SessionsBulkUpdateAMLHitStatusParamsHitUpdates `json:"hit_updates"`
// Optional graph node ID. Use it (here or as a query parameter) when the
// session has multiple AML checks.
NodeID Opt[string] `json:"node_id"`
// Workflow graph node ID. Required only when the session has multiple AML
// checks (one per node); omit it for single-AML sessions.
NodeIDQuery Opt[string] `json:"-" query:"node_id"`
}
SessionsBulkUpdateAMLHitStatusParams holds the parameters of Client.Sessions.BulkUpdateAMLHitStatus.
func (SessionsBulkUpdateAMLHitStatusParams) MarshalJSON ¶
func (r SessionsBulkUpdateAMLHitStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsBulkUpdateAMLHitStatusParamsHitUpdates ¶
type SessionsBulkUpdateAMLHitStatusParamsHitUpdates struct {
// Required.
HitID string `json:"hit_id"`
// Required.
ReviewStatus SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus `json:"review_status"`
}
SessionsBulkUpdateAMLHitStatusParamsHitUpdates is a request object.
func (SessionsBulkUpdateAMLHitStatusParamsHitUpdates) MarshalJSON ¶
func (r SessionsBulkUpdateAMLHitStatusParamsHitUpdates) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus ¶
type SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus string
SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatusUnreviewed SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus = "Unreviewed" SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatusConfirmedMatch SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus = "Confirmed Match" SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatusFalsePositive SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus = "False Positive" SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatusInconclusive SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus = "Inconclusive" )
Known values of SessionsBulkUpdateAMLHitStatusParamsHitUpdatesReviewStatus.
type SessionsBulkUpdateAMLHitStatusResponse ¶
type SessionsBulkUpdateAMLHitStatusResponse struct {
// `Updated {n} hit(s) successfully`, where `n` is the number of entries in
// `hit_updates`.
Message string `json:"message"`
// The `hit_id` of every entry in `hit_updates`, in request order, including
// hits whose status did not change.
UpdatedHits []string `json:"updated_hits"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsBulkUpdateAMLHitStatusResponse is a response object.
func (*SessionsBulkUpdateAMLHitStatusResponse) UnmarshalJSON ¶
func (r *SessionsBulkUpdateAMLHitStatusResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsBulkUpdateAMLHitStatusResponse leniently.
type SessionsCreateParams ¶
type SessionsCreateParams struct {
// Stable identifier of the workflow that defines which verification steps the
// session will run. Workflows are created and managed in the
// [Workflows](/console/workflows) page of the Console. The `workflow_id` also
// implicitly selects whether the session is KYC or KYB. Required.
WorkflowID string `json:"workflow_id"`
// A unique identifier for the user being verified, such as a UUID, email, or
// internal user ID. This field is used for: (1) **User grouping** - sessions
// with the same vendor_data are linked to the same user profile in the Users
// tab. (2) **Cross-session duplicate detection** - when checking for duplicated
// faces, documents, phone numbers, emails, IP addresses, or device
// fingerprints, sessions with the same vendor_data are treated as the same user
// and excluded from matches. Without vendor_data, every session is treated as a
// unique user and all potential duplicates are surfaced. We strongly recommend
// always providing a vendor_data to reduce noise in duplicate detection.
VendorData Opt[string] `json:"vendor_data"`
// URL to redirect the user to after verification completes. Didit automatically
// appends `verificationSessionId` and `status` (Approved, Declined, In Review)
// as query parameters. Custom URL schemes (e.g. `myapp://`) are supported for
// mobile callbacks. If omitted, the workflow's default `callback_url` is used.
// When the application has allowed domains (`allowed_domains` on `PATCH
// /v3/webhook/`), an `http` or `https` callback must be on one of those origins
// (same scheme, host and port), otherwise the request fails with 400 on
// `callback`: `callback must be on one of the application's allowed domains:
// https://app.example.com`. Custom URL schemes are always accepted.
Callback Opt[string] `json:"callback"`
// Determines which device should handle the redirect to the provided callback
// URL. Use `initiator` to redirect only the device that started the flow,
// `completer` for the device that finishes it, or `both` to allow either device
// to trigger the callback. If you ever notice the callback not triggering
// reliably, we recommend setting this value to `both`.
CallbackMethod Opt[SessionsCreateParamsCallbackMethod] `json:"callback_method"`
// Arbitrary JSON stored with the session and echoed back in the response and
// webhooks. Any JSON value is accepted (object, string, number, array), but a
// JSON object of key/value pairs is recommended. Not shown to the end user. Use
// it to pass your own correlation ids, A/B variants, or business context.
Metadata Opt[any] `json:"metadata"`
// Language code (ISO 639-1) for the verification process interface. Controls
// the language displayed to the end user during verification. If not provided,
// the browser's language will be automatically detected and used. Check all the
// supported languages [here](/integration/supported-languages).
Language Opt[SessionsCreateParamsLanguage] `json:"language"`
// User contact information that can be used for notifications, prefilling
// verification forms, and phone verification. This includes email address,
// preferred language for communications, and phone number.
ContactDetails Opt[SessionsCreateParamsContactDetails] `json:"contact_details"`
// Expected user details used to cross-validate against the data extracted from
// the user's ID document, Proof of Address, and other verification steps.
// Mismatches are surfaced as warnings on the decision; some fields (e.g.
// `id_country`, `expected_document_types`) also alter the user-facing flow. For
// Business Verification (KYB) workflows only the business fields
// (`company_name`, `registry_country`, `registration_number`) are used - they
// pre-fill the company registry search for the user - and all person-level
// fields are ignored.
ExpectedDetails Opt[SessionsCreateParamsExpectedDetails] `json:"expected_details"`
// Base64-encoded portrait image of the end user's face (max 2MB; JPEG, PNG,
// WebP, or TIFF). Used as the reference image to match against the liveness
// capture when the workflow is a `Biometric Authentication` workflow with Face
// Match enabled, or any graph workflow where Face Match runs before ID
// Verification (OCR). Optional when the `vendor_data` user already has a stored
// face image: Didit reuses it automatically, resolved in priority order:
// approved liveness face, ePassport chip photo, ID document portrait, manually
// enrolled profile face (only faces from approved sessions or faces you
// enrolled yourself are reused). When provided, `portrait_image` always takes
// precedence over the stored face. If omitted and no stored face exists (or
// `vendor_data` is not sent), session creation fails with `400`. Ignored for
// other workflow types.
PortraitImage Opt[string] `json:"portrait_image"`
// Sandbox-only scenario slug. Only accepted when the API key belongs to a
// sandbox-mode application; rejected on live applications. When set, the create
// flow expands the scenario's bundled magic values onto the session's input
// fields (contact_details, expected_details) so the mocked providers reproduce
// the scenario's outcome through the real workflow pipeline. See the scenario
// catalog at GET /v1/sandbox/scenarios/ or [Sandbox & Test
// Data](/integration/sandbox-testing). You can also arm (or re-arm) a scenario
// after create via POST /v3/session/{sessionId}/sandbox/arm/, as long as the
// session is still `Not Started`. For non-doc lookup, use
// `lookup_partial_match`, `lookup_no_match`, or `lookup_provider_error` to test
// the configured attempt budget and fallback. For identity wallets, use
// `wallet_cancelled`, `wallet_timeout`, or `wallet_provider_error`; `approve`
// simulates a verified wallet. All catalog wallets can be tested in sandbox,
// including schemes unavailable on live applications. Simulated attempts are
// not charged.
SandboxScenario Opt[string] `json:"sandbox_scenario"`
// Electronic Signature input for this session. `documents` are the documents to
// sign, for a workflow whose Electronic Signature step takes documents from the
// session (`signature_documents_source` `session` or `both`): up to 20
// documents and 50 MB in total. `field_values` fills the fields whose `prefill`
// is `api.<key>`, on workflow and session documents alike. Creating a session
// again for the same `workflow_id` and `vendor_data` returns the pending
// session; if that call sends `sign`, its documents, fields and values must be
// identical to the first ones, and anything different returns `400` with
// `{"sign": "signature_document_changed"}`. See [Electronic signature
// documents](/sessions-api/create-session#electronic-signature-documents).
Sign Opt[SessionsCreateParamsSign] `json:"sign"`
}
SessionsCreateParams holds the parameters of Client.Sessions.Create.
func (SessionsCreateParams) MarshalJSON ¶
func (r SessionsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsCreateParamsCallbackMethod ¶
type SessionsCreateParamsCallbackMethod string
SessionsCreateParamsCallbackMethod: Determines which device should handle the redirect to the provided callback URL. Use `initiator` to redirect only the device that started the flow, `completer` for the device that finishes it, or `both` to allow either device to trigger the callback. If you ever notice the callback not triggering reliably, we recommend setting this value to `both`.
SessionsCreateParamsCallbackMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateParamsCallbackMethodInitiator SessionsCreateParamsCallbackMethod = "initiator" SessionsCreateParamsCallbackMethodCompleter SessionsCreateParamsCallbackMethod = "completer" SessionsCreateParamsCallbackMethodBoth SessionsCreateParamsCallbackMethod = "both" )
Known values of SessionsCreateParamsCallbackMethod.
type SessionsCreateParamsContactDetails ¶
type SessionsCreateParamsContactDetails struct {
// Email address of the user (e.g., "john.doe@example.com") that will be used
// during the [Email Verification](/core-technology/email-verification/overview)
// step. If not provided, the user must provide it during the verification flow.
Email Opt[string] `json:"email"`
// If true and an email is provided, Didit sends the initial "Verify your
// identity" email asynchronously when the User Verification (KYC) or Business
// Verification (KYB) session is created. Didit also sends verification status
// notifications for sessions requiring manual review to the provided email
// address (e.g., from 'In Review' to 'Approved' or 'Declined'). This helps
// users return to your application once their verification is complete. If you
// have white-label activated for the session, the email sent will be
// white-labeled.
SendNotificationEmails Opt[bool] `json:"send_notification_emails"`
// Language code (ISO 639-1) for email notifications. Controls the language of
// all email communications (e.g., "en", "es", "fr"). There is no stored default
// - when omitted, the verification invite email simply falls back to English
// (`en`) at send time. The enum below is a snapshot; the live source of truth
// for accepted values is the [supported
// languages](/integration/supported-languages) doc - always consult it before
// relying on a specific code.
EmailLang Opt[SessionsCreateParamsContactDetailsEmailLang] `json:"email_lang"`
// Phone number in E.164 format (e.g., "+14155552671") that will be used during
// the [Phone Verification](/core-technology/phone-verification/overview) step.
// If not provided, the user must provide it during the verification flow.
// Ignored for Business Verification (KYB) workflows. **Important:** This phone
// number is only enforced if it is a valid E.164 phone number. If the provided
// number is invalid or cannot be parsed, it will be ignored and the user will
// be able to input any valid phone number during the Phone Verification step.
Phone Opt[string] `json:"phone"`
}
SessionsCreateParamsContactDetails: User contact information that can be used for notifications, prefilling verification forms, and phone verification. This includes email address, preferred language for communications, and phone number.
func (SessionsCreateParamsContactDetails) MarshalJSON ¶
func (r SessionsCreateParamsContactDetails) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsCreateParamsContactDetailsEmailLang ¶
type SessionsCreateParamsContactDetailsEmailLang string
SessionsCreateParamsContactDetailsEmailLang: Language code (ISO 639-1) for email notifications. Controls the language of all email communications (e.g., "en", "es", "fr"). There is no stored default - when omitted, the verification invite email simply falls back to English (`en`) at send time. The enum below is a snapshot; the live source of truth for accepted values is the [supported languages](/integration/supported-languages) doc - always consult it before relying on a specific code.
SessionsCreateParamsContactDetailsEmailLang is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateParamsContactDetailsEmailLangEn SessionsCreateParamsContactDetailsEmailLang = "en" SessionsCreateParamsContactDetailsEmailLangAr SessionsCreateParamsContactDetailsEmailLang = "ar" SessionsCreateParamsContactDetailsEmailLangBg SessionsCreateParamsContactDetailsEmailLang = "bg" SessionsCreateParamsContactDetailsEmailLangBn SessionsCreateParamsContactDetailsEmailLang = "bn" SessionsCreateParamsContactDetailsEmailLangBs SessionsCreateParamsContactDetailsEmailLang = "bs" SessionsCreateParamsContactDetailsEmailLangCa SessionsCreateParamsContactDetailsEmailLang = "ca" SessionsCreateParamsContactDetailsEmailLangCnr SessionsCreateParamsContactDetailsEmailLang = "cnr" SessionsCreateParamsContactDetailsEmailLangCs SessionsCreateParamsContactDetailsEmailLang = "cs" SessionsCreateParamsContactDetailsEmailLangDa SessionsCreateParamsContactDetailsEmailLang = "da" SessionsCreateParamsContactDetailsEmailLangDe SessionsCreateParamsContactDetailsEmailLang = "de" SessionsCreateParamsContactDetailsEmailLangEl SessionsCreateParamsContactDetailsEmailLang = "el" SessionsCreateParamsContactDetailsEmailLangEs SessionsCreateParamsContactDetailsEmailLang = "es" SessionsCreateParamsContactDetailsEmailLangEt SessionsCreateParamsContactDetailsEmailLang = "et" SessionsCreateParamsContactDetailsEmailLangFa SessionsCreateParamsContactDetailsEmailLang = "fa" SessionsCreateParamsContactDetailsEmailLangFi SessionsCreateParamsContactDetailsEmailLang = "fi" SessionsCreateParamsContactDetailsEmailLangFr SessionsCreateParamsContactDetailsEmailLang = "fr" SessionsCreateParamsContactDetailsEmailLangHe SessionsCreateParamsContactDetailsEmailLang = "he" SessionsCreateParamsContactDetailsEmailLangHi SessionsCreateParamsContactDetailsEmailLang = "hi" SessionsCreateParamsContactDetailsEmailLangHr SessionsCreateParamsContactDetailsEmailLang = "hr" SessionsCreateParamsContactDetailsEmailLangHu SessionsCreateParamsContactDetailsEmailLang = "hu" SessionsCreateParamsContactDetailsEmailLangHy SessionsCreateParamsContactDetailsEmailLang = "hy" SessionsCreateParamsContactDetailsEmailLangID SessionsCreateParamsContactDetailsEmailLang = "id" SessionsCreateParamsContactDetailsEmailLangIt SessionsCreateParamsContactDetailsEmailLang = "it" SessionsCreateParamsContactDetailsEmailLangJa SessionsCreateParamsContactDetailsEmailLang = "ja" SessionsCreateParamsContactDetailsEmailLangKa SessionsCreateParamsContactDetailsEmailLang = "ka" SessionsCreateParamsContactDetailsEmailLangKk SessionsCreateParamsContactDetailsEmailLang = "kk" SessionsCreateParamsContactDetailsEmailLangKo SessionsCreateParamsContactDetailsEmailLang = "ko" SessionsCreateParamsContactDetailsEmailLangKy SessionsCreateParamsContactDetailsEmailLang = "ky" SessionsCreateParamsContactDetailsEmailLangLt SessionsCreateParamsContactDetailsEmailLang = "lt" SessionsCreateParamsContactDetailsEmailLangLv SessionsCreateParamsContactDetailsEmailLang = "lv" SessionsCreateParamsContactDetailsEmailLangMk SessionsCreateParamsContactDetailsEmailLang = "mk" SessionsCreateParamsContactDetailsEmailLangMn SessionsCreateParamsContactDetailsEmailLang = "mn" SessionsCreateParamsContactDetailsEmailLangMs SessionsCreateParamsContactDetailsEmailLang = "ms" SessionsCreateParamsContactDetailsEmailLangNl SessionsCreateParamsContactDetailsEmailLang = "nl" SessionsCreateParamsContactDetailsEmailLangNo SessionsCreateParamsContactDetailsEmailLang = "no" SessionsCreateParamsContactDetailsEmailLangPl SessionsCreateParamsContactDetailsEmailLang = "pl" SessionsCreateParamsContactDetailsEmailLangPtBr SessionsCreateParamsContactDetailsEmailLang = "pt-BR" SessionsCreateParamsContactDetailsEmailLangPt SessionsCreateParamsContactDetailsEmailLang = "pt" SessionsCreateParamsContactDetailsEmailLangRo SessionsCreateParamsContactDetailsEmailLang = "ro" SessionsCreateParamsContactDetailsEmailLangRu SessionsCreateParamsContactDetailsEmailLang = "ru" SessionsCreateParamsContactDetailsEmailLangSk SessionsCreateParamsContactDetailsEmailLang = "sk" SessionsCreateParamsContactDetailsEmailLangSl SessionsCreateParamsContactDetailsEmailLang = "sl" SessionsCreateParamsContactDetailsEmailLangSo SessionsCreateParamsContactDetailsEmailLang = "so" SessionsCreateParamsContactDetailsEmailLangSq SessionsCreateParamsContactDetailsEmailLang = "sq" SessionsCreateParamsContactDetailsEmailLangSr SessionsCreateParamsContactDetailsEmailLang = "sr" SessionsCreateParamsContactDetailsEmailLangSv SessionsCreateParamsContactDetailsEmailLang = "sv" SessionsCreateParamsContactDetailsEmailLangTh SessionsCreateParamsContactDetailsEmailLang = "th" SessionsCreateParamsContactDetailsEmailLangTr SessionsCreateParamsContactDetailsEmailLang = "tr" SessionsCreateParamsContactDetailsEmailLangUk SessionsCreateParamsContactDetailsEmailLang = "uk" SessionsCreateParamsContactDetailsEmailLangUz SessionsCreateParamsContactDetailsEmailLang = "uz" SessionsCreateParamsContactDetailsEmailLangVi SessionsCreateParamsContactDetailsEmailLang = "vi" SessionsCreateParamsContactDetailsEmailLangZhCn SessionsCreateParamsContactDetailsEmailLang = "zh-CN" SessionsCreateParamsContactDetailsEmailLangZhTw SessionsCreateParamsContactDetailsEmailLang = "zh-TW" SessionsCreateParamsContactDetailsEmailLangZh SessionsCreateParamsContactDetailsEmailLang = "zh" )
Known values of SessionsCreateParamsContactDetailsEmailLang.
type SessionsCreateParamsExpectedDetails ¶
type SessionsCreateParamsExpectedDetails struct {
// User's first name. For example, `John`. The matching uses fuzzy comparison,
// and you can tune the strictness by configuring the name match score threshold
// in the Console for both ID Document and Proof of Address workflows.
FirstName Opt[string] `json:"first_name"`
// User's last name. For example, `Doe`. The matching uses fuzzy comparison, and
// you can tune the strictness by configuring the name match score threshold in
// the Console for both ID Document and Proof of Address workflows.
LastName Opt[string] `json:"last_name"`
// User's date of birth with format: YYYY-MM-DD. For example, `1990-05-15`.
DateOfBirth Opt[string] `json:"date_of_birth"`
// User's gender. Must be either 'M', 'F', or null.
Gender Opt[SessionsCreateParamsExpectedDetailsGender] `json:"gender"`
// ISO 3166-1 alpha-3 country code representing the applicant's country of
// origin. For example, `USA`. See the [full list of supported country
// codes](https://docs.didit.me/core-technology/id-verification/supported-documents-id-verification#supported-documents-by-country).
Nationality Opt[string] `json:"nationality"`
// ISO 3166-1 alpha-3 country code used as a fallback for both ID Verification
// and Proof of Address country-mismatch checks. Required when `address` is
// provided and neither `id_country` nor `poa_country` is set.
Country Opt[string] `json:"country"`
// ISO 3166-1 alpha-3 country code representing the expected country of the
// applicant's ID document, which may differ from nationality. For example,
// `GBR`. Takes priority over `country` for ID verification country mismatch
// checks. See the [full list of supported country
// codes](https://docs.didit.me/core-technology/id-verification/supported-documents-id-verification#supported-documents-by-country).
IDCountry Opt[string] `json:"id_country"`
// ISO 3166-1 alpha-3 country code representing the expected country of the
// Proof of Address document. For example, `USA`. Takes priority over `country`
// for POA country mismatch checks. See the [full list of supported country
// codes](https://docs.didit.me/core-technology/id-verification/supported-documents-id-verification#supported-documents-by-country).
POACountry Opt[string] `json:"poa_country"`
// The address in a human readable format, including as much information as
// possible. For example, `123 Main St, San Francisco, CA 94105, USA`. When
// provided, you must also pass `country` or `poa_country`, otherwise the
// request fails with `400`.
Address Opt[string] `json:"address"`
// The user's document number, personal number, or tax number. For example,
// `123456789`.
IdentificationNumber Opt[string] `json:"identification_number"`
// Expected IP address for the session, in IPv4 or IPv6 format. If the actual IP
// address differs from this value, a warning will be logged. For example,
// `192.168.1.100` or `2001:db8::1`.
IPAddress Opt[string] `json:"ip_address"`
// Restricts the document types the user can present during the ID verification
// (OCR) step. When set, the document selection screen only shows the requested
// types and the returned `documents_allowed` is filtered accordingly. Values
// are case-insensitive and deduplicated; unknown values are rejected with
// `400`. Allowed codes: `P` (passport), `ID` (national ID), `DL` (driver's
// license), `RP` (residence permit), `HIC` (health insurance card), `TC` (tax
// card), `SSC` (social security card).
ExpectedDocumentTypes Opt[[]SessionsCreateParamsExpectedDetailsExpectedDocumentTypes] `json:"expected_document_types"`
// Expected legal name of the business being verified. For example, `Tesco PLC`.
// Pre-fills the company-name field of the registry search in Business
// Verification (KYB) workflows; when `registration_number` is also provided,
// the registry lookup combines both identifiers. Ignored for KYC workflows.
CompanyName Opt[string] `json:"company_name"`
// ISO 3166-1 alpha-2 code of the country whose company registry the business is
// registered in. For example, `GB`. Where company registries operate at state
// or province level, append the ISO 3166-2 subdivision code as `XX-YY`: `US-CA`
// targets the California registry. Same format as `country_code` on the [KYB
// Registry Search
// API](https://docs.didit.me/standalone-apis/kyb-registry-search). Pre-selects
// the registry country in Business Verification (KYB) workflows; ignored for
// KYC workflows.
RegistryCountry Opt[string] `json:"registry_country"`
// Expected registration number of the business in the company registry. For
// example, `00445790`. Pre-fills the registration-number field of the registry
// search in Business Verification (KYB) workflows; when `company_name` is also
// provided, the registry lookup combines both identifiers. Ignored for KYC
// workflows.
RegistrationNumber Opt[string] `json:"registration_number"`
}
SessionsCreateParamsExpectedDetails: Expected user details used to cross-validate against the data extracted from the user's ID document, Proof of Address, and other verification steps. Mismatches are surfaced as warnings on the decision; some fields (e.g. `id_country`, `expected_document_types`) also alter the user-facing flow. For Business Verification (KYB) workflows only the business fields (`company_name`, `registry_country`, `registration_number`) are used - they pre-fill the company registry search for the user - and all person-level fields are ignored.
func (SessionsCreateParamsExpectedDetails) MarshalJSON ¶
func (r SessionsCreateParamsExpectedDetails) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsCreateParamsExpectedDetailsExpectedDocumentTypes ¶
type SessionsCreateParamsExpectedDetailsExpectedDocumentTypes string
SessionsCreateParamsExpectedDetailsExpectedDocumentTypes is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateParamsExpectedDetailsExpectedDocumentTypesP SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "P" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesID SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "ID" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesDl SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "DL" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesRp SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "RP" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesHic SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "HIC" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesTc SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "TC" SessionsCreateParamsExpectedDetailsExpectedDocumentTypesSsc SessionsCreateParamsExpectedDetailsExpectedDocumentTypes = "SSC" )
Known values of SessionsCreateParamsExpectedDetailsExpectedDocumentTypes.
type SessionsCreateParamsExpectedDetailsGender ¶
type SessionsCreateParamsExpectedDetailsGender string
SessionsCreateParamsExpectedDetailsGender: User's gender. Must be either 'M', 'F', or null.
SessionsCreateParamsExpectedDetailsGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateParamsExpectedDetailsGenderM SessionsCreateParamsExpectedDetailsGender = "M" SessionsCreateParamsExpectedDetailsGenderF SessionsCreateParamsExpectedDetailsGender = "F" )
Known values of SessionsCreateParamsExpectedDetailsGender.
type SessionsCreateParamsLanguage ¶
type SessionsCreateParamsLanguage string
SessionsCreateParamsLanguage: Language code (ISO 639-1) for the verification process interface. Controls the language displayed to the end user during verification. If not provided, the browser's language will be automatically detected and used. Check all the supported languages [here](/integration/supported-languages).
SessionsCreateParamsLanguage is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateParamsLanguageEn SessionsCreateParamsLanguage = "en" SessionsCreateParamsLanguageAr SessionsCreateParamsLanguage = "ar" SessionsCreateParamsLanguageBg SessionsCreateParamsLanguage = "bg" SessionsCreateParamsLanguageBn SessionsCreateParamsLanguage = "bn" SessionsCreateParamsLanguageBs SessionsCreateParamsLanguage = "bs" SessionsCreateParamsLanguageCa SessionsCreateParamsLanguage = "ca" SessionsCreateParamsLanguageCnr SessionsCreateParamsLanguage = "cnr" SessionsCreateParamsLanguageCs SessionsCreateParamsLanguage = "cs" SessionsCreateParamsLanguageDa SessionsCreateParamsLanguage = "da" SessionsCreateParamsLanguageDe SessionsCreateParamsLanguage = "de" SessionsCreateParamsLanguageEl SessionsCreateParamsLanguage = "el" SessionsCreateParamsLanguageEs SessionsCreateParamsLanguage = "es" SessionsCreateParamsLanguageEt SessionsCreateParamsLanguage = "et" SessionsCreateParamsLanguageFa SessionsCreateParamsLanguage = "fa" SessionsCreateParamsLanguageFi SessionsCreateParamsLanguage = "fi" SessionsCreateParamsLanguageFr SessionsCreateParamsLanguage = "fr" SessionsCreateParamsLanguageHe SessionsCreateParamsLanguage = "he" SessionsCreateParamsLanguageHi SessionsCreateParamsLanguage = "hi" SessionsCreateParamsLanguageHr SessionsCreateParamsLanguage = "hr" SessionsCreateParamsLanguageHu SessionsCreateParamsLanguage = "hu" SessionsCreateParamsLanguageHy SessionsCreateParamsLanguage = "hy" SessionsCreateParamsLanguageID SessionsCreateParamsLanguage = "id" SessionsCreateParamsLanguageIt SessionsCreateParamsLanguage = "it" SessionsCreateParamsLanguageJa SessionsCreateParamsLanguage = "ja" SessionsCreateParamsLanguageKa SessionsCreateParamsLanguage = "ka" SessionsCreateParamsLanguageKk SessionsCreateParamsLanguage = "kk" SessionsCreateParamsLanguageKo SessionsCreateParamsLanguage = "ko" SessionsCreateParamsLanguageKy SessionsCreateParamsLanguage = "ky" SessionsCreateParamsLanguageLt SessionsCreateParamsLanguage = "lt" SessionsCreateParamsLanguageLv SessionsCreateParamsLanguage = "lv" SessionsCreateParamsLanguageMk SessionsCreateParamsLanguage = "mk" SessionsCreateParamsLanguageMn SessionsCreateParamsLanguage = "mn" SessionsCreateParamsLanguageMs SessionsCreateParamsLanguage = "ms" SessionsCreateParamsLanguageNl SessionsCreateParamsLanguage = "nl" SessionsCreateParamsLanguageNo SessionsCreateParamsLanguage = "no" SessionsCreateParamsLanguagePl SessionsCreateParamsLanguage = "pl" SessionsCreateParamsLanguagePtBr SessionsCreateParamsLanguage = "pt-BR" SessionsCreateParamsLanguagePt SessionsCreateParamsLanguage = "pt" SessionsCreateParamsLanguageRo SessionsCreateParamsLanguage = "ro" SessionsCreateParamsLanguageRu SessionsCreateParamsLanguage = "ru" SessionsCreateParamsLanguageSk SessionsCreateParamsLanguage = "sk" SessionsCreateParamsLanguageSl SessionsCreateParamsLanguage = "sl" SessionsCreateParamsLanguageSo SessionsCreateParamsLanguage = "so" SessionsCreateParamsLanguageSq SessionsCreateParamsLanguage = "sq" SessionsCreateParamsLanguageSr SessionsCreateParamsLanguage = "sr" SessionsCreateParamsLanguageSv SessionsCreateParamsLanguage = "sv" SessionsCreateParamsLanguageTh SessionsCreateParamsLanguage = "th" SessionsCreateParamsLanguageTr SessionsCreateParamsLanguage = "tr" SessionsCreateParamsLanguageUk SessionsCreateParamsLanguage = "uk" SessionsCreateParamsLanguageUz SessionsCreateParamsLanguage = "uz" SessionsCreateParamsLanguageVi SessionsCreateParamsLanguage = "vi" SessionsCreateParamsLanguageZhCn SessionsCreateParamsLanguage = "zh-CN" SessionsCreateParamsLanguageZhTw SessionsCreateParamsLanguage = "zh-TW" SessionsCreateParamsLanguageZh SessionsCreateParamsLanguage = "zh" )
Known values of SessionsCreateParamsLanguage.
type SessionsCreateParamsSign ¶
type SessionsCreateParamsSign struct {
Documents Opt[[]SessionSignDocument] `json:"documents"`
// Values keyed by the `<key>` of each `api.<key>` pre-fill source: strings of 1
// to 500 characters for `text` and `data` fields, booleans for a `checkbox`.
// `400` with `field_value_unknown` for a key no field uses,
// `field_value_missing` for a required field without its value, and
// `field_value_invalid` for a value that fails its field's validation.
FieldValues Opt[map[string]any] `json:"field_values"`
}
SessionsCreateParamsSign: Electronic Signature input for this session. `documents` are the documents to sign, for a workflow whose Electronic Signature step takes documents from the session (`signature_documents_source` `session` or `both`): up to 20 documents and 50 MB in total. `field_values` fills the fields whose `prefill` is `api.<key>`, on workflow and session documents alike. Creating a session again for the same `workflow_id` and `vendor_data` returns the pending session; if that call sends `sign`, its documents, fields and values must be identical to the first ones, and anything different returns `400` with `{"sign": "signature_document_changed"}`. See [Electronic signature documents](/sessions-api/create-session#electronic-signature-documents).
func (SessionsCreateParamsSign) MarshalJSON ¶
func (r SessionsCreateParamsSign) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsCreateResponse ¶
type SessionsCreateResponse struct {
// Unique identifier of the verification session. Use this id when calling `GET
// /v3/session/{sessionId}/decision/`.
SessionID string `json:"session_id"`
// Sequential, human-friendly number assigned to the session inside your
// application. Useful for support and dashboards.
SessionNumber int64 `json:"session_number"`
// 12-character URL-safe token that authorizes the end user to access the hosted
// verification flow at `url`. Valid until the session expires. Treat it as a
// secret - anyone holding it can open the verification flow for this session.
SessionToken string `json:"session_token"`
// Hosted verification URL to redirect the end user to. The URL embeds the
// `session_token` and, if configured, uses your white-label domain. When the
// request includes `language`, the URL contains a language path segment -
// `https://verify.didit.me/{language}/session/{session_token}` (e.g.
// `/es/session/...`); without `language`, the segment is omitted.
URL string `json:"url"`
// Identifier you passed in the request to link the session to a user or
// business in your own system. Echoed back verbatim. Null when not provided.
VendorData string `json:"vendor_data"`
// Arbitrary JSON payload you stored with the session at creation time. Echoed
// back verbatim - whatever JSON value you sent (object, string, number, array)
// is returned as-is, though a JSON object is recommended. Not shown to the end
// user. Always present in responses; `null` when not provided at creation time.
Metadata any `json:"metadata"`
// Current status of the session. Newly created sessions return `Not Started`.
// If a non-finished session already existed for the same `vendor_data` on the
// workflow's latest published version, the returned status reflects that
// existing session.
Status SessionsCreateResponseStatus `json:"status"`
// Final redirect URL the user is sent to after completing the flow. Didit
// appends `?verificationSessionId={session_id}&status={status}` to this URL.
// Falls back to the workflow's configured callback URL when not provided in the
// request; `null` when neither is set. When the application has allowed domains
// and this URL is a web URL outside them (for example a workflow default set
// before the list changed), the hosted flow does not redirect the user to it.
Callback string `json:"callback"`
// Stable identifier of the workflow this session runs on. Always the workflow's
// stable group identifier - even if you referenced a specific workflow version
// UUID in the request (backward-compatible lookup), the response carries the
// stable `workflow_id`. Use it to correlate the session with the workflow you
// configured in the Console.
WorkflowID string `json:"workflow_id"`
// Version number of the published workflow version the session was pinned to at
// creation. Didit resolves `workflow_id` to the workflow's latest published
// version when the session is created, and the session keeps running that
// version even if the workflow is republished later.
WorkflowVersion int64 `json:"workflow_version"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsCreateResponse is a response object.
func (*SessionsCreateResponse) UnmarshalJSON ¶
func (r *SessionsCreateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsCreateResponse leniently.
type SessionsCreateResponseStatus ¶
type SessionsCreateResponseStatus string
SessionsCreateResponseStatus: Current status of the session. Newly created sessions return `Not Started`. If a non-finished session already existed for the same `vendor_data` on the workflow's latest published version, the returned status reflects that existing session.
SessionsCreateResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsCreateResponseStatusNotStarted SessionsCreateResponseStatus = "Not Started" SessionsCreateResponseStatusInProgress SessionsCreateResponseStatus = "In Progress" SessionsCreateResponseStatusApproved SessionsCreateResponseStatus = "Approved" SessionsCreateResponseStatusDeclined SessionsCreateResponseStatus = "Declined" SessionsCreateResponseStatusInReview SessionsCreateResponseStatus = "In Review" SessionsCreateResponseStatusExpired SessionsCreateResponseStatus = "Expired" SessionsCreateResponseStatusAbandoned SessionsCreateResponseStatus = "Abandoned" SessionsCreateResponseStatusKYCExpired SessionsCreateResponseStatus = "Kyc Expired" SessionsCreateResponseStatusResubmitted SessionsCreateResponseStatus = "Resubmitted" SessionsCreateResponseStatusAwaitingUser SessionsCreateResponseStatus = "Awaiting User" )
Known values of SessionsCreateResponseStatus.
type SessionsDeleteParams ¶
type SessionsDeleteParams struct {
// Override the application's `face_retention_policy` for this deletion. `true`
// keeps one image-free face biometric template anchored to the session's User
// after the session is deleted; `false` deletes the face embedding with the
// session; omit or `null` to follow the application policy. Ignored for KYB
// sessions and for sessions without a face embedding.
RetainFaceEmbeddings Opt[bool] `json:"retain_face_embeddings"`
// Finite retention duration, in days, for a retained template. Required when a
// template is retained unless the application already sets
// `face_retention_days`. The template's `expires_at` is the earliest of this
// duration, the application's general data-retention window, and
// `face_retention_deadline`.
FaceRetentionDays Opt[int64] `json:"face_retention_days"`
// Optional hard expiry for a retained template. Must be in the future.
FaceRetentionDeadline Opt[time.Time] `json:"face_retention_deadline"`
// The class of instruction you are giving. `operational_session_delete` deletes
// the session and retains a template only when the policy or
// `retain_face_embeddings` says so. `privacy_erasure` purges every retained
// biometric template anchored to the session's User before deleting the
// session, cannot be overridden by the application policy, and cannot be
// combined with `retain_face_embeddings: true` (`400`).
DeletionInstruction Opt[SessionsDeleteParamsDeletionInstruction] `json:"deletion_instruction"`
// Your durable reference for this deletion instruction (for example an
// erasure-ticket id). Recorded on the audit trail and on any retained template.
// Generated by Didit when omitted.
InstructionID Opt[string] `json:"instruction_id"`
}
SessionsDeleteParams holds the parameters of Client.Sessions.Delete.
func (SessionsDeleteParams) MarshalJSON ¶
func (r SessionsDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsDeleteParamsDeletionInstruction ¶
type SessionsDeleteParamsDeletionInstruction string
SessionsDeleteParamsDeletionInstruction: The class of instruction you are giving. `operational_session_delete` deletes the session and retains a template only when the policy or `retain_face_embeddings` says so. `privacy_erasure` purges every retained biometric template anchored to the session's User before deleting the session, cannot be overridden by the application policy, and cannot be combined with `retain_face_embeddings: true` (`400`).
SessionsDeleteParamsDeletionInstruction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsDeleteParamsDeletionInstructionOperationalSessionDelete SessionsDeleteParamsDeletionInstruction = "operational_session_delete" SessionsDeleteParamsDeletionInstructionPrivacyErasure SessionsDeleteParamsDeletionInstruction = "privacy_erasure" )
Known values of SessionsDeleteParamsDeletionInstruction.
type SessionsDeleteResponse ¶
type SessionsDeleteResponse struct {
// The deleted session.
SessionID string `json:"session_id"`
// The deleted session's number.
SessionNumber int64 `json:"session_number"`
// What happened to the session's face biometric data. `deleted`: the face
// embedding was deleted with the session (default). `retained_with_user`: the
// session is deleted and one image-free biometric template stays anchored to
// the User; see `biometric_template_uuid`. `none`: the session had no face
// embedding (for example a KYB session, or a KYC session without a liveness
// selfie). `ineligible_no_vendor_user`: retention was requested but the session
// has no linked User, so the embedding was deleted with the session. A
// biometric-store failure is never reported through this field on this
// endpoint: it returns `503` and the session is not deleted.
FaceRetentionOutcome SessionsDeleteResponseFaceRetentionOutcome `json:"face_retention_outcome"`
// Id of the retained biometric template when `face_retention_outcome` is
// `retained_with_user`; `null` otherwise. Manage it through
// `/v3/biometric-templates/{template_uuid}/`.
BiometricTemplateUUID string `json:"biometric_template_uuid"`
// When the retained biometric template is deleted, when
// `face_retention_outcome` is `retained_with_user`; `null` when no template is
// retained.
BiometricTemplateExpiresAt time.Time `json:"biometric_template_expires_at"`
// For a Business Verification (KYB) session: how many verifications it created
// (its key people's KYC sessions and its corporate owners' KYB sessions,
// recursively) were deleted with it. Always `0` for a KYC session.
DeletedChildVerifications int64 `json:"deleted_child_verifications"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsDeleteResponse is a response object.
func (*SessionsDeleteResponse) UnmarshalJSON ¶
func (r *SessionsDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsDeleteResponse leniently.
type SessionsDeleteResponseFaceRetentionOutcome ¶
type SessionsDeleteResponseFaceRetentionOutcome string
SessionsDeleteResponseFaceRetentionOutcome: What happened to the session's face biometric data. `deleted`: the face embedding was deleted with the session (default). `retained_with_user`: the session is deleted and one image-free biometric template stays anchored to the User; see `biometric_template_uuid`. `none`: the session had no face embedding (for example a KYB session, or a KYC session without a liveness selfie). `ineligible_no_vendor_user`: retention was requested but the session has no linked User, so the embedding was deleted with the session. A biometric-store failure is never reported through this field on this endpoint: it returns `503` and the session is not deleted.
SessionsDeleteResponseFaceRetentionOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsDeleteResponseFaceRetentionOutcomeRetainedWithUser SessionsDeleteResponseFaceRetentionOutcome = "retained_with_user" SessionsDeleteResponseFaceRetentionOutcomeDeleted SessionsDeleteResponseFaceRetentionOutcome = "deleted" SessionsDeleteResponseFaceRetentionOutcomeNone SessionsDeleteResponseFaceRetentionOutcome = "none" SessionsDeleteResponseFaceRetentionOutcomeIneligibleNoVendorUser SessionsDeleteResponseFaceRetentionOutcome = "ineligible_no_vendor_user" )
Known values of SessionsDeleteResponseFaceRetentionOutcome.
type SessionsExportAMLScreeningHistoryParams ¶
type SessionsExportAMLScreeningHistoryParams struct {
// Workflow graph node ID of the AML check. Needed only when the session ran
// more than one AML step; without it the most recent AML check is used. An
// unknown node returns `404`.
NodeID Opt[string] `json:"-" query:"node_id"`
}
SessionsExportAMLScreeningHistoryParams holds the parameters of Client.Sessions.ExportAMLScreeningHistory.
func (SessionsExportAMLScreeningHistoryParams) MarshalJSON ¶
func (r SessionsExportAMLScreeningHistoryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportSharedParams ¶
type SessionsImportSharedParams struct {
// /v3/session/{sessionId}/share/`](/sessions-api/share-session). Required.
ShareToken string `json:"share_token"`
// it is forced into `In Review`. Required.
TrustReview bool `json:"trust_review"`
// rejected with `404`. Required.
WorkflowID string `json:"workflow_id"`
VendorData Opt[string] `json:"vendor_data"`
}
SessionsImportSharedParams holds the parameters of Client.Sessions.ImportShared.
func (SessionsImportSharedParams) MarshalJSON ¶
func (r SessionsImportSharedParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsCheckProviderParams ¶
type SessionsImportsCheckProviderParams struct {
// Migration source, from `GET /v3/session/imports/providers/`. Required when
// `source` is `provider`. Required.
Provider SessionsImportsCheckProviderParamsProvider `json:"provider"`
// The provider's read-only key, with the field names `credential_fields` lists.
// Encrypted at rest, never returned, and erased when the import ends. Send it
// as a JSON string in multipart. Required.
Credentials map[string]string `json:"credentials"`
Options Opt[SessionsImportsCheckProviderParamsOptions] `json:"options"`
// For `api_ids` providers: the first record ID of your export.
RecordIDs Opt[[]string] `json:"record_ids"`
}
SessionsImportsCheckProviderParams holds the parameters of Client.Sessions.Imports.CheckProvider.
func (SessionsImportsCheckProviderParams) MarshalJSON ¶
func (r SessionsImportsCheckProviderParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsCheckProviderParamsOptions ¶
type SessionsImportsCheckProviderParamsOptions struct {
// The provider region, one of its `regions` (Onfido: `eu`, `us`, `ca`).
Region Opt[string] `json:"region"`
}
SessionsImportsCheckProviderParamsOptions is a request object.
func (SessionsImportsCheckProviderParamsOptions) MarshalJSON ¶
func (r SessionsImportsCheckProviderParamsOptions) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsCheckProviderParamsProvider ¶
type SessionsImportsCheckProviderParamsProvider string
SessionsImportsCheckProviderParamsProvider: Migration source, from `GET /v3/session/imports/providers/`. Required when `source` is `provider`.
SessionsImportsCheckProviderParamsProvider is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCheckProviderParamsProviderSumsub SessionsImportsCheckProviderParamsProvider = "sumsub" SessionsImportsCheckProviderParamsProviderJumio SessionsImportsCheckProviderParamsProvider = "jumio" SessionsImportsCheckProviderParamsProviderVeriff SessionsImportsCheckProviderParamsProvider = "veriff" SessionsImportsCheckProviderParamsProviderOnfido SessionsImportsCheckProviderParamsProvider = "onfido" SessionsImportsCheckProviderParamsProviderPersona SessionsImportsCheckProviderParamsProvider = "persona" SessionsImportsCheckProviderParamsProviderMetamap SessionsImportsCheckProviderParamsProvider = "metamap" SessionsImportsCheckProviderParamsProviderSocure SessionsImportsCheckProviderParamsProvider = "socure" SessionsImportsCheckProviderParamsProviderIdnow SessionsImportsCheckProviderParamsProvider = "idnow" SessionsImportsCheckProviderParamsProviderShufti SessionsImportsCheckProviderParamsProvider = "shufti" SessionsImportsCheckProviderParamsProviderIdenfy SessionsImportsCheckProviderParamsProvider = "idenfy" SessionsImportsCheckProviderParamsProviderOndato SessionsImportsCheckProviderParamsProvider = "ondato" SessionsImportsCheckProviderParamsProviderTrulioo SessionsImportsCheckProviderParamsProvider = "trulioo" SessionsImportsCheckProviderParamsProviderAu10tix SessionsImportsCheckProviderParamsProvider = "au10tix" SessionsImportsCheckProviderParamsProviderComplycube SessionsImportsCheckProviderParamsProvider = "complycube" SessionsImportsCheckProviderParamsProviderOther SessionsImportsCheckProviderParamsProvider = "other" )
Known values of SessionsImportsCheckProviderParamsProvider.
type SessionsImportsCheckProviderResponse ¶
type SessionsImportsCheckProviderResponse struct {
Ok bool `json:"ok"`
Provider string `json:"provider"`
CredentialHint string `json:"credential_hint"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsImportsCheckProviderResponse is a response object.
func (*SessionsImportsCheckProviderResponse) UnmarshalJSON ¶
func (r *SessionsImportsCheckProviderResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsImportsCheckProviderResponse leniently.
type SessionsImportsCreateParams ¶
type SessionsImportsCreateParams struct {
// What to import: historical User Verification sessions, historical Business
// Verification sessions, workflow custom status rules, or historical
// transaction monitoring records.
ImportType Opt[SessionsImportsCreateParamsImportType] `json:"import_type"`
// Workflow UUID that imported sessions or status rules should be attached to.
// Required for user_verification, business_verification, and status_rules. Omit
// for transactions.
WorkflowID Opt[string] `json:"workflow_id"`
// Optional. Inferred from the URL's file extension when omitted.
SourceFormat Opt[SessionsImportsCreateParamsSourceFormat] `json:"source_format"`
// Alternative to file upload. Must be an HTTPS URL resolving to a public
// address (private/loopback networks are rejected). Mutually exclusive with
// `file`.
SourceFileURL Opt[string] `json:"source_file_url"`
// `provider` makes this a migration from another identity verification
// provider. Omit for a file import.
Source Opt[SessionsImportsCreateParamsSource] `json:"source"`
// Migration source, from `GET /v3/session/imports/providers/`. Required when
// `source` is `provider`.
Provider Opt[SessionsImportsCreateParamsProvider] `json:"provider"`
// The provider's read-only key, with the field names `credential_fields` lists.
// Encrypted at rest, never returned, and erased when the import ends. Send it
// as a JSON string in multipart.
Credentials Opt[map[string]string] `json:"credentials"`
Options Opt[SessionsImportsCreateParamsOptions] `json:"options"`
// Edits to the provider's default status mapping: source status to Didit
// status. `Not Finished` and `Abandoned` are skipped and counted, never
// imported.
StatusMapping Opt[map[string]SessionsImportsCreateParamsStatusMapping] `json:"status_mapping"`
// Count what the migration would import (by status, already in Didit, same
// person, not finished) and write nothing. The job ends `READY`; start it with
// `POST /v3/session/imports/{importId}/start/`.
DryRun Opt[bool] `json:"dry_run"`
// Build face templates from the imported selfies and search them against the
// application's faces and blocklist. Matches are flagged for review only.
// Requires `lawful_basis_confirmed`.
FaceTemplates Opt[bool] `json:"face_templates"`
// Confirms you have a lawful basis to share these selfies with Didit as
// processor.
LawfulBasisConfirmed Opt[bool] `json:"lawful_basis_confirmed"`
// Canonical CSV or NDJSON file. Use NDJSON for large imports. Maximum upload
// size 25 MB (use `source_file_url` for bigger files). Mutually exclusive with
// `source_file_url`.
File Opt[File] `json:"-" form:"file"`
}
SessionsImportsCreateParams holds the parameters of Client.Sessions.Imports.Create.
func (SessionsImportsCreateParams) MarshalJSON ¶
func (r SessionsImportsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsCreateParamsImportType ¶
type SessionsImportsCreateParamsImportType string
SessionsImportsCreateParamsImportType: What to import: historical User Verification sessions, historical Business Verification sessions, workflow custom status rules, or historical transaction monitoring records.
SessionsImportsCreateParamsImportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCreateParamsImportTypeUserVerification SessionsImportsCreateParamsImportType = "user_verification" SessionsImportsCreateParamsImportTypeBusinessVerification SessionsImportsCreateParamsImportType = "business_verification" SessionsImportsCreateParamsImportTypeStatusRules SessionsImportsCreateParamsImportType = "status_rules" SessionsImportsCreateParamsImportTypeTransactions SessionsImportsCreateParamsImportType = "transactions" )
Known values of SessionsImportsCreateParamsImportType.
type SessionsImportsCreateParamsOptions ¶
type SessionsImportsCreateParamsOptions struct {
// The provider region, one of its `regions` (Onfido: `eu`, `us`, `ca`).
Region Opt[string] `json:"region"`
}
SessionsImportsCreateParamsOptions is a request object.
func (SessionsImportsCreateParamsOptions) MarshalJSON ¶
func (r SessionsImportsCreateParamsOptions) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsCreateParamsProvider ¶
type SessionsImportsCreateParamsProvider string
SessionsImportsCreateParamsProvider: Migration source, from `GET /v3/session/imports/providers/`. Required when `source` is `provider`.
SessionsImportsCreateParamsProvider is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCreateParamsProviderSumsub SessionsImportsCreateParamsProvider = "sumsub" SessionsImportsCreateParamsProviderJumio SessionsImportsCreateParamsProvider = "jumio" SessionsImportsCreateParamsProviderVeriff SessionsImportsCreateParamsProvider = "veriff" SessionsImportsCreateParamsProviderOnfido SessionsImportsCreateParamsProvider = "onfido" SessionsImportsCreateParamsProviderPersona SessionsImportsCreateParamsProvider = "persona" SessionsImportsCreateParamsProviderMetamap SessionsImportsCreateParamsProvider = "metamap" SessionsImportsCreateParamsProviderSocure SessionsImportsCreateParamsProvider = "socure" SessionsImportsCreateParamsProviderIdnow SessionsImportsCreateParamsProvider = "idnow" SessionsImportsCreateParamsProviderShufti SessionsImportsCreateParamsProvider = "shufti" SessionsImportsCreateParamsProviderIdenfy SessionsImportsCreateParamsProvider = "idenfy" SessionsImportsCreateParamsProviderOndato SessionsImportsCreateParamsProvider = "ondato" SessionsImportsCreateParamsProviderTrulioo SessionsImportsCreateParamsProvider = "trulioo" SessionsImportsCreateParamsProviderAu10tix SessionsImportsCreateParamsProvider = "au10tix" SessionsImportsCreateParamsProviderComplycube SessionsImportsCreateParamsProvider = "complycube" SessionsImportsCreateParamsProviderOther SessionsImportsCreateParamsProvider = "other" )
Known values of SessionsImportsCreateParamsProvider.
type SessionsImportsCreateParamsSource ¶
type SessionsImportsCreateParamsSource string
SessionsImportsCreateParamsSource: `provider` makes this a migration from another identity verification provider. Omit for a file import.
SessionsImportsCreateParamsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCreateParamsSourceFile SessionsImportsCreateParamsSource = "file" SessionsImportsCreateParamsSourceProvider SessionsImportsCreateParamsSource = "provider" )
Known values of SessionsImportsCreateParamsSource.
type SessionsImportsCreateParamsSourceFormat ¶
type SessionsImportsCreateParamsSourceFormat string
SessionsImportsCreateParamsSourceFormat is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCreateParamsSourceFormatCSV SessionsImportsCreateParamsSourceFormat = "csv" SessionsImportsCreateParamsSourceFormatNdjson SessionsImportsCreateParamsSourceFormat = "ndjson" )
Known values of SessionsImportsCreateParamsSourceFormat.
type SessionsImportsCreateParamsStatusMapping ¶
type SessionsImportsCreateParamsStatusMapping string
SessionsImportsCreateParamsStatusMapping is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsCreateParamsStatusMappingApproved SessionsImportsCreateParamsStatusMapping = "Approved" SessionsImportsCreateParamsStatusMappingDeclined SessionsImportsCreateParamsStatusMapping = "Declined" SessionsImportsCreateParamsStatusMappingInReview SessionsImportsCreateParamsStatusMapping = "In Review" SessionsImportsCreateParamsStatusMappingExpired SessionsImportsCreateParamsStatusMapping = "Expired" SessionsImportsCreateParamsStatusMappingNotFinished SessionsImportsCreateParamsStatusMapping = "Not Finished" SessionsImportsCreateParamsStatusMappingAbandoned SessionsImportsCreateParamsStatusMapping = "Abandoned" )
Known values of SessionsImportsCreateParamsStatusMapping.
type SessionsImportsListActiveJobsResponse ¶
type SessionsImportsListActiveJobsResponse struct {
Results []ImportJobSummary `json:"results"`
Running int64 `json:"running"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsImportsListActiveJobsResponse is a response object.
func (*SessionsImportsListActiveJobsResponse) UnmarshalJSON ¶
func (r *SessionsImportsListActiveJobsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsImportsListActiveJobsResponse leniently.
type SessionsImportsListErrorsParams ¶
type SessionsImportsListErrorsParams struct {
// Page size. Defaults to 50 when omitted.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record to return.
Offset Opt[int64] `json:"-" query:"offset"`
}
SessionsImportsListErrorsParams holds the parameters of Client.Sessions.Imports.ListErrors.
func (SessionsImportsListErrorsParams) MarshalJSON ¶
func (r SessionsImportsListErrorsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsListJobsParams ¶
type SessionsImportsListJobsParams struct {
Scope Opt[SessionsImportsListJobsParamsScope] `json:"-" query:"scope"`
Limit Opt[int64] `json:"-" query:"limit"`
}
SessionsImportsListJobsParams holds the parameters of Client.Sessions.Imports.ListJobs.
func (SessionsImportsListJobsParams) MarshalJSON ¶
func (r SessionsImportsListJobsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsListJobsParamsScope ¶
type SessionsImportsListJobsParamsScope string
SessionsImportsListJobsParamsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsListJobsParamsScopeAll SessionsImportsListJobsParamsScope = "all" SessionsImportsListJobsParamsScopeSessions SessionsImportsListJobsParamsScope = "sessions" SessionsImportsListJobsParamsScopeUsers SessionsImportsListJobsParamsScope = "users" SessionsImportsListJobsParamsScopeBusinesses SessionsImportsListJobsParamsScope = "businesses" )
Known values of SessionsImportsListJobsParamsScope.
type SessionsImportsListJobsResponse ¶
type SessionsImportsListJobsResponse struct {
Results []ImportJobSummary `json:"results"`
Counts SessionsImportsListJobsResponseCounts `json:"counts"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsImportsListJobsResponse is a response object.
func (*SessionsImportsListJobsResponse) UnmarshalJSON ¶
func (r *SessionsImportsListJobsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsImportsListJobsResponse leniently.
type SessionsImportsListJobsResponseCounts ¶
type SessionsImportsListJobsResponseCounts struct {
All int64 `json:"all"`
RunningAndWaiting int64 `json:"running_and_waiting"`
NeedsAttention int64 `json:"needs_attention"`
Done int64 `json:"done"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsImportsListJobsResponseCounts is a response object.
func (*SessionsImportsListJobsResponseCounts) UnmarshalJSON ¶
func (r *SessionsImportsListJobsResponseCounts) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsImportsListJobsResponseCounts leniently.
type SessionsImportsListProvidersResponse ¶
type SessionsImportsListProvidersResponse struct {
Providers []ImportProvider `json:"providers"`
MappingTargets []string `json:"mapping_targets"`
SkippedStatuses []string `json:"skipped_statuses"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsImportsListProvidersResponse is a response object.
func (*SessionsImportsListProvidersResponse) UnmarshalJSON ¶
func (r *SessionsImportsListProvidersResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsImportsListProvidersResponse leniently.
type SessionsImportsRetrieveTemplateParams ¶
type SessionsImportsRetrieveTemplateParams struct {
ImportType Opt[SessionsImportsRetrieveTemplateParamsImportType] `json:"-" query:"import_type"`
}
SessionsImportsRetrieveTemplateParams holds the parameters of Client.Sessions.Imports.RetrieveTemplate.
func (SessionsImportsRetrieveTemplateParams) MarshalJSON ¶
func (r SessionsImportsRetrieveTemplateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsRetrieveTemplateParamsImportType ¶
type SessionsImportsRetrieveTemplateParamsImportType string
SessionsImportsRetrieveTemplateParamsImportType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsRetrieveTemplateParamsImportTypeUserVerification SessionsImportsRetrieveTemplateParamsImportType = "user_verification" SessionsImportsRetrieveTemplateParamsImportTypeBusinessVerification SessionsImportsRetrieveTemplateParamsImportType = "business_verification" SessionsImportsRetrieveTemplateParamsImportTypeStatusRules SessionsImportsRetrieveTemplateParamsImportType = "status_rules" SessionsImportsRetrieveTemplateParamsImportTypeTransactions SessionsImportsRetrieveTemplateParamsImportType = "transactions" )
Known values of SessionsImportsRetrieveTemplateParamsImportType.
type SessionsImportsRetryParams ¶
type SessionsImportsRetryParams struct {
// The provider's read-only key, with the field names `credential_fields` lists.
// Encrypted at rest, never returned, and erased when the import ends. Send it
// as a JSON string in multipart.
Credentials Opt[map[string]string] `json:"credentials"`
// The record IDs or export file again, for `api_ids` and `export_file`
// providers.
File Opt[File] `json:"-" form:"file"`
}
SessionsImportsRetryParams holds the parameters of Client.Sessions.Imports.Retry.
func (SessionsImportsRetryParams) MarshalJSON ¶
func (r SessionsImportsRetryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsService ¶
type SessionsImportsService struct {
// contains filtered or unexported fields
}
SessionsImportsService holds the sessions imports operations. Use it through Client.Sessions.Imports.
func (*SessionsImportsService) Cancel ¶
func (r *SessionsImportsService) Cancel(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
Cancel: Cancel an import job.
Cancel an import. What was imported stays; the uploaded file and the key are erased.
POST /v3/session/imports/{importId}/cancel/
func (*SessionsImportsService) CheckProvider ¶
func (r *SessionsImportsService) CheckProvider(ctx context.Context, params SessionsImportsCheckProviderParams, opts ...option.RequestOption) (*SessionsImportsCheckProviderResponse, error)
CheckProvider: Check a provider key.
Read the provider with your key before creating a migration. Nothing is stored.
POST /v3/session/imports/providers/check/
func (*SessionsImportsService) Create ¶
func (r *SessionsImportsService) Create(ctx context.Context, params SessionsImportsCreateParams, opts ...option.RequestOption) (*SessionImportJob, error)
Create: Create a verification import job.
Create an asynchronous import job for historical User Verification sessions, Business Verification sessions, transaction monitoring records, or workflow custom status rules. Set `source=provider` to migrate from another provider: Didit reads Sumsub, Onfido, Persona and ComplyCube with your read-only key, reads Veriff, iDenfy and MetaMap records by the IDs you upload in `file`, and imports an export file in Didit's format for the other providers. Record IDs are namespaced by provider (`sumsub:<id>`) so a re-run skips everything already in Didit. Imports are disabled by default and must be enabled per organization by Didit.
POST /v3/session/imports/
func (*SessionsImportsService) ListActiveJobs ¶
func (r *SessionsImportsService) ListActiveJobs(ctx context.Context, opts ...option.RequestOption) (*SessionsImportsListActiveJobsResponse, error)
ListActiveJobs: List active import jobs.
What is running or waiting, plus what just ended, for a progress indicator.
GET /v3/import-jobs/active/
func (*SessionsImportsService) ListErrors ¶
func (r *SessionsImportsService) ListErrors(ctx context.Context, importID string, params SessionsImportsListErrorsParams, opts ...option.RequestOption) (*Page[SessionImportError], error)
ListErrors: List verification import row errors.
List row-level errors for a verification import job, ordered by `row_number`. Use this endpoint to produce a corrected retry file containing only failed rows.
It returns one page; ListErrorsAutoPaging iterates over every item of every page.
GET /v3/session/imports/{importId}/errors/
func (*SessionsImportsService) ListErrorsAutoPaging ¶
func (r *SessionsImportsService) ListErrorsAutoPaging(ctx context.Context, importID string, params SessionsImportsListErrorsParams, opts ...option.RequestOption) *PageIterator[SessionImportError]
ListErrorsAutoPaging iterates over every item of every page of ListErrors, fetching pages as needed.
func (*SessionsImportsService) ListJobs ¶
func (r *SessionsImportsService) ListJobs(ctx context.Context, params SessionsImportsListJobsParams, opts ...option.RequestOption) (*SessionsImportsListJobsResponse, error)
ListJobs: List import jobs.
Every import of the application in one shape: verification imports and migrations, people and businesses.
GET /v3/import-jobs/
func (*SessionsImportsService) ListProviders ¶
func (r *SessionsImportsService) ListProviders(ctx context.Context, opts ...option.RequestOption) (*SessionsImportsListProvidersResponse, error)
ListProviders: List migration providers.
The 15 providers you can migrate verifications from: what each needs to connect, whether its API can list records, the permissions its key needs and its default status mapping.
GET /v3/session/imports/providers/
func (*SessionsImportsService) Pause ¶
func (r *SessionsImportsService) Pause(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
Pause: Pause an import job.
Pause a queued or running import.
POST /v3/session/imports/{importId}/pause/
func (*SessionsImportsService) Resume ¶
func (r *SessionsImportsService) Resume(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
Resume: Resume an import job.
Resume an import you paused. A job paused by the provider's rate limit resumes by itself.
POST /v3/session/imports/{importId}/resume/
func (*SessionsImportsService) Retrieve ¶
func (r *SessionsImportsService) Retrieve(ctx context.Context, importID string, opts ...option.RequestOption) (*SessionImportJob, error)
Retrieve: Retrieve a verification import job.
Retrieve import progress counters and terminal status for one job. Poll until `status` is `COMPLETED` or `FAILED`; `failed_count` > 0 means some rows were rejected - list them via the errors endpoint.
GET /v3/session/imports/{importId}/
func (*SessionsImportsService) RetrieveTemplate ¶
func (r *SessionsImportsService) RetrieveTemplate(ctx context.Context, params SessionsImportsRetrieveTemplateParams, opts ...option.RequestOption) (*http.Response, error)
RetrieveTemplate: Download verification import template.
Download the canonical CSV header for verification imports. The column set is determined by `import_type`. The first column of session templates is the idempotency key `external_id`.
The response is a file (text/csv). Read it from the returned response's body and close it.
GET /v3/session/imports/template/
func (*SessionsImportsService) Retry ¶
func (r *SessionsImportsService) Retry(ctx context.Context, importID string, params SessionsImportsRetryParams, opts ...option.RequestOption) (*SessionImportJob, error)
Retry: Retry a migration.
Run a migration that ended again as a new job, with a new key (the old one was erased). It keeps the provider, workflow, region, status mapping and face templates choice; everything already in Didit is skipped.
POST /v3/session/imports/{importId}/retry/
func (*SessionsImportsService) Start ¶
func (r *SessionsImportsService) Start(ctx context.Context, importID string, params SessionsImportsStartParams, opts ...option.RequestOption) (*SessionImportJob, error)
Start: Start a dry run.
Start a migration whose dry run finished (`READY`): the same job imports for real, with the status mapping and face templates choice as sent now.
POST /v3/session/imports/{importId}/start/
type SessionsImportsStartParams ¶
type SessionsImportsStartParams struct {
// Edits to the provider's default status mapping: source status to Didit
// status. `Not Finished` and `Abandoned` are skipped and counted, never
// imported.
StatusMapping Opt[map[string]SessionsImportsStartParamsStatusMapping] `json:"status_mapping"`
// Build face templates from the imported selfies and search them against the
// application's faces and blocklist. Matches are flagged for review only.
// Requires `lawful_basis_confirmed`.
FaceTemplates Opt[bool] `json:"face_templates"`
// Confirms you have a lawful basis to share these selfies with Didit as
// processor.
LawfulBasisConfirmed Opt[bool] `json:"lawful_basis_confirmed"`
}
SessionsImportsStartParams holds the parameters of Client.Sessions.Imports.Start.
func (SessionsImportsStartParams) MarshalJSON ¶
func (r SessionsImportsStartParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsImportsStartParamsStatusMapping ¶
type SessionsImportsStartParamsStatusMapping string
SessionsImportsStartParamsStatusMapping is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsImportsStartParamsStatusMappingApproved SessionsImportsStartParamsStatusMapping = "Approved" SessionsImportsStartParamsStatusMappingDeclined SessionsImportsStartParamsStatusMapping = "Declined" SessionsImportsStartParamsStatusMappingInReview SessionsImportsStartParamsStatusMapping = "In Review" SessionsImportsStartParamsStatusMappingExpired SessionsImportsStartParamsStatusMapping = "Expired" SessionsImportsStartParamsStatusMappingNotFinished SessionsImportsStartParamsStatusMapping = "Not Finished" SessionsImportsStartParamsStatusMappingAbandoned SessionsImportsStartParamsStatusMapping = "Abandoned" )
Known values of SessionsImportsStartParamsStatusMapping.
type SessionsListAMLScreeningHistoryParams ¶
type SessionsListAMLScreeningHistoryParams struct {
// Workflow graph node ID of the AML check. Needed only when the session ran
// more than one AML step; without it the most recent AML check is used. An
// unknown node returns `404`.
NodeID Opt[string] `json:"-" query:"node_id"`
// Maximum number of screening runs per page. Defaults to 50. A value below 1 or
// a non-numeric value falls back to 50; a value above 1,000,000 returns `400`.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of results to skip before the first returned one. Defaults to 0; a
// negative or non-numeric value falls back to 0, a value above 1,000,000
// returns `400`. Prefer following the `next` and `previous` URLs.
Offset Opt[int64] `json:"-" query:"offset"`
// Optional sort override. The default order is `-completed_at`. Pass a result
// field name (for example `completed_at`, `started_at`, `outcome` or `score`)
// to sort ascending, prefix it with `-` to sort descending, and separate
// several fields with commas. Unknown fields are ignored.
Ordering Opt[string] `json:"-" query:"ordering"`
}
SessionsListAMLScreeningHistoryParams holds the parameters of Client.Sessions.ListAMLScreeningHistory.
func (SessionsListAMLScreeningHistoryParams) MarshalJSON ¶
func (r SessionsListAMLScreeningHistoryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsListEventsParams ¶
type SessionsListEventsParams struct {
// Maximum number of events per page. Defaults to 50. A value below 1 or a
// non-numeric value falls back to 50; a value above 1,000,000 returns `400`.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of results to skip before the first returned one. Defaults to 0; a
// negative or non-numeric value falls back to 0, a value above 1,000,000
// returns `400`. Prefer following the `next` and `previous` URLs.
Offset Opt[int64] `json:"-" query:"offset"`
// Optional sort override. The default order is `-sent_at`. Pass a result field
// name (for example `sent_at`, `created_at`, `event_type`, `feature_step` or
// `step`) to sort ascending, prefix it with `-` to sort descending, and
// separate several fields with commas. Unknown fields are ignored.
Ordering Opt[string] `json:"-" query:"ordering"`
}
SessionsListEventsParams holds the parameters of Client.Sessions.ListEvents.
func (SessionsListEventsParams) MarshalJSON ¶
func (r SessionsListEventsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsListFeatureOverridesResponse ¶
type SessionsListFeatureOverridesResponse struct {
SessionID string `json:"session_id"`
// Whether the person is still in the flow, so a new override with
// `defer_until_flow_finishes: true` would wait.
PersonInFlow bool `json:"person_in_flow"`
// When the person last finished the flow. `null` while they are still in it (a
// resubmission included) and when the session closed before they finished
// (abandoned, expired or decided mid-flow).
FlowFinishedAt time.Time `json:"flow_finished_at"`
// Every override of the session, newest first.
Overrides []FeatureStatusOverride `json:"overrides"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListFeatureOverridesResponse is a response object.
func (*SessionsListFeatureOverridesResponse) UnmarshalJSON ¶
func (r *SessionsListFeatureOverridesResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListFeatureOverridesResponse leniently.
type SessionsListParams ¶
type SessionsListParams struct {
// Which kind of sessions to list: `user` (KYC only, default), `business` (KYB
// only), or `all` (both, concatenated - see the description for
// merged-pagination semantics). Matching is case-insensitive (`BUSINESS`
// works); any value other than a case variant of `user`/`business`/`all`
// returns `400`.
SessionKind Opt[SessionsListParamsSessionKind] `json:"-" query:"session_kind"`
// Maximum number of rows per page (per kind when `session_kind=all`). Defaults
// to 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of rows to skip before the first returned row. Defaults to 0. Prefer
// following the `next`/`previous` URLs from the response.
Offset Opt[int64] `json:"-" query:"offset"`
// Comma-separated list of session statuses to include, e.g. `Approved,In
// Review`. Values are case-sensitive; see [Verification
// Statuses](/integration/verification-statuses). Unknown values match nothing.
Status Opt[string] `json:"-" query:"status"`
// Exact-match filter on the `vendor_data` you sent at session creation (your
// own user/business identifier). For partial matches use `search` instead.
VendorData Opt[string] `json:"-" query:"vendor_data"`
// Smart free-text search. A full UUID matches `session_id`; numeric input
// matches session-number prefix, document/personal numbers, phone prefix, or
// `vendor_data`; input containing `@` matches email prefixes; other text
// matches names (accent-insensitive) and `vendor_data`. Free text containing
// digits additionally matches document/personal-number search fields and
// session-number prefixes.
Search Opt[string] `json:"-" query:"search"`
// Comma-separated workflow UUIDs (find them on the Workflows page in the
// Console). Malformed UUIDs in the list are ignored; if none are valid the
// result is empty.
WorkflowID Opt[string] `json:"-" query:"workflow_id"`
// Only sessions created on or after this date (UTC), format `YYYY-MM-DD`.
// Malformed dates return `400`.
DateFrom Opt[string] `json:"-" query:"date_from"`
// Only sessions created up to this date (UTC), format `YYYY-MM-DD`. For KYC
// rows the entire day is included; for KYB rows the comparison is `created_at
// <= date_to` (midnight), so use the next day's date to include a full day of
// KYB sessions.
DateTo Opt[string] `json:"-" query:"date_to"`
// Comma-separated country filter. For KYC rows: ISO 3166-1 alpha-3 codes of the
// ID document's issuing state (e.g. `ESP,USA`), which may differ from
// nationality. For KYB rows: the registry company's country code.
Country Opt[string] `json:"-" query:"country"`
// Comma-separated ID-document type codes verified in the session (KYC rows
// only): `P` (Passport), `ID` (Identity Card), `DL` (Driver's License), `RP`
// (Residence Permit), `SSC` (Social Security Card), `HIC` (Health Insurance
// Card), `WP` (Work Permit), `TC` (Tax Card), `VISA`, `PSC` (Public Service
// Card), `BC` (Birth Certificate), `OTHER`. Note the response field
// `document_type` contains the display name, not the code.
DocumentType Opt[string] `json:"-" query:"document_type"`
// Exact document names; multiple names can be passed comma-separated, but the
// value is only split on commas when it contains more than one ` - ` separator
// (a lone name with an embedded comma is matched whole). Names are as
// recognized by document verification (front or back side), e.g. `Spain - Id
// Card (2021)`. KYC rows only.
DocumentName Opt[string] `json:"-" query:"document_name"`
// Comma-separated document region/state values (for documents issued per
// region, such as US driver's licenses). KYC rows only.
Region Opt[string] `json:"-" query:"region"`
// Filter by Didit's internal user identifier (the `didit_internal_id` response
// field) to list all sessions of one verified user. Must be a valid UUID;
// malformed values return `400`. KYC rows only.
DiditInternalID Opt[string] `json:"-" query:"didit_internal_id"`
// Comma-separated session creation channels: `API`, `HOSTED`, `MIGRATED`. The
// special value `ALL` (or omitting the parameter) disables the filter. KYC rows
// only.
SessionType Opt[string] `json:"-" query:"session_type"`
// Filter standalone API sessions by service. Invalid values return `400`. KYC
// rows only.
APIService Opt[SessionsListParamsAPIService] `json:"-" query:"api_service"`
// Accent-insensitive name search inside AML and database-validation screened
// data. When combined with `api_service=AML` or
// `api_service=DATABASE_VALIDATION`, the search is restricted to that feature's
// screened data. KYC rows only.
ScreenedFullName Opt[string] `json:"-" query:"screened_full_name"`
// Comma-separated warning risk codes; returns sessions that raised any of them
// (e.g. `POSSIBLE_FRAUD`). Risk codes are listed per feature in the [warnings
// documentation](/integration/webhooks). Applies to KYC rows and, with business
// warning codes, to KYB rows.
Warning Opt[string] `json:"-" query:"warning"`
// When `true`, only sessions whose decision initially landed in `In Review`
// (useful to audit manual-review volume). KYC rows only.
StatusInitializedAsInReview Opt[bool] `json:"-" query:"status_initialized_as_in_review"`
// `true` returns sessions whose document verification is flagged for manual
// review; `false` returns sessions with document verification explicitly not
// flagged. Omit to disable. KYC rows only.
IsKYCToBeReviewed Opt[bool] `json:"-" query:"is_kyc_to_be_reviewed"`
// Filter by the end user's euuid (UUID assigned to the verifying user, used by
// Console deep links). Must be a valid UUID; malformed values return a 400
// field error. KYC rows only.
Euuid Opt[string] `json:"-" query:"euuid"`
// Comma-separated organization names. Console-oriented; with an API key
// (already scoped to one application) it only matches your own organization's
// name.
OrganizationName Opt[string] `json:"-" query:"organization_name"`
}
SessionsListParams holds the parameters of Client.Sessions.List.
func (SessionsListParams) MarshalJSON ¶
func (r SessionsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsListParamsAPIService ¶
type SessionsListParamsAPIService string
SessionsListParamsAPIService is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListParamsAPIServiceIDVerification SessionsListParamsAPIService = "ID_VERIFICATION" SessionsListParamsAPIServiceFaceMatch SessionsListParamsAPIService = "FACE_MATCH" SessionsListParamsAPIServiceAgeEstimation SessionsListParamsAPIService = "AGE_ESTIMATION" SessionsListParamsAPIServiceFaceSearch SessionsListParamsAPIService = "FACE_SEARCH" SessionsListParamsAPIServicePOA SessionsListParamsAPIService = "POA" SessionsListParamsAPIServiceAML SessionsListParamsAPIService = "AML" SessionsListParamsAPIServiceKYBRegistry SessionsListParamsAPIService = "KYB_REGISTRY" SessionsListParamsAPIServicePassiveLiveness SessionsListParamsAPIService = "PASSIVE_LIVENESS" SessionsListParamsAPIServiceDatabaseValidation SessionsListParamsAPIService = "DATABASE_VALIDATION" SessionsListParamsAPIServicePhoneVerification SessionsListParamsAPIService = "PHONE_VERIFICATION" SessionsListParamsAPIServiceEmailVerification SessionsListParamsAPIService = "EMAIL_VERIFICATION" )
Known values of SessionsListParamsAPIService.
type SessionsListParamsSessionKind ¶
type SessionsListParamsSessionKind string
SessionsListParamsSessionKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListParamsSessionKindUser SessionsListParamsSessionKind = "user" SessionsListParamsSessionKindBusiness SessionsListParamsSessionKind = "business" SessionsListParamsSessionKindAll SessionsListParamsSessionKind = "all" )
Known values of SessionsListParamsSessionKind.
type SessionsListResponseResults ¶
type SessionsListResponseResults struct {
// Unique identifier of the verification session. Use it with `GET
// /v3/session/{sessionId}/decision/` to fetch the full decision payload.
SessionID string `json:"session_id"`
// Row discriminator. Always `"user"` for KYC rows; Business Verification (KYB)
// rows have `"business"` and a different shape.
SessionKind SessionsListResponseResultsSessionKind `json:"session_kind"`
// Human-friendly sequential number of the session within your application. Also
// matched by the `search` parameter.
SessionNumber int64 `json:"session_number"`
// Hosted verification URL the end user opens to complete the flow. `null` when
// the session has no hosted URL.
SessionURL string `json:"session_url"`
// Expiring (presigned) URL of the best available portrait: the NFC chip photo
// when available, otherwise the ID document portrait, otherwise the liveness
// reference image. `null` until one of those exists. Download promptly; the
// link expires.
PortraitImage string `json:"portrait_image"`
// Human-readable type of the verified ID document. `null` before document
// verification completes, and also `null` after completion when the verified
// code has no display mapping (`SSC`, `WP`, `VISA`, `PSC`, `BC`, `OTHER`).
// Note: the `document_type` query parameter filters by short codes (`P`, `ID`,
// `DL`, `RP`, ...), not by these display values.
DocumentType SessionsListResponseResultsDocumentType `json:"document_type"`
// Best available full name for the session, resolved in order: ID document OCR,
// AML screened data, database-validation screened data, proof-of-address
// document, then the expected details provided at session creation. `null` when
// none is available yet.
FullName string `json:"full_name"`
// ISO 3166-1 alpha-3 country associated with the session, resolved in order: ID
// document issuing state, database-validation issuing state, proof-of-address
// issuing state, expected details, then the verified phone's country. May
// differ from nationality.
Country string `json:"country"`
// Overall session status. See the [Verification
// Statuses](/integration/verification-statuses) page for the lifecycle.
Status SessionsListResponseResultsStatus `json:"status"`
// Your own identifier for the end user, echoed back exactly as sent at session
// creation.
VendorData string `json:"vendor_data"`
// Didit's internal identifier for the verified user profile behind this
// session. Stable across multiple sessions of the same user; filterable via the
// `didit_internal_id` query parameter.
DiditInternalID string `json:"didit_internal_id"`
// UTC timestamp when the session was created.
CreatedAt time.Time `json:"created_at"`
// Per-feature status for every verification step configured in the session's
// workflow, in workflow order.
Features []SessionsListResponseResultsFeatures `json:"features"`
// Phone associated with the session: the verified phone when phone verification
// ran, otherwise the contact phone provided at session creation. `null` when
// neither exists.
PhoneNumber SessionsListResponseResultsPhoneNumber `json:"phone_number"`
// Email associated with the session: the verified email when email verification
// ran, otherwise the contact email provided at session creation. `null` when
// neither exists.
EmailAddress SessionsListResponseResultsEmailAddress `json:"email_address"`
// Compact per-feature extras. Only features that produced data appear as keys;
// `null` when no feature produced extras. Fields excluded by the workflow's
// response-attributes configuration are omitted.
AdditionalDetails SessionsListResponseResultsAdditionalDetails `json:"additional_details"`
// Identifier of the workflow this session was created with.
WorkflowID string `json:"workflow_id"`
// Workflow type. `kyb` for business workflows.
WorkflowType string `json:"workflow_type"`
// Display name of the workflow.
WorkflowLabel string `json:"workflow_label"`
// Name of the company being verified, from the registry company linked to the
// session. `null` until a company is selected.
CompanyName string `json:"company_name"`
// Company registration number from the registry company linked to the session.
RegistrationNumber string `json:"registration_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResults is a response object.
func (*SessionsListResponseResults) UnmarshalJSON ¶
func (r *SessionsListResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResults leniently.
type SessionsListResponseResultsAdditionalDetails ¶
type SessionsListResponseResultsAdditionalDetails struct {
// Present when AML screening ran.
AML SessionsListResponseResultsAdditionalDetailsAML `json:"aml"`
// Present when database validation ran.
DatabaseValidation SessionsListResponseResultsAdditionalDetailsDatabaseValidation `json:"database_validation"`
// Present when proof of address ran.
POA SessionsListResponseResultsAdditionalDetailsPOA `json:"poa"`
// Present when a liveness check ran.
Liveness SessionsListResponseResultsAdditionalDetailsLiveness `json:"liveness"`
// Present when face match ran.
FaceMatch SessionsListResponseResultsAdditionalDetailsFaceMatch `json:"face_match"`
// Present when phone verification ran.
PhoneVerification SessionsListResponseResultsAdditionalDetailsPhoneVerification `json:"phone_verification"`
// Present when email verification ran.
EmailVerification SessionsListResponseResultsAdditionalDetailsEmailVerification `json:"email_verification"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetails: Compact per-feature extras. Only features that produced data appear as keys; `null` when no feature produced extras. Fields excluded by the workflow's response-attributes configuration are omitted.
func (*SessionsListResponseResultsAdditionalDetails) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetails leniently.
type SessionsListResponseResultsAdditionalDetailsAML ¶
type SessionsListResponseResultsAdditionalDetailsAML struct {
// Number of AML screening hits.
TotalHits int64 `json:"total_hits"`
// Screened entity type.
EntityType string `json:"entity_type"`
IsAdverseMediaFetched bool `json:"is_adverse_media_fetched"`
// Subset of the data that was screened. Only non-empty keys are included.
ScreenedData SessionsListResponseResultsAdditionalDetailsAMLScreenedData `json:"screened_data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsAML: Present when AML screening ran.
func (*SessionsListResponseResultsAdditionalDetailsAML) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsAML) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsAML leniently.
type SessionsListResponseResultsAdditionalDetailsAMLScreenedData ¶
type SessionsListResponseResultsAdditionalDetailsAMLScreenedData struct {
Nationality string `json:"nationality"`
DocumentNumber string `json:"document_number"`
DateOfBirth string `json:"date_of_birth"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsAMLScreenedData: Subset of the data that was screened. Only non-empty keys are included.
func (*SessionsListResponseResultsAdditionalDetailsAMLScreenedData) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsAMLScreenedData) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsAMLScreenedData leniently.
type SessionsListResponseResultsAdditionalDetailsDatabaseValidation ¶
type SessionsListResponseResultsAdditionalDetailsDatabaseValidation struct {
ValidationType string `json:"validation_type"`
MatchType string `json:"match_type"`
// Tax, personal, or document number that was validated (first available).
IdentificationNumber string `json:"identification_number"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsDatabaseValidation: Present when database validation ran.
func (*SessionsListResponseResultsAdditionalDetailsDatabaseValidation) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsDatabaseValidation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsDatabaseValidation leniently.
type SessionsListResponseResultsAdditionalDetailsEmailVerification ¶
type SessionsListResponseResultsAdditionalDetailsEmailVerification struct {
IsBreached bool `json:"is_breached"`
IsDisposable bool `json:"is_disposable"`
IsUndeliverable bool `json:"is_undeliverable"`
IsBlocklisted bool `json:"is_blocklisted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsEmailVerification: Present when email verification ran.
func (*SessionsListResponseResultsAdditionalDetailsEmailVerification) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsEmailVerification) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsEmailVerification leniently.
type SessionsListResponseResultsAdditionalDetailsFaceMatch ¶
type SessionsListResponseResultsAdditionalDetailsFaceMatch struct {
// Face-match similarity score, rounded to 2 decimals.
Score float64 `json:"score"`
// Expiring (presigned) URL of the source face image.
SourceImage string `json:"source_image"`
// Expiring (presigned) URL of the target face image.
TargetImage string `json:"target_image"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsFaceMatch: Present when face match ran.
func (*SessionsListResponseResultsAdditionalDetailsFaceMatch) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsFaceMatch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsFaceMatch leniently.
type SessionsListResponseResultsAdditionalDetailsLiveness ¶
type SessionsListResponseResultsAdditionalDetailsLiveness struct {
Method string `json:"method"`
// Liveness confidence score, rounded to 2 decimals.
Score float64 `json:"score"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsLiveness: Present when a liveness check ran.
func (*SessionsListResponseResultsAdditionalDetailsLiveness) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsLiveness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsLiveness leniently.
type SessionsListResponseResultsAdditionalDetailsPOA ¶
type SessionsListResponseResultsAdditionalDetailsPOA struct {
DocumentType string `json:"document_type"`
Issuer string `json:"issuer"`
Address string `json:"address"`
NameOnDocument string `json:"name_on_document"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsPOA: Present when proof of address ran.
func (*SessionsListResponseResultsAdditionalDetailsPOA) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsPOA) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsPOA leniently.
type SessionsListResponseResultsAdditionalDetailsPhoneVerification ¶
type SessionsListResponseResultsAdditionalDetailsPhoneVerification struct {
// ISO 3166-1 alpha-2 country of the phone number.
CountryCode string `json:"country_code"`
IsTemporary bool `json:"is_temporary"`
IsPorted bool `json:"is_ported"`
IsBlocked bool `json:"is_blocked"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsAdditionalDetailsPhoneVerification: Present when phone verification ran.
func (*SessionsListResponseResultsAdditionalDetailsPhoneVerification) UnmarshalJSON ¶
func (r *SessionsListResponseResultsAdditionalDetailsPhoneVerification) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsAdditionalDetailsPhoneVerification leniently.
type SessionsListResponseResultsDocumentType ¶
type SessionsListResponseResultsDocumentType string
SessionsListResponseResultsDocumentType: Human-readable type of the verified ID document. `null` before document verification completes, and also `null` after completion when the verified code has no display mapping (`SSC`, `WP`, `VISA`, `PSC`, `BC`, `OTHER`). Note: the `document_type` query parameter filters by short codes (`P`, `ID`, `DL`, `RP`, ...), not by these display values.
SessionsListResponseResultsDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListResponseResultsDocumentTypePassport SessionsListResponseResultsDocumentType = "Passport" SessionsListResponseResultsDocumentTypeIdentityCard SessionsListResponseResultsDocumentType = "Identity Card" SessionsListResponseResultsDocumentTypeDriverSLicense SessionsListResponseResultsDocumentType = "Driver's License" SessionsListResponseResultsDocumentTypeResidencePermit SessionsListResponseResultsDocumentType = "Residence Permit" SessionsListResponseResultsDocumentTypeHealthInsuranceCard SessionsListResponseResultsDocumentType = "Health Insurance Card" SessionsListResponseResultsDocumentTypeTaxCard SessionsListResponseResultsDocumentType = "Tax Card" )
Known values of SessionsListResponseResultsDocumentType.
type SessionsListResponseResultsEmailAddress ¶
type SessionsListResponseResultsEmailAddress struct {
Email string `json:"email"`
// `true` only when the email-verification feature approved this address.
IsVerified bool `json:"is_verified"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsEmailAddress: Email associated with the session: the verified email when email verification ran, otherwise the contact email provided at session creation. `null` when neither exists.
func (*SessionsListResponseResultsEmailAddress) UnmarshalJSON ¶
func (r *SessionsListResponseResultsEmailAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsEmailAddress leniently.
type SessionsListResponseResultsFeatures ¶
type SessionsListResponseResultsFeatures struct {
// Verification feature identifier.
Feature SessionsListResponseResultsFeaturesFeature `json:"feature"`
// Status of this feature. `Not Finished` until the step completes.
Status SessionsListResponseResultsFeaturesStatus `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsFeatures is a response object.
func (*SessionsListResponseResultsFeatures) UnmarshalJSON ¶
func (r *SessionsListResponseResultsFeatures) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsFeatures leniently.
type SessionsListResponseResultsFeaturesFeature ¶
type SessionsListResponseResultsFeaturesFeature string
SessionsListResponseResultsFeaturesFeature: Verification feature identifier.
SessionsListResponseResultsFeaturesFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListResponseResultsFeaturesFeatureIDVerification SessionsListResponseResultsFeaturesFeature = "ID_VERIFICATION" SessionsListResponseResultsFeaturesFeatureNFC SessionsListResponseResultsFeaturesFeature = "NFC" SessionsListResponseResultsFeaturesFeatureLiveness SessionsListResponseResultsFeaturesFeature = "LIVENESS" SessionsListResponseResultsFeaturesFeatureFaceMatch SessionsListResponseResultsFeaturesFeature = "FACE_MATCH" SessionsListResponseResultsFeaturesFeaturePOA SessionsListResponseResultsFeaturesFeature = "POA" SessionsListResponseResultsFeaturesFeatureQuestionnaire SessionsListResponseResultsFeaturesFeature = "QUESTIONNAIRE" SessionsListResponseResultsFeaturesFeatureEmailVerification SessionsListResponseResultsFeaturesFeature = "EMAIL_VERIFICATION" SessionsListResponseResultsFeaturesFeaturePhone SessionsListResponseResultsFeaturesFeature = "PHONE" SessionsListResponseResultsFeaturesFeatureAML SessionsListResponseResultsFeaturesFeature = "AML" SessionsListResponseResultsFeaturesFeatureIPAnalysis SessionsListResponseResultsFeaturesFeature = "IP_ANALYSIS" SessionsListResponseResultsFeaturesFeatureAgeEstimation SessionsListResponseResultsFeaturesFeature = "AGE_ESTIMATION" SessionsListResponseResultsFeaturesFeatureDatabaseValidation SessionsListResponseResultsFeaturesFeature = "DATABASE_VALIDATION" )
Known values of SessionsListResponseResultsFeaturesFeature.
type SessionsListResponseResultsFeaturesStatus ¶
type SessionsListResponseResultsFeaturesStatus string
SessionsListResponseResultsFeaturesStatus: Status of this feature. `Not Finished` until the step completes.
SessionsListResponseResultsFeaturesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListResponseResultsFeaturesStatusNotFinished SessionsListResponseResultsFeaturesStatus = "Not Finished" SessionsListResponseResultsFeaturesStatusApproved SessionsListResponseResultsFeaturesStatus = "Approved" SessionsListResponseResultsFeaturesStatusDeclined SessionsListResponseResultsFeaturesStatus = "Declined" SessionsListResponseResultsFeaturesStatusInReview SessionsListResponseResultsFeaturesStatus = "In Review" SessionsListResponseResultsFeaturesStatusResubRequested SessionsListResponseResultsFeaturesStatus = "Resub Requested" )
Known values of SessionsListResponseResultsFeaturesStatus.
type SessionsListResponseResultsPhoneNumber ¶
type SessionsListResponseResultsPhoneNumber struct {
// Phone number in E.164 format.
Number string `json:"number"`
// `true` only when the phone-verification feature approved this number.
IsVerified bool `json:"is_verified"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsListResponseResultsPhoneNumber: Phone associated with the session: the verified phone when phone verification ran, otherwise the contact phone provided at session creation. `null` when neither exists.
func (*SessionsListResponseResultsPhoneNumber) UnmarshalJSON ¶
func (r *SessionsListResponseResultsPhoneNumber) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsListResponseResultsPhoneNumber leniently.
type SessionsListResponseResultsSessionKind ¶
type SessionsListResponseResultsSessionKind string
SessionsListResponseResultsSessionKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListResponseResultsSessionKindUser SessionsListResponseResultsSessionKind = "user" SessionsListResponseResultsSessionKindBusiness SessionsListResponseResultsSessionKind = "business" )
Known values of SessionsListResponseResultsSessionKind.
type SessionsListResponseResultsStatus ¶
type SessionsListResponseResultsStatus string
SessionsListResponseResultsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsListResponseResultsStatusNotStarted SessionsListResponseResultsStatus = "Not Started" SessionsListResponseResultsStatusInProgress SessionsListResponseResultsStatus = "In Progress" SessionsListResponseResultsStatusApproved SessionsListResponseResultsStatus = "Approved" SessionsListResponseResultsStatusDeclined SessionsListResponseResultsStatus = "Declined" SessionsListResponseResultsStatusInReview SessionsListResponseResultsStatus = "In Review" SessionsListResponseResultsStatusExpired SessionsListResponseResultsStatus = "Expired" SessionsListResponseResultsStatusAbandoned SessionsListResponseResultsStatus = "Abandoned" SessionsListResponseResultsStatusKYCExpired SessionsListResponseResultsStatus = "Kyc Expired" SessionsListResponseResultsStatusResubmitted SessionsListResponseResultsStatus = "Resubmitted" SessionsListResponseResultsStatusAwaitingUser SessionsListResponseResultsStatus = "Awaiting User" )
Known values of SessionsListResponseResultsStatus.
type SessionsPreviewDecisionEmailParams ¶
type SessionsPreviewDecisionEmailParams struct {
// The decision whose email you want to preview. Required.
NewStatus SessionsPreviewDecisionEmailParamsNewStatus `json:"new_status"`
// Language of the email, the same default as Update Session Status. A language
// that is not offered falls back to English; `language` in the response says
// which one is used.
EmailLanguage Opt[string] `json:"email_language"`
}
SessionsPreviewDecisionEmailParams holds the parameters of Client.Sessions.PreviewDecisionEmail.
func (SessionsPreviewDecisionEmailParams) MarshalJSON ¶
func (r SessionsPreviewDecisionEmailParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsPreviewDecisionEmailParamsNewStatus ¶
type SessionsPreviewDecisionEmailParamsNewStatus string
SessionsPreviewDecisionEmailParamsNewStatus: The decision whose email you want to preview.
SessionsPreviewDecisionEmailParamsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewDecisionEmailParamsNewStatusApproved SessionsPreviewDecisionEmailParamsNewStatus = "Approved" SessionsPreviewDecisionEmailParamsNewStatusDeclined SessionsPreviewDecisionEmailParamsNewStatus = "Declined" )
Known values of SessionsPreviewDecisionEmailParamsNewStatus.
type SessionsPreviewDecisionEmailResponse ¶
type SessionsPreviewDecisionEmailResponse struct {
// The address the email goes to. An empty string when no address is known for
// the person: then no email can be sent and `preview_token` is empty too. Pass
// it as `email_address` when you confirm.
Recipient string `json:"recipient"`
// Where `recipient` comes from. `email_verification`: the address the person
// verified in an email verification step of the flow. `contact_details`: the
// address given in `contact_details` when the session was created. An empty
// string when there is no address.
RecipientSource SessionsPreviewDecisionEmailResponseRecipientSource `json:"recipient_source"`
// The `From` header the email goes out with.
Sender string `json:"sender"`
// The display name part of `sender`.
SenderName string `json:"sender_name"`
// The address part of `sender`.
SenderEmail string `json:"sender_email"`
// `customer`: the email goes out from your application's verified sender domain
// (white label). `didit`: it goes out from Didit's own sender.
SenderKind SessionsPreviewDecisionEmailResponseSenderKind `json:"sender_kind"`
// The subject line exactly as it is sent.
Subject string `json:"subject"`
// The email's HTML exactly as it is sent, with its logo embedded as a data URL.
// Render it in a sandboxed frame, never directly in your application DOM.
HTML string `json:"html"`
// The language the email is written in. English (`en`) when the
// `email_language` you asked for is not offered.
Language string `json:"language"`
// Whether confirming the change with `send_email: true` sends this email.
// `false` when `not_sent_reason` is set.
WillBeSent bool `json:"will_be_sent"`
// Why confirming would send no email, or `null` when it will be sent.
// `status_unchanged`: the session already has this status, so the update
// changes nothing and sends nothing. `notification_emails_disabled`: the
// session was created without `contact_details.send_notification_emails: true`,
// so no decision email goes to the address given in `contact_details`.
// `no_recipient`: no address is known for the person. `sandbox`: a sandbox
// session whose recipient has not opted into sandbox email delivery, so the
// send is only simulated.
NotSentReason SessionsPreviewDecisionEmailResponseNotSentReason `json:"not_sent_reason"`
// Signed receipt for this exact email, valid for 15 minutes. Pass it as
// `email_preview_token` to [Update Session
// Status](/sessions-api/update-status). An empty string when there is no
// recipient.
PreviewToken string `json:"preview_token"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsPreviewDecisionEmailResponse is a response object.
func (*SessionsPreviewDecisionEmailResponse) UnmarshalJSON ¶
func (r *SessionsPreviewDecisionEmailResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsPreviewDecisionEmailResponse leniently.
type SessionsPreviewDecisionEmailResponseNotSentReason ¶
type SessionsPreviewDecisionEmailResponseNotSentReason string
SessionsPreviewDecisionEmailResponseNotSentReason: Why confirming would send no email, or `null` when it will be sent. `status_unchanged`: the session already has this status, so the update changes nothing and sends nothing. `notification_emails_disabled`: the session was created without `contact_details.send_notification_emails: true`, so no decision email goes to the address given in `contact_details`. `no_recipient`: no address is known for the person. `sandbox`: a sandbox session whose recipient has not opted into sandbox email delivery, so the send is only simulated.
SessionsPreviewDecisionEmailResponseNotSentReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewDecisionEmailResponseNotSentReasonStatusUnchanged SessionsPreviewDecisionEmailResponseNotSentReason = "status_unchanged" SessionsPreviewDecisionEmailResponseNotSentReasonNotificationEmailsDisabled SessionsPreviewDecisionEmailResponseNotSentReason = "notification_emails_disabled" SessionsPreviewDecisionEmailResponseNotSentReasonNoRecipient SessionsPreviewDecisionEmailResponseNotSentReason = "no_recipient" SessionsPreviewDecisionEmailResponseNotSentReasonSandbox SessionsPreviewDecisionEmailResponseNotSentReason = "sandbox" )
Known values of SessionsPreviewDecisionEmailResponseNotSentReason.
type SessionsPreviewDecisionEmailResponseRecipientSource ¶
type SessionsPreviewDecisionEmailResponseRecipientSource string
SessionsPreviewDecisionEmailResponseRecipientSource: Where `recipient` comes from. `email_verification`: the address the person verified in an email verification step of the flow. `contact_details`: the address given in `contact_details` when the session was created. An empty string when there is no address.
SessionsPreviewDecisionEmailResponseRecipientSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewDecisionEmailResponseRecipientSourceEmailVerification SessionsPreviewDecisionEmailResponseRecipientSource = "email_verification" SessionsPreviewDecisionEmailResponseRecipientSourceContactDetails SessionsPreviewDecisionEmailResponseRecipientSource = "contact_details" SessionsPreviewDecisionEmailResponseRecipientSourceEmpty SessionsPreviewDecisionEmailResponseRecipientSource = "" )
Known values of SessionsPreviewDecisionEmailResponseRecipientSource.
type SessionsPreviewDecisionEmailResponseSenderKind ¶
type SessionsPreviewDecisionEmailResponseSenderKind string
SessionsPreviewDecisionEmailResponseSenderKind: `customer`: the email goes out from your application's verified sender domain (white label). `didit`: it goes out from Didit's own sender.
SessionsPreviewDecisionEmailResponseSenderKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewDecisionEmailResponseSenderKindCustomer SessionsPreviewDecisionEmailResponseSenderKind = "customer" SessionsPreviewDecisionEmailResponseSenderKindDidit SessionsPreviewDecisionEmailResponseSenderKind = "didit" )
Known values of SessionsPreviewDecisionEmailResponseSenderKind.
type SessionsPreviewResubmissionParams ¶
type SessionsPreviewResubmissionParams struct {
// Steps to preview, using the same validation, selection and workflow ordering
// as a resubmission. Omit to auto-select recorded attempts needing
// resubmission.
NodesToResubmit Opt[[]SessionsPreviewResubmissionParamsNodesToResubmit] `json:"nodes_to_resubmit"`
// Optional. Send the email to this address instead of the person's own. Without
// it, the recipient is the address the person verified in the flow, else the
// one given in `contact_details`. No email is sent by this call.
EmailAddress Opt[string] `json:"email_address"`
// Language for the notification email. Accepts any string at schema level;
// unsupported codes silently fall back to English (`en`).
EmailLanguage Opt[string] `json:"email_language"`
}
SessionsPreviewResubmissionParams holds the parameters of Client.Sessions.PreviewResubmission.
func (SessionsPreviewResubmissionParams) MarshalJSON ¶
func (r SessionsPreviewResubmissionParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsPreviewResubmissionParamsNodesToResubmit ¶
type SessionsPreviewResubmissionParamsNodesToResubmit struct {
// Node identifier as it appears in the session's workflow definition (for
// example `feature_ocr`, `feature_liveness`). Required.
NodeID string `json:"node_id"`
// Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and
// `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`,
// `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`,
// `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected
// with the business-rule `400` shown in the examples. Required.
Feature SessionsPreviewResubmissionParamsNodesToResubmitFeature `json:"feature"`
}
SessionsPreviewResubmissionParamsNodesToResubmit is a request object.
func (SessionsPreviewResubmissionParamsNodesToResubmit) MarshalJSON ¶
func (r SessionsPreviewResubmissionParamsNodesToResubmit) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsPreviewResubmissionParamsNodesToResubmitFeature ¶
type SessionsPreviewResubmissionParamsNodesToResubmitFeature string
SessionsPreviewResubmissionParamsNodesToResubmitFeature: Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
SessionsPreviewResubmissionParamsNodesToResubmitFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewResubmissionParamsNodesToResubmitFeatureOCR SessionsPreviewResubmissionParamsNodesToResubmitFeature = "OCR" SessionsPreviewResubmissionParamsNodesToResubmitFeatureOCRBack SessionsPreviewResubmissionParamsNodesToResubmitFeature = "OCR_BACK" SessionsPreviewResubmissionParamsNodesToResubmitFeatureNFC SessionsPreviewResubmissionParamsNodesToResubmitFeature = "NFC" SessionsPreviewResubmissionParamsNodesToResubmitFeatureAML SessionsPreviewResubmissionParamsNodesToResubmitFeature = "AML" SessionsPreviewResubmissionParamsNodesToResubmitFeatureFace SessionsPreviewResubmissionParamsNodesToResubmitFeature = "FACE" SessionsPreviewResubmissionParamsNodesToResubmitFeatureLiveness SessionsPreviewResubmissionParamsNodesToResubmitFeature = "LIVENESS" SessionsPreviewResubmissionParamsNodesToResubmitFeatureFaceMatch SessionsPreviewResubmissionParamsNodesToResubmitFeature = "FACE_MATCH" SessionsPreviewResubmissionParamsNodesToResubmitFeatureIPAnalysis SessionsPreviewResubmissionParamsNodesToResubmitFeature = "IP_ANALYSIS" SessionsPreviewResubmissionParamsNodesToResubmitFeatureAgeEstimation SessionsPreviewResubmissionParamsNodesToResubmitFeature = "AGE_ESTIMATION" SessionsPreviewResubmissionParamsNodesToResubmitFeatureProofOfAddress SessionsPreviewResubmissionParamsNodesToResubmitFeature = "PROOF_OF_ADDRESS" SessionsPreviewResubmissionParamsNodesToResubmitFeaturePhoneVerification SessionsPreviewResubmissionParamsNodesToResubmitFeature = "PHONE_VERIFICATION" SessionsPreviewResubmissionParamsNodesToResubmitFeatureEmailVerification SessionsPreviewResubmissionParamsNodesToResubmitFeature = "EMAIL_VERIFICATION" SessionsPreviewResubmissionParamsNodesToResubmitFeatureFaceSearch SessionsPreviewResubmissionParamsNodesToResubmitFeature = "FACE_SEARCH" SessionsPreviewResubmissionParamsNodesToResubmitFeatureDatabaseValidation SessionsPreviewResubmissionParamsNodesToResubmitFeature = "DATABASE_VALIDATION" SessionsPreviewResubmissionParamsNodesToResubmitFeatureQuestionnaire SessionsPreviewResubmissionParamsNodesToResubmitFeature = "QUESTIONNAIRE" SessionsPreviewResubmissionParamsNodesToResubmitFeatureDocumentAi SessionsPreviewResubmissionParamsNodesToResubmitFeature = "DOCUMENT_AI" SessionsPreviewResubmissionParamsNodesToResubmitFeatureKYBDocuments SessionsPreviewResubmissionParamsNodesToResubmitFeature = "KYB_DOCUMENTS" SessionsPreviewResubmissionParamsNodesToResubmitFeatureIDVerification SessionsPreviewResubmissionParamsNodesToResubmitFeature = "ID_VERIFICATION" SessionsPreviewResubmissionParamsNodesToResubmitFeaturePOA SessionsPreviewResubmissionParamsNodesToResubmitFeature = "POA" SessionsPreviewResubmissionParamsNodesToResubmitFeaturePhone SessionsPreviewResubmissionParamsNodesToResubmitFeature = "PHONE" SessionsPreviewResubmissionParamsNodesToResubmitFeatureEmail SessionsPreviewResubmissionParamsNodesToResubmitFeature = "EMAIL" SessionsPreviewResubmissionParamsNodesToResubmitFeatureKYBRegistry SessionsPreviewResubmissionParamsNodesToResubmitFeature = "KYB_REGISTRY" SessionsPreviewResubmissionParamsNodesToResubmitFeatureKYBKeyPeople SessionsPreviewResubmissionParamsNodesToResubmitFeature = "KYB_KEY_PEOPLE" SessionsPreviewResubmissionParamsNodesToResubmitFeatureKYB SessionsPreviewResubmissionParamsNodesToResubmitFeature = "KYB" )
Known values of SessionsPreviewResubmissionParamsNodesToResubmitFeature.
type SessionsPreviewResubmissionResponse ¶
type SessionsPreviewResubmissionResponse struct {
// The address the email goes to. An empty string when no address is known for
// the person: then no email can be sent and `preview_token` is empty too. Pass
// it as `email_address` when you confirm.
Recipient string `json:"recipient"`
// Where `recipient` comes from. `request`: the `email_address` you passed.
// `email_verification`: the address the person verified in an email
// verification step of the flow. `contact_details`: the address given in
// `contact_details` when the session was created. An empty string when there is
// no address.
RecipientSource SessionsPreviewResubmissionResponseRecipientSource `json:"recipient_source"`
// The `From` header the email goes out with.
Sender string `json:"sender"`
// The display name part of `sender`.
SenderName string `json:"sender_name"`
// The address part of `sender`.
SenderEmail string `json:"sender_email"`
// `customer`: the email goes out from your application's verified sender domain
// (white label). `didit`: it goes out from Didit's own sender.
SenderKind SessionsPreviewResubmissionResponseSenderKind `json:"sender_kind"`
// The subject line exactly as it is sent.
Subject string `json:"subject"`
// The email's HTML exactly as it is sent, with its logo embedded as a data URL.
// Render it in a sandboxed frame, never directly in your application DOM.
HTML string `json:"html"`
// The language the email is written in. English (`en`) when the
// `email_language` you asked for is not offered.
Language string `json:"language"`
// Whether confirming the change with `send_email: true` sends this email.
// `false` when `not_sent_reason` is set.
WillBeSent bool `json:"will_be_sent"`
// Why confirming would send no email, or `null` when it will be sent.
// `no_user_action`: every selected step runs without the person, so the
// resubmission finishes on its own and no email goes out. `no_recipient`: no
// address is known for the person and you passed none. `sandbox`: a sandbox
// session whose recipient has not opted into sandbox email delivery, so the
// send is only simulated.
NotSentReason SessionsPreviewResubmissionResponseNotSentReason `json:"not_sent_reason"`
NodesToResubmit []SessionsPreviewResubmissionResponseNodesToResubmit `json:"nodes_to_resubmit"`
// Whether at least one selected check requires user interaction. This does not
// predict the final workflow outcome.
RequiresUserAction bool `json:"requires_user_action"`
// Signed receipt for this exact email, valid for 15 minutes. Pass it as
// `email_preview_token` to [Update Session
// Status](/sessions-api/update-status). An empty string when there is no
// recipient.
PreviewToken string `json:"preview_token"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsPreviewResubmissionResponse is a response object.
func (*SessionsPreviewResubmissionResponse) UnmarshalJSON ¶
func (r *SessionsPreviewResubmissionResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsPreviewResubmissionResponse leniently.
type SessionsPreviewResubmissionResponseNodesToResubmit ¶
type SessionsPreviewResubmissionResponseNodesToResubmit struct {
// Node identifier as it appears in the session's workflow definition (for
// example `feature_ocr`, `feature_liveness`).
NodeID string `json:"node_id"`
// Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and
// `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`,
// `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`,
// `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected
// with the business-rule `400` shown in the examples.
Feature SessionsPreviewResubmissionResponseNodesToResubmitFeature `json:"feature"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsPreviewResubmissionResponseNodesToResubmit is a response object.
func (*SessionsPreviewResubmissionResponseNodesToResubmit) UnmarshalJSON ¶
func (r *SessionsPreviewResubmissionResponseNodesToResubmit) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsPreviewResubmissionResponseNodesToResubmit leniently.
type SessionsPreviewResubmissionResponseNodesToResubmitFeature ¶
type SessionsPreviewResubmissionResponseNodesToResubmitFeature string
SessionsPreviewResubmissionResponseNodesToResubmitFeature: Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
SessionsPreviewResubmissionResponseNodesToResubmitFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewResubmissionResponseNodesToResubmitFeatureOCR SessionsPreviewResubmissionResponseNodesToResubmitFeature = "OCR" SessionsPreviewResubmissionResponseNodesToResubmitFeatureOCRBack SessionsPreviewResubmissionResponseNodesToResubmitFeature = "OCR_BACK" SessionsPreviewResubmissionResponseNodesToResubmitFeatureNFC SessionsPreviewResubmissionResponseNodesToResubmitFeature = "NFC" SessionsPreviewResubmissionResponseNodesToResubmitFeatureAML SessionsPreviewResubmissionResponseNodesToResubmitFeature = "AML" SessionsPreviewResubmissionResponseNodesToResubmitFeatureFace SessionsPreviewResubmissionResponseNodesToResubmitFeature = "FACE" SessionsPreviewResubmissionResponseNodesToResubmitFeatureLiveness SessionsPreviewResubmissionResponseNodesToResubmitFeature = "LIVENESS" SessionsPreviewResubmissionResponseNodesToResubmitFeatureFaceMatch SessionsPreviewResubmissionResponseNodesToResubmitFeature = "FACE_MATCH" SessionsPreviewResubmissionResponseNodesToResubmitFeatureIPAnalysis SessionsPreviewResubmissionResponseNodesToResubmitFeature = "IP_ANALYSIS" SessionsPreviewResubmissionResponseNodesToResubmitFeatureAgeEstimation SessionsPreviewResubmissionResponseNodesToResubmitFeature = "AGE_ESTIMATION" SessionsPreviewResubmissionResponseNodesToResubmitFeatureProofOfAddress SessionsPreviewResubmissionResponseNodesToResubmitFeature = "PROOF_OF_ADDRESS" SessionsPreviewResubmissionResponseNodesToResubmitFeaturePhoneVerification SessionsPreviewResubmissionResponseNodesToResubmitFeature = "PHONE_VERIFICATION" SessionsPreviewResubmissionResponseNodesToResubmitFeatureEmailVerification SessionsPreviewResubmissionResponseNodesToResubmitFeature = "EMAIL_VERIFICATION" SessionsPreviewResubmissionResponseNodesToResubmitFeatureFaceSearch SessionsPreviewResubmissionResponseNodesToResubmitFeature = "FACE_SEARCH" SessionsPreviewResubmissionResponseNodesToResubmitFeatureDatabaseValidation SessionsPreviewResubmissionResponseNodesToResubmitFeature = "DATABASE_VALIDATION" SessionsPreviewResubmissionResponseNodesToResubmitFeatureQuestionnaire SessionsPreviewResubmissionResponseNodesToResubmitFeature = "QUESTIONNAIRE" SessionsPreviewResubmissionResponseNodesToResubmitFeatureDocumentAi SessionsPreviewResubmissionResponseNodesToResubmitFeature = "DOCUMENT_AI" SessionsPreviewResubmissionResponseNodesToResubmitFeatureKYBDocuments SessionsPreviewResubmissionResponseNodesToResubmitFeature = "KYB_DOCUMENTS" SessionsPreviewResubmissionResponseNodesToResubmitFeatureIDVerification SessionsPreviewResubmissionResponseNodesToResubmitFeature = "ID_VERIFICATION" SessionsPreviewResubmissionResponseNodesToResubmitFeaturePOA SessionsPreviewResubmissionResponseNodesToResubmitFeature = "POA" SessionsPreviewResubmissionResponseNodesToResubmitFeaturePhone SessionsPreviewResubmissionResponseNodesToResubmitFeature = "PHONE" SessionsPreviewResubmissionResponseNodesToResubmitFeatureEmail SessionsPreviewResubmissionResponseNodesToResubmitFeature = "EMAIL" SessionsPreviewResubmissionResponseNodesToResubmitFeatureKYBRegistry SessionsPreviewResubmissionResponseNodesToResubmitFeature = "KYB_REGISTRY" SessionsPreviewResubmissionResponseNodesToResubmitFeatureKYBKeyPeople SessionsPreviewResubmissionResponseNodesToResubmitFeature = "KYB_KEY_PEOPLE" SessionsPreviewResubmissionResponseNodesToResubmitFeatureKYB SessionsPreviewResubmissionResponseNodesToResubmitFeature = "KYB" )
Known values of SessionsPreviewResubmissionResponseNodesToResubmitFeature.
type SessionsPreviewResubmissionResponseNotSentReason ¶
type SessionsPreviewResubmissionResponseNotSentReason string
SessionsPreviewResubmissionResponseNotSentReason: Why confirming would send no email, or `null` when it will be sent. `no_user_action`: every selected step runs without the person, so the resubmission finishes on its own and no email goes out. `no_recipient`: no address is known for the person and you passed none. `sandbox`: a sandbox session whose recipient has not opted into sandbox email delivery, so the send is only simulated.
SessionsPreviewResubmissionResponseNotSentReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewResubmissionResponseNotSentReasonNoUserAction SessionsPreviewResubmissionResponseNotSentReason = "no_user_action" SessionsPreviewResubmissionResponseNotSentReasonNoRecipient SessionsPreviewResubmissionResponseNotSentReason = "no_recipient" SessionsPreviewResubmissionResponseNotSentReasonSandbox SessionsPreviewResubmissionResponseNotSentReason = "sandbox" )
Known values of SessionsPreviewResubmissionResponseNotSentReason.
type SessionsPreviewResubmissionResponseRecipientSource ¶
type SessionsPreviewResubmissionResponseRecipientSource string
SessionsPreviewResubmissionResponseRecipientSource: Where `recipient` comes from. `request`: the `email_address` you passed. `email_verification`: the address the person verified in an email verification step of the flow. `contact_details`: the address given in `contact_details` when the session was created. An empty string when there is no address.
SessionsPreviewResubmissionResponseRecipientSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewResubmissionResponseRecipientSourceEmailVerification SessionsPreviewResubmissionResponseRecipientSource = "email_verification" SessionsPreviewResubmissionResponseRecipientSourceContactDetails SessionsPreviewResubmissionResponseRecipientSource = "contact_details" SessionsPreviewResubmissionResponseRecipientSourceRequest SessionsPreviewResubmissionResponseRecipientSource = "request" SessionsPreviewResubmissionResponseRecipientSourceEmpty SessionsPreviewResubmissionResponseRecipientSource = "" )
Known values of SessionsPreviewResubmissionResponseRecipientSource.
type SessionsPreviewResubmissionResponseSenderKind ¶
type SessionsPreviewResubmissionResponseSenderKind string
SessionsPreviewResubmissionResponseSenderKind: `customer`: the email goes out from your application's verified sender domain (white label). `didit`: it goes out from Didit's own sender.
SessionsPreviewResubmissionResponseSenderKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsPreviewResubmissionResponseSenderKindCustomer SessionsPreviewResubmissionResponseSenderKind = "customer" SessionsPreviewResubmissionResponseSenderKindDidit SessionsPreviewResubmissionResponseSenderKind = "didit" )
Known values of SessionsPreviewResubmissionResponseSenderKind.
type SessionsRetrieveDecisionParams ¶
type SessionsRetrieveDecisionParams struct {
// Comma-separated list of extra payload sections. Supported values: `events`
// and `resubmissions`, alone or together (`events,resubmissions`). When
// `include=events` is passed, the response additionally contains the session
// event timeline (`events`, including the `WORKFLOW_BRANCH_EVALUATED` /
// `WORKFLOW_STATUS_NODE_REACHED` routing events described on the Retrieve
// Session page), the full activity log (`activity_reviews`), blocklist flags
// (`blocklisted`), a per-session `cost_breakdown`, workflow metadata
// (`workflow_type`, `workflow_version`, `workflow_version_id`, and
// `workflow_terminal_node_id` - the last recorded workflow status node that set
// a session status, or `null` if none has been recorded; historical provenance
// that is not cleared by manual approvals, declines or resubmissions, and is
// replaced by a later workflow status node), and session metadata
// (`api_service` - string or `null`, set only for standalone-API sessions;
// `session_type` - `API`, `HOSTED`, or `MIGRATED`; `has_device_nfc_support` -
// boolean). Two fields change relative to the plain shape: the top-level
// `session_kind` discriminator is **omitted** (the events shape only exists for
// user sessions), and the `features` array switches from plain strings to
// `{feature, node_id}` objects - where the email feature is reported as `EMAIL`
// instead of `EMAIL_VERIFICATION`. This expanded shape is primarily used by the
// Didit Console; most API integrations should omit the parameter. **KYB
// limitation:** `include=events` only applies to user (KYC) sessions. Business
// sessions (`session_kind = "business"`) always return the standard business
// decision shape - `events`, `activity_reviews`, `blocklisted`,
// `cost_breakdown` and the extra `workflow_*`/session metadata are never
// returned for business sessions, and their `features` array stays a plain
// string array. With `include=resubmissions` (user and business sessions alike)
// the response also contains `resubmissions`: one entry per resubmission
// request, oldest first, each with `number`, `created_at`, `previous_status`,
// `nodes`, `reasons`, `requested_by` and `results` (what the resubmitted steps
// returned before the request, under the same keys and in the same shape as the
// current results). Each `cost_breakdown` item carries `usage_type`, `price`,
// `details` and `created_at`: a resubmitted step that runs again is billed as a
// new item.
Include Opt[SessionsRetrieveDecisionParamsInclude] `json:"-" query:"include"`
}
SessionsRetrieveDecisionParams holds the parameters of Client.Sessions.RetrieveDecision.
func (SessionsRetrieveDecisionParams) MarshalJSON ¶
func (r SessionsRetrieveDecisionParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsRetrieveDecisionParamsInclude ¶
type SessionsRetrieveDecisionParamsInclude string
SessionsRetrieveDecisionParamsInclude is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsRetrieveDecisionParamsIncludeEvents SessionsRetrieveDecisionParamsInclude = "events" SessionsRetrieveDecisionParamsIncludeResubmissions SessionsRetrieveDecisionParamsInclude = "resubmissions" SessionsRetrieveDecisionParamsIncludeEventsResubmissions SessionsRetrieveDecisionParamsInclude = "events,resubmissions" )
Known values of SessionsRetrieveDecisionParamsInclude.
type SessionsReviewsCreateParams ¶
type SessionsReviewsCreateParams struct {
// Optional status label to record on the entry. Accepts any session status
// value, case-sensitive (`"approved"` is rejected with `400`). Recording a
// status here does **not** change the session's actual status - use the
// update-status endpoint for that.
NewStatus Opt[SessionsReviewsCreateParamsNewStatus] `json:"new_status"`
// Optional free-text note (no enforced length limit). Stored verbatim; `@email`
// mentions are not processed on this endpoint.
Comment Opt[string] `json:"comment"`
}
SessionsReviewsCreateParams holds the parameters of Client.Sessions.Reviews.Create.
func (SessionsReviewsCreateParams) MarshalJSON ¶
func (r SessionsReviewsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsReviewsCreateParamsNewStatus ¶
type SessionsReviewsCreateParamsNewStatus string
SessionsReviewsCreateParamsNewStatus: Optional status label to record on the entry. Accepts any session status value, case-sensitive (`"approved"` is rejected with `400`). Recording a status here does **not** change the session's actual status - use the update-status endpoint for that.
SessionsReviewsCreateParamsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsReviewsCreateParamsNewStatusNotStarted SessionsReviewsCreateParamsNewStatus = "Not Started" SessionsReviewsCreateParamsNewStatusInProgress SessionsReviewsCreateParamsNewStatus = "In Progress" SessionsReviewsCreateParamsNewStatusApproved SessionsReviewsCreateParamsNewStatus = "Approved" SessionsReviewsCreateParamsNewStatusDeclined SessionsReviewsCreateParamsNewStatus = "Declined" SessionsReviewsCreateParamsNewStatusInReview SessionsReviewsCreateParamsNewStatus = "In Review" SessionsReviewsCreateParamsNewStatusExpired SessionsReviewsCreateParamsNewStatus = "Expired" SessionsReviewsCreateParamsNewStatusAbandoned SessionsReviewsCreateParamsNewStatus = "Abandoned" SessionsReviewsCreateParamsNewStatusKYCExpired SessionsReviewsCreateParamsNewStatus = "Kyc Expired" SessionsReviewsCreateParamsNewStatusResubmitted SessionsReviewsCreateParamsNewStatus = "Resubmitted" SessionsReviewsCreateParamsNewStatusAwaitingUser SessionsReviewsCreateParamsNewStatus = "Awaiting User" )
Known values of SessionsReviewsCreateParamsNewStatus.
type SessionsReviewsCreateResponse ¶
type SessionsReviewsCreateResponse struct {
// Display name of the entry's author. Always `"Unknown"` for entries created
// through this endpoint, because it records no actor attribution.
User string `json:"user"`
// The status label recorded on the entry, or `null` if none was sent. The
// session's actual status is not affected.
NewStatus SessionsReviewsCreateResponseNewStatus `json:"new_status"`
// The note recorded on the entry, or `null` if none was sent.
Comment string `json:"comment"`
// When the entry was written, ISO 8601 UTC.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsReviewsCreateResponse is a response object.
func (*SessionsReviewsCreateResponse) UnmarshalJSON ¶
func (r *SessionsReviewsCreateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsReviewsCreateResponse leniently.
type SessionsReviewsCreateResponseNewStatus ¶
type SessionsReviewsCreateResponseNewStatus string
SessionsReviewsCreateResponseNewStatus: The status label recorded on the entry, or `null` if none was sent. The session's actual status is not affected.
SessionsReviewsCreateResponseNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsReviewsCreateResponseNewStatusNotStarted SessionsReviewsCreateResponseNewStatus = "Not Started" SessionsReviewsCreateResponseNewStatusInProgress SessionsReviewsCreateResponseNewStatus = "In Progress" SessionsReviewsCreateResponseNewStatusApproved SessionsReviewsCreateResponseNewStatus = "Approved" SessionsReviewsCreateResponseNewStatusDeclined SessionsReviewsCreateResponseNewStatus = "Declined" SessionsReviewsCreateResponseNewStatusInReview SessionsReviewsCreateResponseNewStatus = "In Review" SessionsReviewsCreateResponseNewStatusExpired SessionsReviewsCreateResponseNewStatus = "Expired" SessionsReviewsCreateResponseNewStatusAbandoned SessionsReviewsCreateResponseNewStatus = "Abandoned" SessionsReviewsCreateResponseNewStatusKYCExpired SessionsReviewsCreateResponseNewStatus = "Kyc Expired" SessionsReviewsCreateResponseNewStatusResubmitted SessionsReviewsCreateResponseNewStatus = "Resubmitted" SessionsReviewsCreateResponseNewStatusAwaitingUser SessionsReviewsCreateResponseNewStatus = "Awaiting User" )
Known values of SessionsReviewsCreateResponseNewStatus.
type SessionsReviewsListParams ¶
type SessionsReviewsListParams struct {
// Page size. Defaults to `50`.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of entries to skip from the start of the (ordered) feed. Defaults to
// `0`. The `next` / `previous` URLs in the response carry the right values for
// walking the feed.
Offset Opt[int64] `json:"-" query:"offset"`
// Sort order. The feed defaults to newest first (`-created_at`); pass
// `created_at` to read it oldest first. Unknown values are silently ignored
// (default order is used); other serializer field names are also accepted.
Ordering Opt[string] `json:"-" query:"ordering"`
}
SessionsReviewsListParams holds the parameters of Client.Sessions.Reviews.List.
func (SessionsReviewsListParams) MarshalJSON ¶
func (r SessionsReviewsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsReviewsService ¶
type SessionsReviewsService struct {
// contains filtered or unexported fields
}
SessionsReviewsService holds the sessions reviews operations. Use it through Client.Sessions.Reviews.
func (*SessionsReviewsService) Create ¶
func (r *SessionsReviewsService) Create(ctx context.Context, sessionID string, params SessionsReviewsCreateParams, opts ...option.RequestOption) (*SessionsReviewsCreateResponse, error)
Create: Add a review note to a session's audit trail.
Append a note to a User Verification (KYC) session's review / activity feed. **This endpoint only records an entry - it never changes the session.** The session's `status` is left untouched, no status-transition validation runs, and no webhook fires. To actually approve, decline, or re-open a session (which also writes a fully-attributed `STATUS_UPDATED` entry to this feed), use `PATCH /v3/session/{session_id}/update-status/` instead.
Both body fields are optional and an empty JSON object is accepted. `new_status` is stored purely as a label on the entry and accepts any of the ten session status values (case-sensitive). `@email` mentions inside `comment` are stored as plain text only - they trigger no notifications on this endpoint, and the entry's `mentioned_emails` stays empty.
Note on attribution: entries created here carry no actor information. In the feed they show `actor_display: "Unknown"`, `actor_type: "CONSOLE_USER"`, and `activity_type: "STATUS_UPDATED"` (storage defaults), and the `201` body's `user` field is `"Unknown"`.
POST /v3/sessions/{session_id}/reviews/
func (*SessionsReviewsService) List ¶
func (r *SessionsReviewsService) List(ctx context.Context, sessionID string, params SessionsReviewsListParams, opts ...option.RequestOption) (*Page[ReviewItem], error)
List: List session reviews and activity log.
Return the audit trail / activity feed for a User Verification (KYC) session, newest first, in a paginated envelope (`count` / `next` / `previous` / `results`, 50 entries per page by default).
Feed entries are written by every actor that touches the session: manual decisions made through `PATCH /v3/session/{session_id}/update-status/` (which records `previous_status` → `new_status`), Console reviewer activity (comments with `@email` mentions, KYC/POA data edits, file uploads/removals, tag changes, detail-page views), AML ongoing-monitoring matches, and notes appended via `POST` on this same path. Reading this feed is the API-side equivalent of the **Activity** panel in the Didit Console session view.
Only User Verification (KYC) sessions are addressable here; Business Verification (KYB) session IDs return `404`.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/sessions/{session_id}/reviews/
func (*SessionsReviewsService) ListAutoPaging ¶
func (r *SessionsReviewsService) ListAutoPaging(ctx context.Context, sessionID string, params SessionsReviewsListParams, opts ...option.RequestOption) *PageIterator[ReviewItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type SessionsService ¶
type SessionsService struct {
Imports *SessionsImportsService
Reviews *SessionsReviewsService
Signatures *SessionsSignaturesService
Webhooks *SessionsWebhooksService
// contains filtered or unexported fields
}
SessionsService holds the sessions operations. Use it through Client.Sessions.
func (*SessionsService) AddImages ¶
func (r *SessionsService) AddImages(ctx context.Context, sessionID string, params SessionsAddImagesParams, opts ...option.RequestOption) (*SessionsAddImagesResponse, error)
AddImages: Add an image to a session.
Attach one extra image or PDF to the ID verification (`model_type=kyc`) or Proof of Address (`model_type=poa`) result of a finished User Verification (KYC) session, for example evidence collected outside the flow. The session must be `Approved`, `Declined`, `In Review` or `Kyc Expired` and carry the result named by `model_type`; Business Verification (KYB) sessions are not supported. Each call appends one file (to the most recent result when the step ran more than once), keeps the existing files and records a `FILE_ADDED` entry in the session activity log; the upload sends no webhook and does not change the session status. The file is compressed on upload and is returned in `extra_files` of the session decision. This endpoint is limited to 10 requests per minute per API key. A scoped API key needs `sessions: write`, and without `media: read` it receives the `extra_files` links as `null`.
PATCH /v3/session/{sessionId}/add-images/
func (*SessionsService) BatchDelete ¶
func (r *SessionsService) BatchDelete(ctx context.Context, params SessionsBatchDeleteParams, opts ...option.RequestOption) (*SessionsBatchDeleteResponse, error)
BatchDelete: Bulk delete KYC sessions by session_number.
Bulk delete User Verification (KYC) sessions by their numeric `session_number`, or every KYC session in your application with `delete_all: true`.
`session_number` is the human-friendly incrementing counter shown in the Console session list and returned as `session_number` by the create-session and decision endpoints; it is **not** the `session_id` UUID. To delete a session by UUID, or to delete a Business Verification (KYB) session, which this endpoint never touches, use `DELETE /v3/session/{sessionId}/delete/` instead.
**Up to 20 sessions are deleted in the request, more run as a job.** The number of matching sessions decides, whether they are selected by `session_numbers` or with `delete_all`:
- Up to 20 matching sessions: they are deleted before the response, which is `200` with one entry per session in `results[]`.
- More than 20: the response is `202` with a deletion job, and the sessions are deleted in the background. Poll `GET /v3/sessions/delete/{job_id}/` until `status` is `COMPLETED` or `FAILED`. A job reports counts per outcome, never which sessions it deleted. A `delete_all` job deletes only the sessions created before the request; sessions started while it runs are not deleted.
Each deleted session gets exactly the same treatment as the single-session delete endpoint: the session, every verification attempt it holds, its decision and extracted data, its related feature records (ID verification, face, liveness, face match, and so on) and all of its stored files are deleted, it disappears from every read endpoint, and previously issued media URLs stop resolving. Webhook deliveries still queued for a deleted session, and their retries, are dropped; webhooks already delivered are not affected. Blocklist entries are **not** removed, credits already consumed are **not** refunded, and the parent User entities are **not** deleted (use `POST /v3/users/delete/` for those); no webhook is emitted for the deletion. Deletion is permanent and irreversible.
**Selection semantics:**
- With `delete_all: true` you can narrow the selection with the filters of `GET /v3/sessions/`, each prefixed with `filter_` (for example `filter_status`, `filter_workflow_id`, `filter_date_from`). Filters that take several values in List Sessions (`status`, `workflow_id`, `country`, `region`, `document_type`, `document_name`, `session_type`, `warning`, `organization_name`) accept a comma-separated string or an array; the others take one value. An empty value is ignored. Filters apply only together with `delete_all`, and a deletion job applies the same filters.
- An unknown `filter_*` key, or a filter value that cannot be read, rejects the whole request with `400` before anything is deleted, so a mistyped filter never widens the deletion to every session.
- Entries in `session_numbers` that do not match a live KYC session in your application (unknown numbers, already-deleted sessions, or sessions owned by another application) are **silently skipped**: they do not appear in `results` and are not counted in a job's `total`.
- Validation failures (a non-numeric entry, an empty list, neither `session_numbers` nor `delete_all` provided, or a template retention the application cannot honour) reject the **whole request** with `400` and delete nothing.
- Sessions are deleted in groups. If a group cannot be deleted (for example because a storage service is unavailable), every session in that group is reported as `face_retention_outcome: failed_retryable` and stays in place; the other groups are unaffected. Repeat the request for those sessions. A job retries such a group by itself.
- There is no documented cap on the list length; the shared write rate limit (below) is the practical bound.
**Face biometric data:** the optional `retain_face_embeddings`, `face_retention_days`, `face_retention_deadline`, `deletion_instruction`, and `instruction_id` fields have the same meaning as on `DELETE /v3/session/{sessionId}/delete/` and apply to every matched session. Each result reports its own `face_retention_outcome`.
**Response:** `200 OK` with `results[]` for up to 20 matching sessions, or `202 Accepted` with a deletion job for more. Every result confirms deletion except `face_retention_outcome: failed_retryable`, which reports a session that was NOT deleted and should be retried. Earlier versions of this endpoint returned `204 No Content`; update clients that assert on `204`.
**Idempotency:** repeating the same request deletes nothing more: numbers that no longer match a session are skipped.
**`delete_all: true` (destructive):** deletes **every** remaining KYC session in the application; `session_numbers` is ignored when set. There is no confirmation step and no undo.
**Authentication:** API key in the `x-api-key` header. Missing or invalid credentials return `403` (`{"detail": "You do not have permission to perform this action."}`); this API never returns `401`.
**Rate limit:** shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
This endpoint accepts API keys only. Business Console user Bearer tokens are rejected with `403` (unlike the single-session delete, which accepts both).
POST /v3/sessions/delete/
func (*SessionsService) BulkUpdateAMLHitStatus ¶
func (r *SessionsService) BulkUpdateAMLHitStatus(ctx context.Context, sessionID string, params SessionsBulkUpdateAMLHitStatusParams, opts ...option.RequestOption) (*SessionsBulkUpdateAMLHitStatusResponse, error)
BulkUpdateAMLHitStatus: Bulk update AML hit review statuses.
Update the review status of **multiple AML hits** in one call. Provide `hit_updates`, a list of `{ hit_id, review_status }` pairs. `review_status` is one of `Unreviewed`, `Confirmed Match`, `False Positive`, or `Inconclusive`.
The update is all-or-nothing: if any `hit_id` is not found in the AML check, the request returns `404` and no hit is changed. A successful call fires a single `data.updated` webhook and records one activity entry covering all changes. For graph workflows with multiple AML checks, pass `node_id` to target a specific check.
Authenticate with your API key (`x-api-key`) or a user authorization header - either must carry the `write:sessions` privilege.
PATCH /v3/session/{sessionId}/bulk-update-aml-hit-status/
func (*SessionsService) CancelFeatureOverride ¶
func (r *SessionsService) CancelFeatureOverride(ctx context.Context, sessionID string, overrideID string, opts ...option.RequestOption) (*FeatureStatusOverride, error)
CancelFeatureOverride: Cancel a check override that waits for the flow to finish.
Cancel an override of a feature (step) status that is still `pending_until_flow_finishes`, so it never applies. The check keeps its status, the cancellation is recorded in the session's activity as `FEATURE_OVERRIDE_CANCELLED`, and no webhook is sent. The response is the override with `state: cancelled` and `cancel_reason: cancelled_by_reviewer`.
An override that already applied or was cancelled returns `409` with the code `feature_override_not_pending`. Find override IDs with `GET /v3/session/{sessionId}/features/overrides/` or in the `override` returned by the feature status update.
Requires the `write:sessions` privilege; a scoped API key needs write access to decisions.
POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/
func (*SessionsService) Create ¶
func (r *SessionsService) Create(ctx context.Context, params SessionsCreateParams, opts ...option.RequestOption) (*SessionsCreateResponse, error)
Create: Create a verification session.
Create a User Verification (KYC) or Business Verification (KYB) session and receive a hosted verification `url` plus a `session_token` to redirect or embed for your end user. The `workflow_id` selects which verification steps run and whether the session is KYC or KYB.
Call this from your backend (never the browser - the API key is a secret) whenever a user or business needs to be verified: at signup, before a sensitive action, or when re-verification is required. Prerequisites: a published workflow (created in the Console [Workflows](https://docs.didit.me/console/workflows) page) and an application API key with available credits. Sandbox applications bypass the credit check.
**Idempotency:** when `vendor_data` is provided and an unfinished session (`Not Started`, `In Progress`, `Resubmitted`, or `Awaiting User`) with the same `vendor_data` already exists on the workflow's **current latest published version** (and that session already has a hosted verification URL), the existing session is returned (still `201`) instead of creating a duplicate - with its `callback` and `metadata` updated to the newly provided values. An unfinished session created on an older version of the workflow (one that has since been republished) is **not** reused; a new session pinned to the latest published version is created instead. Sessions in `Approved`, `Declined`, `In Review`, `Expired`, `Abandoned`, or `Kyc Expired` are never reused.
**Side effects:** the hosted verification URL is generated and stored; if `contact_details.send_notification_emails` is `true` and an email is provided, a verification invite email is sent. The session expires after the workflow's configured session expiration time. For KYB workflows, `contact_details.phone` and `expected_details` are ignored.
POST /v3/session/
func (*SessionsService) Delete ¶
func (r *SessionsService) Delete(ctx context.Context, sessionID string, params SessionsDeleteParams, opts ...option.RequestOption) (*SessionsDeleteResponse, error)
Delete: Delete a verification session (KYC or KYB).
Delete a single verification session, User Verification (KYC) or Business Verification (KYB), by its `session_id`. The id is resolved against KYC sessions first, then KYB sessions, so both kinds are deleted through this one URL.
**What is deleted:**
- The session and every verification attempt it holds, including results that a resubmission replaced: the decision, extracted data, all related feature records (ID verification, face, liveness, face match, AML, registry checks, IP analysis, and so on), its reviews and its activity log.
- All stored files owned by the session: document front/back photos (full, cropped, and privacy-blurred variants), document-capture videos, portrait crops, NFC chip portrait and signature images, face reference images, liveness videos, face-match source/target images, Proof of Address documents, and any extra uploaded files (KYC); uploaded company documents and extra files (KYB). Electronic Signature documents, signed PDFs, evidence PDFs and signature images (KYC and KYB): their download paths stop working. Previously issued media URLs (`https://<media-host>/...`) stop resolving.
- The session's face data. Its face embedding is deleted too, unless you choose to keep an image-free template (see **Face biometric data**).
- Webhook deliveries still queued for the session, and their retries. Webhooks already delivered are not affected.
- For a Business Verification (KYB) session: the verifications it created for its key people (KYC) and its corporate owners (KYB), recursively, reported as `deleted_child_verifications`. A verification it only links to, such as an existing approved KYC it reused, is not deleted.
The session disappears from every read endpoint immediately: `GET /v3/session/{sessionId}/decision/` returns `404` and `GET /v3/sessions/` stops listing it. Ongoing AML monitoring and KYB registry monitoring started by the deleted verifications stop.
**What is not affected:** blocklist entries created from this session (face or document) are **not** removed; manage those with the blocklist endpoints. Share tokens issued for the session are not revoked, but there is nothing left for them to import: an import with one returns `400` with `{"share_token": ["Original session does not exist."]}`. Credits already consumed are **not** refunded. The parent User or Business entity is **not** deleted; use `POST /v3/users/delete/` or `POST /v3/businesses/delete/` for those. If the User's profile portrait came from this session, the portrait is removed with it.
**Face biometric data:** by default the session's face embedding is deleted with the session (`face_retention_outcome: deleted`). An application that opted in to biometric-template retention (`face_retention_policy: retain_until_user_deleted` on `PATCH /v3/webhook/`), or a request with `retain_face_embeddings: true`, keeps one separately managed, image-free face biometric template anchored to the session's User (`retained_with_user`) so that duplicate detection, Face Search, and biometric authentication keep working. The template never contains the face image, media, identity fields, the decision, or the deleted session's id; it is biometric data deleted at `biometric_template_expires_at`, or earlier on User deletion, privacy erasure, or an explicit purge through `/v3/biometric-templates/`. A session without a linked User cannot retain a template (`ineligible_no_vendor_user`). Send `deletion_instruction: privacy_erasure` for data-subject requests: it purges every retained template for that User and never retains a new one.
**Irreversible:** deletion is permanent and there is no restore endpoint. Export anything you need (for example a decision PDF) before you call it.
**Side effects:** no webhook is emitted for deletions.
**Response:** `200 OK` once the deletion has completed, with a JSON body reporting the `face_retention_outcome`, the retained template's expiry and, for a KYB session, `deleted_child_verifications`. Earlier versions of this endpoint returned `204 No Content`; update clients that assert on `204`. Keep your `instruction_id` in your own erasure log.
**Idempotency:** not idempotent at the HTTP level: the first call returns `200`; repeating it returns `404` because the session no longer resolves. After a `503` the session is still in place; repeat the same request to finish deleting it.
**Authentication:** send your application's API key in the `x-api-key` header; the session must belong to that application. Console user access tokens (`Authorization: Bearer ...`) may also call this endpoint when they carry the `delete:sessions` permission. Authentication and permission failures both return `403`; this API never returns `401`.
**Rate limit:** shared write budget of 300 requests/min per API key across all POST/PATCH/DELETE endpoints; exceeding it returns `429`.
To bulk-delete KYC sessions by their numeric `session_number`, use `POST /v3/sessions/delete/` instead.
DELETE /v3/session/{sessionId}/delete/
func (*SessionsService) ExportAMLScreeningHistory ¶
func (r *SessionsService) ExportAMLScreeningHistory(ctx context.Context, sessionID string, params SessionsExportAMLScreeningHistoryParams, opts ...option.RequestOption) (*http.Response, error)
ExportAMLScreeningHistory: Export AML screening history as CSV.
Download the same ongoing-monitoring history as `GET /v3/session/{sessionId}/aml-screening-history/` as a CSV file, one line per completed re-screen, newest first, ready to hand to an auditor. The file is streamed whole (no pagination) and starts with a header line; an empty cell means unknown, dataset dates are never estimated, and a value that would start a spreadsheet formula is prefixed with an apostrophe. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Errors are returned as JSON, not CSV. A scoped API key needs `decisions: read` and `media: read`: the response is a file, so a key without `media: read` gets `403`.
The response is a file (text/csv). Read it from the returned response's body and close it.
GET /v3/session/{sessionId}/aml-screening-history/export/
func (*SessionsService) GeneratePDF ¶
func (r *SessionsService) GeneratePDF(ctx context.Context, sessionID string, opts ...option.RequestOption) (*http.Response, error)
GeneratePDF: Download a PDF report for a verification session.
Render and download a compliance-ready PDF report for a finished verification session. The same path serves both User Verification (KYC) and Business Verification (KYB) sessions - the server resolves the `sessionId` against both session types and picks the matching report template.
**Eligible statuses.** The session must already carry a final or reviewable status:
- KYC sessions: `Approved`, `Declined`, `In Review`, or `Kyc Expired`.
- KYB sessions: `Approved`, `Declined`, or `In Review`.
Any other status (`Not Started`, `In Progress`, `Expired`, `Abandoned`, …) returns `403` with an explanatory `detail` string - see the `403` response below.
**What the report contains.** The PDF mirrors the console session view at the moment of the request:
- **KYC** - rolled-up session status, the warnings list, and one section per executed feature: ID Verification (document images plus extracted fields), NFC, Liveness, Face Match, Email Verification, Phone Verification, Proof of Address, Questionnaire answers, Database Validation, AML Screening, and IP Analysis - followed by session tags, console review activity (comments and status changes), and the session event timeline.
- **KYB** - registry checks (company data), AML screenings, business document verifications, key-people checks, questionnaire responses, phone/email verifications, IP analyses, and the session event timeline, followed by tags and review activity.
**Branding.** If your application has white-label customization, the report is rendered with your logo and links to your privacy-policy URL; otherwise it carries Didit branding. Reports are rendered in English - there is no language parameter.
**No caching.** Every call re-renders the PDF from the current session data, so a report generated after a manual review reflects the reviewer’s decision. Two calls for the same session can produce byte-different files - archive the downloaded file if you need an immutable copy.
**Latency.** Rendering downloads every stored image (document sides, selfies, extra files) before composing the PDF, so media-heavy sessions can take several seconds. Use a generous client read timeout (60 s recommended) and stream the body to disk.
**Trailing slash.** The canonical route ends with a trailing slash (`…/generate-pdf/`). A request without it is served directly with the same response - there is no `301` redirect, so no client has to follow redirects and `curl` does not need `-L`. Use the slashed URL as in the samples.
If you need the underlying data as JSON instead of a rendered report, use `GET /v3/session/{sessionId}/decision/`. For every reportable session of one user in a single document, use `GET /v3/users/{vendor_data}/generate-pdf/`.
The response is a file (application/pdf). Read it from the returned response's body and close it.
GET /v3/session/{sessionId}/generate-pdf/
func (*SessionsService) ImportShared ¶
func (r *SessionsService) ImportShared(ctx context.Context, params SessionsImportSharedParams, opts ...option.RequestOption) (*SessionDecision, error)
ImportShared: Redeem a share token to clone a verification session into your application.
Redeem a share token to clone a KYC or KYB session into the calling application with a fresh `session_id`. Not idempotent - a token redeems once per receiver.
POST /v3/session/import-shared/
func (*SessionsService) List ¶
func (r *SessionsService) List(ctx context.Context, params SessionsListParams, opts ...option.RequestOption) (*Page[SessionsListResponseResults], error)
List: List verification sessions (KYC and/or KYB) with filters and pagination.
Returns a paginated list of verification sessions for the application identified by your API key, newest first (descending `session_number`).
**Canonical URL:** the route is `/v3/sessions/` (trailing slash). Requests to `/v3/sessions` without the slash receive a `301` redirect to the slashed URL with the query string preserved; most HTTP clients follow it transparently on GET.
**When to use this endpoint vs webhooks.** Use this endpoint for dashboards, back-office search, reconciliation, and batch exports. Do not poll it to track the progress of individual verifications - configure [webhooks](/integration/webhooks) instead, which push `status.updated` events the moment a session changes. For one session's full result, call `GET /v3/session/{sessionId}/decision/`.
**KYC and KYB sessions.** `session_kind` selects which kinds are listed:
- `user` (default) - User Verification (KYC) sessions only. Backward-compatible behavior.
- `business` - Business Verification (KYB) sessions only. Rows have a different, smaller shape (see the response schema).
- `all` - both kinds in one response: the KYC page and the KYB page for the same `limit`/`offset` are concatenated in `results` (KYC rows first), so a page can contain up to `2 x limit` rows. `count` is the sum of both kinds and `next`/`previous` reflect the KYC-side pagination. For strict pagination of mixed data, call `user` and `business` separately.
Every row carries a `session_kind` discriminator (`"user"` or `"business"`).
**Pagination.** Standard limit/offset: `limit` (default 50) and `offset` (default 0), with `next`/`previous` ready-made page URLs. For KYC rows `count` is exact. For KYB rows `count` is computed with a bounded scan and is capped at 100 - when there are more than 100 matches it stays at 100, so iterate using `next` (or by checking whether a full page came back) rather than computing total pages from `count`.
**Filter semantics.** All filters combine with AND and apply to KYC rows. When `session_kind` is `business` or `all`, the KYB side honors the shared parameters `vendor_data`, `status`, `workflow_id`, `country` (registry-company country code), `date_from`, `date_to`, `search` (company name, registration number - type registration numbers without separators, e.g. `DPC001` not `DPC-001` - vendor_data, session number, or session UUID), `warning`, and `organization_name`; the remaining KYC-only filters are ignored for KYB rows. Comma-separated parameters (`status`, `country`, `document_type`, `region`, `workflow_id`, `document_name`, `warning`, `organization_name`, `session_type`) match any of the listed values (OR within the parameter). `vendor_data` is an exact match - use `search` for partial matching. Unknown values in list filters simply return no rows (no error); malformed typed values (`date_from`, `date_to`, `didit_internal_id`, `api_service`, `session_kind`) return `400` with a per-field error object.
**Search.** `search` adapts to the input: a full UUID looks up `session_id`; digits (with optional `+ - . space`) match session-number prefix, document/personal numbers, phone-number prefix, or `vendor_data`; values containing `@` match email prefixes; any other text matches names (accent-insensitive) and `vendor_data`.
No fixed per-endpoint rate limit is enforced, but keep list polling infrequent and rely on webhooks for real-time updates.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/sessions/
func (*SessionsService) ListAMLScreeningHistory ¶
func (r *SessionsService) ListAMLScreeningHistory(ctx context.Context, sessionID string, params SessionsListAMLScreeningHistoryParams, opts ...option.RequestOption) (*Page[AMLScreeningRun], error)
ListAMLScreeningHistory: List AML screening history.
List every completed ongoing-monitoring re-screen of a session's AML check, newest first by `completed_at`, including the runs where nothing changed: alerts, activity entries and webhooks fire only when a result moves, so this history is the evidence that a clean subject was still being screened. Works for KYC and KYB session IDs; pass `node_id` when the session ran more than one AML step. Only ongoing-monitoring re-screens are listed (the first screening is part of the session decision) and runs from before this history existed are not reconstructed, so a session without ongoing monitoring returns an empty list. `count` is exact up to 100 and capped at 100 above that, so follow `next` until it is `null`. A scoped API key needs `decisions: read`; see [Continuous AML monitoring](https://docs.didit.me/core-technology/aml-screening/continuous-monitoring-aml-screening).
It returns one page; ListAMLScreeningHistoryAutoPaging iterates over every item of every page.
GET /v3/session/{sessionId}/aml-screening-history/
func (*SessionsService) ListAMLScreeningHistoryAutoPaging ¶
func (r *SessionsService) ListAMLScreeningHistoryAutoPaging(ctx context.Context, sessionID string, params SessionsListAMLScreeningHistoryParams, opts ...option.RequestOption) *PageIterator[AMLScreeningRun]
ListAMLScreeningHistoryAutoPaging iterates over every item of every page of ListAMLScreeningHistory, fetching pages as needed.
func (*SessionsService) ListAutoPaging ¶
func (r *SessionsService) ListAutoPaging(ctx context.Context, params SessionsListParams, opts ...option.RequestOption) *PageIterator[SessionsListResponseResults]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*SessionsService) ListEvents ¶
func (r *SessionsService) ListEvents(ctx context.Context, sessionID string, params SessionsListEventsParams, opts ...option.RequestOption) (*Page[SessionEvent], error)
ListEvents: List session events.
Read the event timeline of one verification session, newest first by `sent_at`: the screens the user saw, buttons and uploads, failed attempts, status and feature-step changes, and the workflow routing trace. Works for User Verification (KYC) and Business Verification (KYB) session IDs. Events are stored asynchronously, so a new event can take a few seconds to appear. Results are paginated with `limit` and `offset`; follow `next` until it is `null`. A scoped API key needs `sessions: read` and `decisions: read`, and without `media: read` it receives `file_url` as `null`. The routing events are described in [Retrieve session](https://docs.didit.me/sessions-api/retrieve-session).
It returns one page; ListEventsAutoPaging iterates over every item of every page.
GET /v3/session/{sessionId}/events/
func (*SessionsService) ListEventsAutoPaging ¶
func (r *SessionsService) ListEventsAutoPaging(ctx context.Context, sessionID string, params SessionsListEventsParams, opts ...option.RequestOption) *PageIterator[SessionEvent]
ListEventsAutoPaging iterates over every item of every page of ListEvents, fetching pages as needed.
func (*SessionsService) ListFeatureOverrides ¶
func (r *SessionsService) ListFeatureOverrides(ctx context.Context, sessionID string, opts ...option.RequestOption) (*SessionsListFeatureOverridesResponse, error)
ListFeatureOverrides: List a session's check overrides.
Every override of an individual feature (step) status on a User Verification (KYC) or Business Verification (KYB) session, newest first and not paginated: applied ones, ones waiting for the person to finish the flow (`pending_until_flow_finishes`) and cancelled ones, each with who asked, their reason, and whether it applied while the person was still in the flow (`forced`).
`person_in_flow` tells you whether a new override with `defer_until_flow_finishes: true` would wait. `flow_finished_at` is when the person last finished the flow; it is `null` while they are still in it (a resubmission included) and when the session closed before they finished.
Requires the `read:sessions` privilege; a scoped API key needs read access to decisions.
GET /v3/session/{sessionId}/features/overrides/
func (*SessionsService) ListNetworks ¶
func (r *SessionsService) ListNetworks(ctx context.Context, sessionID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListNetworks: List networks for a session.
List the networks the session's vendor user belongs to. Resolves through the session's vendor_data-linked user.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/sessions/{session_id}/networks/
func (*SessionsService) PreviewDecisionEmail ¶
func (r *SessionsService) PreviewDecisionEmail(ctx context.Context, sessionID string, params SessionsPreviewDecisionEmailParams, opts ...option.RequestOption) (*SessionsPreviewDecisionEmailResponse, error)
PreviewDecisionEmail: Preview a session's decision email.
Render the email the person receives when you set a session to `Approved` or `Declined` with `send_email: true`, without changing the session or sending anything. The response shows the subject and HTML exactly as they are sent, the recipient, the sender, the language, and whether confirming the change sends the email at all (`will_be_sent`, `not_sent_reason`).
The recipient is the person's own address: the one they verified in an email verification step of the flow, else the one given in `contact_details` when the session was created. The sender is your application's verified sender domain when white label applies (`sender_kind: customer`), else Didit's sender (`sender_kind: didit`).
To send exactly what you previewed, call [Update Session Status](/sessions-api/update-status) with the same `new_status`, `send_email: true`, `email_address` set to `recipient`, `email_language` set to `language` and `email_preview_token` set to `preview_token`. The receipt expires after 15 minutes. When the recipient, language, session status, sender or email changed since the preview, the update returns `409` before anything changes; preview again and confirm with the new receipt.
Works for User Verification (KYC) and Business Verification (KYB) sessions in `Approved`, `Declined`, `In Review`, `Kyc Expired`, `Abandoned` or `Resubmitted` status. The status check runs before body validation. Requires the `write:sessions` privilege; a scoped API key needs write access to decisions. Responses use `Cache-Control: no-store`: treat them as sensitive verification content.
POST /v3/session/{sessionId}/decision-email-preview/
func (*SessionsService) PreviewResubmission ¶
func (r *SessionsService) PreviewResubmission(ctx context.Context, sessionID string, params SessionsPreviewResubmissionParams, opts ...option.RequestOption) (*SessionsPreviewResubmissionResponse, error)
PreviewResubmission: Preview a resubmission email.
Render the email that would accompany a KYC or KYB resubmission without changing the session, resetting checks, extending its expiry, running checks or sending mail. Requires the `write:sessions` privilege (a scoped API key needs write access to decisions) and a session in `Approved`, `Declined`, `In Review`, `Kyc Expired` or `Abandoned` status. The server validates the selected workflow steps and renders its fixed translated template with the applicable verified white-label sender and branding. The request cannot set a subject, message body or action URL.
`email_address` is optional. Without it, the email goes to the person's own address: the one they verified in an email verification step of the flow, else the one given in `contact_details` when the session was created. An address you pass wins (`recipient_source: request`). When no address is known and you pass none, `recipient` and `preview_token` are empty strings and no email can be sent.
The response includes the recipient and where it comes from, the sender, subject, HTML, language, resolved steps, whether confirming sends the email (`will_be_sent`, `not_sent_reason`) and a signed `preview_token`. `requires_user_action` is `false` when every selected step runs without the person: the resubmission then finishes on its own and no email goes out (`not_sent_reason: no_user_action`).
This preview does not reserve session state or authorize delivery. After reviewing it, call [Update Session Status](/sessions-api/update-status) with `new_status: Resubmitted`, the same `nodes_to_resubmit` and `email_language` you previewed, `send_email: true`, `email_address` set to `recipient` and `email_preview_token` set to `preview_token`. The receipt expires after 15 minutes. When a receipt is supplied, changed inputs, message content, sender or session state return `409` before any mutation or send. Existing integrations may omit the receipt. Regenerate the preview after a conflict. Treat the response as sensitive verification content; responses use `Cache-Control: no-store`. Render HTML in a sandboxed frame, never directly in your application DOM.
POST /v3/session/{sessionId}/resubmission-preview/
func (*SessionsService) RegenerateKYBParty ¶
func (r *SessionsService) RegenerateKYBParty(ctx context.Context, sessionID string, partyUUID string, opts ...option.RequestOption) (*KYBKeyPeopleParty, error)
RegenerateKYBParty: Regenerate a Key People party's KYC session.
Give a Key People party of a Business Verification (KYB) session a new individual KYC session after its previous one was deleted or expired before the person started it, so the Key People check can finish again; send no request body. It works when the party's KYC session was deleted (`kyc_session_deleted: true`) or expired before the person started it (`Expired`, never started). A session still in progress or one that ended in any other status (`Approved`, `Declined`, `In Review`, `Abandoned`, ...) returns `409` unless it was deleted. A party that never had one or a company party always returns `409`. Didit creates a new hosted KYC session with the workflow the party was verified with (its latest published version) or, when that is no longer known, the workflow your Key People settings assign to the party's role, so its link lasts that KYC workflow's session expiration time; it emails the link to the party when an email is on file, clears `is_skipped`, and recomputes the Key People check and the business session status. It then sends a `data.updated` [webhook](https://docs.didit.me/integration/webhooks) for the business session with trigger `console_key_people_regenerate`; to exempt the party instead, use `PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/`. A scoped API key needs `decisions: write`, and without `sessions: write` it receives `kyc_session_url` as `null`. Deleted sessions qualify even if the person had already started or finished verification. Imported sessions do not qualify through expiry; they must have been deleted.
POST /v3/session/{sessionId}/kyb/parties/{partyUuid}/regenerate/
func (*SessionsService) RetrieveDecision ¶
func (r *SessionsService) RetrieveDecision(ctx context.Context, sessionID string, params SessionsRetrieveDecisionParams, opts ...option.RequestOption) (*SessionDecision, error)
RetrieveDecision: Retrieve the full decision for a verification session.
Retrieve the complete decision report for a verification session - the rolled-up session `status` plus one report per verification feature the workflow executed. This is the canonical read endpoint for both User Verification (KYC) and Business Verification (KYB) sessions: the same path serves both, and the top-level `session_kind` discriminator tells you which shape you received (`"user"` or `"business"`).
**Every feature report is a plural array.** V3 workflows are graphs that can run the same feature more than once, so each block (`id_verifications`, `nfc_verifications`, `liveness_checks`, `face_matches`, `poa_verifications`, `document_ai_documents`, `phone_verifications`, `email_verifications`, `aml_screenings`, `ip_analyses`, `database_validations`, `questionnaire_responses`) is a JSON array whose items each carry a `node_id` identifying the workflow graph node that produced them. Read NFC as `response.nfc_verifications[0]` - never as a singular `nfc` field. A block is `null` until the workflow has run that feature at least once; features the workflow does not include never appear with data. Electronic Signature results are in `signatures`, which is present only when the workflow has an Electronic Signature step.
**When to call.** The recommended pattern is event-driven: wait for the `status.updated` webhook that fires when the session reaches a decision (`Approved`, `Declined`, `In Review`), then call this endpoint once to fetch the full report. Polling also works - the endpoint can be called at any point in the session lifecycle and returns the data produced so far - but webhook-then-fetch is cheaper and faster. Media URLs in the response (document images, videos, PDFs) are short-lived presigned links: fetch them promptly or re-request the decision to get fresh ones, and do not persist them as long-term references.
**Statuses.** The top-level `status` is the session lifecycle status (`Not Started`, `In Progress`, `Awaiting User`, `In Review`, `Approved`, `Declined`, `Resubmitted`, `Expired`, `Kyc Expired`, `Abandoned`). Each feature item additionally carries its own feature-level `status` (`Not Finished`, `Approved`, `Declined`, `In Review`, ...). A session can be `Approved` overall while an individual feature is `In Review`, depending on the workflow's decision rules.
**Authentication and visibility.** Authenticate with the application API key in the `x-api-key` header (a console user Bearer token with the `read:sessions` permission also works). Only sessions owned by the authenticated application are visible. If your workflow restricts response attributes, non-allowed fields inside feature items are returned as `null` while `status`, `warnings`, and `node_id` are always preserved.
**Rate limits.** GET requests are limited to 600 per minute per API key. Exceeding the limit returns `429` with `Retry-After` and `X-RateLimit-*` headers.
GET /v3/session/{sessionId}/decision/
func (*SessionsService) RetrieveDeletionJob ¶
func (r *SessionsService) RetrieveDeletionJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*SessionDeletionJob, error)
RetrieveDeletionJob: Get a bulk session deletion job.
Progress of a bulk session deletion that `POST /v3/sessions/delete/` answered with `202` (more than 20 matching sessions, selected by `session_numbers` or with `delete_all`). Poll every few seconds while `status` is `PENDING` or `PROCESSING`; stop when it is `COMPLETED` or `FAILED`.
The job reports how many sessions ended in each outcome and how many it has processed, never which sessions it deleted. A `FAILED` job carries the reason in `error`; the sessions it had not reached are still in place, so repeat the deletion request to delete them.
**Authentication:** API key in the `x-api-key` header. A job is only visible to the application that created it; any other `job_id` returns `404`. Missing or invalid credentials return `403`; this API never returns `401`.
GET /v3/sessions/delete/{job_id}/
func (*SessionsService) Share ¶
func (r *SessionsService) Share(ctx context.Context, sessionID string, params SessionsShareParams, opts ...option.RequestOption) (*SessionsShareResponse, error)
Share: Mint a share token for a finished verification session.
Mint a short-lived JWT that lets a specific Didit application import this finished session. Pair with `POST /v3/session/import-shared/`.
POST /v3/session/{sessionId}/share/
func (*SessionsService) Simulate ¶
func (r *SessionsService) Simulate(ctx context.Context, sessionID string, params SandboxSimulateRequest, opts ...option.RequestOption) (*SandboxSimulateResponse, error)
Simulate: Simulate a sandbox session's status.
Force a terminal status on a sandbox session after the fact, from your backend, without running the flow. Sandbox applications only: a live session returns `404`. Works for User Verification (KYC) and Business Verification (KYB) sessions.
Set `new_status`, or let `scenario` or `risk` supply it. `risk` (or the first risk the scenario's magic values carry) adds that warning to the session. The change is recorded in the session's activity.
`send_webhooks` (default `true`) sends exactly the webhooks a real status change sends. With `false` the status still changes and the console still updates live, but no webhook is logged or sent, the missed-webhook recovery never re-sends that decision, and the next status change sends webhooks as usual. The response echoes the value applied.
Requires the `write:sessions` privilege; a scoped API key needs write access to sessions. An unknown `session_id` returns `404` and another application's session returns `403`, both before the body is read; a live session returns `404` only after the body is validated. To simulate from the hosted flow with the session's own token, use `POST /v3/session/{sessionId}/sandbox/simulate/`. See [Sandbox & Test Data](/integration/sandbox-testing) for the scenario catalog.
POST /v3/session/{sessionId}/simulate/
func (*SessionsService) UpdateAMLHitStatus ¶
func (r *SessionsService) UpdateAMLHitStatus(ctx context.Context, sessionID string, params SessionsUpdateAMLHitStatusParams, opts ...option.RequestOption) (*SessionsUpdateAMLHitStatusResponse, error)
UpdateAMLHitStatus: Update an AML hit review status.
Set the review status of a **single AML hit** (a potential sanction / PEP / watchlist / adverse-media match) returned by AML screening, without changing the overall session decision. Identify the hit by its `hit_id` (the `id` of an entry in the AML check's `hits` array - see the session decision).
`review_status` is one of `Unreviewed`, `Confirmed Match`, `False Positive`, or `Inconclusive`. Reviewer decisions are preserved across ongoing-monitoring updates, so a hit you mark `False Positive` stays that way when the provider re-screens.
A successful call fires a `data.updated` webhook and appends an activity entry (with actor attribution) to the session's review trail. For graph workflows with multiple AML checks, pass `node_id` to target a specific check.
Authenticate with your API key (`x-api-key`) or a user authorization header - either must carry the `write:sessions` privilege.
PATCH /v3/session/{sessionId}/update-aml-hit-status/
func (*SessionsService) UpdateAMLStatus ¶
func (r *SessionsService) UpdateAMLStatus(ctx context.Context, sessionID string, params SessionsUpdateAMLStatusParams, opts ...option.RequestOption) (*SessionsUpdateAMLStatusResponse, error)
UpdateAMLStatus: Update an AML check status.
Set the status of a session's AML screening check as a whole (the `status` of an `aml_screenings[]` entry in the session decision), for example `Approved` after your team cleared every hit. Works for KYC and KYB session IDs; pass `node_id` (query parameter or body field) when the session ran more than one AML step, otherwise the most recent AML check is updated. When the status actually changes, an `AML_STATUS_UPDATED` activity entry is recorded and a `data.updated` [webhook](https://docs.didit.me/integration/webhooks) is sent; sending the current status returns `200` and changes nothing. The session status is not recomputed: use `PATCH /v3/session/{sessionId}/update-status/` for the session decision and `PATCH /v3/session/{sessionId}/update-aml-hit-status/` for single hits. A scoped API key needs `decisions: write`.
PATCH /v3/session/{sessionId}/update-aml-status/
func (*SessionsService) UpdateData ¶
func (r *SessionsService) UpdateData(ctx context.Context, sessionID string, params SessionsUpdateDataParams, opts ...option.RequestOption) (*SessionsUpdateDataResponse, error)
UpdateData: Update KYC data extracted from the ID document on a verification session.
Correct the identity fields that were extracted (OCR / NFC) from the user's ID document - misread names, dates, document numbers, and so on - after the verification has finished. Typical callers are a compliance analyst working from your own back office, or an automated reconciliation job. Every field in the body is optional: only the keys you send are written, everything else is left untouched (`PATCH` semantics).
The session must belong to your application and be in `Approved`, `Declined`, `In Review`, or `Kyc Expired` status. Sessions in any other state (e.g. still `In Progress`) return `404` with `"No Session matches the given query."` - distinct from the `"Not found."` returned for an unknown or deleted `sessionId`. The session must also carry an ID-verification (KYC) record: sessions whose workflow never ran an ID-verification step return `404` (`"The session does not have a KYC."`). For graph workflows with multiple ID-verification steps, target a specific step with `node_id` (query parameter or body field); when omitted, the most recent KYC record is patched.
Two derived fields are recomputed on every call: `full_name` (from `first_name` + `last_name`) and `issuing_state_name` (from `issuing_state`). If the free-text `address` changes, the server may also re-geocode it and refresh `parsed_address` (skipped for sandbox sessions). `extra_fields` and `parsed_address` are merged key-by-key rather than replaced - see the per-field descriptions for the `null`-to-delete semantics.
Submitting at least one valid field fires the `data.updated` [webhook](/integration/webhooks) (trigger `manual_review`) - even when the submitted values equal the stored ones. When values actually change, a `KYC_DATA_UPDATED` activity entry recording the changed fields with previous and new values is appended to the session's `reviews`, visible in [Get Decision](#get-/v3/session/-sessionId-/decision/) and the console activity timeline. The session's status and decision are **not** re-evaluated - use [Update Status](#patch-/v3/session/-sessionId-/update-status/) to change the outcome. An empty JSON body (`{}`) is accepted and simply returns the current KYC data without firing the webhook.
Accepts an API key or a console user token; either way the credential needs the `write:sessions` permission. Authentication and permission failures both return `403` - this API never responds `401`. Note that the session lookup runs before credential checks, so an unknown `sessionId` returns `404` even with missing credentials. This endpoint has a dedicated rate limit of 10 requests per minute per API key (invalid requests count too); the shared write budget of 300 requests per minute also applies.
PATCH /v3/session/{sessionId}/update-data/
func (*SessionsService) UpdateDocumentAiData ¶
func (r *SessionsService) UpdateDocumentAiData(ctx context.Context, sessionID string, documentUUID string, params SessionsUpdateDocumentAiDataParams, opts ...option.RequestOption) (*SessionsUpdateDocumentAiDataResponse, error)
UpdateDocumentAiData: Update a Document AI document.
Correct the fields Document AI extracted from one uploaded document, set its review status, or both, on a KYC or KYB session. `extracted_data` must be a JSON object and is merged key by key: a key you send replaces the stored value (a key sent as `null` is stored as `null`) and keys you leave out keep their values. The document status feeds the Document AI result of its workflow node in the session decision; the session status itself is not recomputed. Every successful call, including one that changes nothing, sends a `data.updated` [webhook](https://docs.didit.me/integration/webhooks) with trigger `manual_review`. A scoped API key needs `decisions: write`; see [Document AI](https://docs.didit.me/core-technology/document-ai/overview).
PATCH /v3/document-ai/{sessionId}/documents/{documentUuid}/
func (*SessionsService) UpdateFeatureStatus ¶
func (r *SessionsService) UpdateFeatureStatus(ctx context.Context, sessionID string, nodeID string, params SessionsUpdateFeatureStatusParams, opts ...option.RequestOption) (*SessionsUpdateFeatureStatusResponse, error)
UpdateFeatureStatus: Update an individual feature (step) status.
Set the status of a single verification feature (step) within a session. Target the feature by its workflow graph `nodeId`. On non-graph workflows, whose steps have no node, use `default` and also pass `feature_type` to say which step you mean.
Works for both User Verification (KYC) and Business Verification (KYB) sessions and every step type: ID/OCR, Liveness, Face Match, NFC, AML, Proof of Address, Phone, Email, Database Validation, Questionnaire, and the KYB registry / documents / key-people checks. This endpoint is **not** available for standalone API sessions (`session_type = API`).
`new_status` must be one of `Approved`, `Declined`, or `In Review`, and must differ from the feature's current status.
**When the override applies.** Without `defer_until_flow_finishes` (or with `false`) the override applies at once, as it always did; when the person is still in the flow it is recorded as `forced`. With `defer_until_flow_finishes: true` while the person is still in the flow (the session is `Not Started`, `In Progress` or `Resubmitted` and has not finished), the override is stored as `pending_until_flow_finishes` and applies when the flow finishes, after the flow reaches its own decision. On a session whose flow already ended it applies at once either way. A waiting override is cancelled instead when the person redoes its step before finishing, when a newer override on the same check replaces it, when the session leaves the flow unfinished (abandoned, expired, or decided mid-flow), or when you cancel it with `POST /v3/session/{sessionId}/features/overrides/{overrideId}/cancel/`. List a session's overrides with `GET /v3/session/{sessionId}/features/overrides/`.
**Effect on the session.** A session that already has a decision keeps it: only the check changes. When the session has no decision yet and its workflow is waiting on exactly this step, applying the override completes the step: the workflow moves on, later steps run, and a status node can set the session decision and fire `status.updated`.
**Webhooks and activity.** A `data.updated` webhook fires when the override applies (at once, or when the flow finishes), never while it waits or when it is cancelled. Every override is recorded in the session's activity as `FEATURE_OVERRIDE_PENDING`, `FEATURE_OVERRIDE_APPLIED` or `FEATURE_OVERRIDE_CANCELLED`, with who made it; the request's entry carries your `comment`.
Authenticate with your API key (`x-api-key`) or a user authorization header carrying the `write:sessions` privilege; a scoped API key needs write access to decisions.
PATCH /v3/session/{sessionId}/features/{nodeId}/update-status/
func (*SessionsService) UpdateKYBCompanyData ¶
func (r *SessionsService) UpdateKYBCompanyData(ctx context.Context, sessionID string, companyUUID string, params SessionsUpdateKYBCompanyDataParams, opts ...option.RequestOption) (*SessionsUpdateKYBCompanyDataResponse, error)
UpdateKYBCompanyData: Update registry-extracted company data on a Business Verification (KYB) session.
Correct the registry-extracted company data on a Business Verification (KYB) session - company name, registration number, addresses, status, contact details - identified by `companyUuid`. Typical callers are a compliance analyst fixing a registry misread, or your back office syncing corrected company data. Every field in the body is optional (`PATCH` semantics); an empty JSON body (`{}`) is a no-op that simply echoes the current company record.
Edits are written in two places at once: fields with a canonical company column (name, registration number, country, incorporation date, tax number, type, statuses, capital fields (`registered_capital`, `registered_capital_amount`, `registered_capital_currency`), alternative names, nature of business, website, email, phone, LEI, location, and `legal_address` → `registered_address`) update that column, and **every** submitted key is also merged into the `registry_data` snapshot (dates as ISO strings) so the "extracted from registry" view reflects the correction. Fields without a column - `region`, `registration_date`, `dissolution_date`, `control_scheme` - land in `registry_data` only. `user_provided_data` (what the end user confirmed in the hosted flow) is never touched, and `last_console_edit_at` is stamped on every non-empty PATCH.
Unlike the KYC/POA update endpoints, there is **no session-status gate**: the company can be edited at any point in the business session's lifecycle. The company must belong to the session in the path (`404` with `"KYB company does not belong to the given session."` otherwise) and to your application. Every non-empty PATCH fires the `data.updated` [webhook](/integration/webhooks) on the business session (trigger `console_registry_edit`) - even when the submitted values equal the stored ones. The session's status and decision are **not** re-evaluated, and no review/audit entry is recorded.
Accepts an API key or a console user token; either way the credential needs the `write:businesses` permission. Authentication and permission failures both return `403` - this API never responds `401`. Note that the session lookup runs before credential checks, so an unknown `sessionId` returns `404` even with missing credentials. The shared write budget of 300 requests per minute per API key applies.
For User Verification sessions, the KYC counterpart is `PATCH /v3/session/{sessionId}/update-data/`; to change the session decision itself use `PATCH /v3/session/{sessionId}/update-status/`.
PATCH /v3/session/{sessionId}/kyb/{companyUuid}/update-data/
func (*SessionsService) UpdateKYBParty ¶
func (r *SessionsService) UpdateKYBParty(ctx context.Context, sessionID string, partyUUID string, params SessionsUpdateKYBPartyParams, opts ...option.RequestOption) (*SessionsUpdateKYBPartyResponse, error)
UpdateKYBParty: Skip (or re-require) a Key People party on a Business Verification (KYB) session.
Exempt a Key People party from verification, or put it back in scope. This is the operator escape hatch for a party that can never finish its own check - most often because the individual KYC session handed to a UBO or director was deleted, which freezes that child's status and leaves the KYB parked in `Awaiting User` with nothing left that could move it.
Setting `is_skipped: true` drops the party out of the Key People aggregation and immediately recomputes the `KYBKeyPeopleCheck` and the parent session status, so the business session can settle and then be approved or declined. Sending `is_skipped: false` puts the party back in scope and the check goes back to waiting on it.
Unlike the applicant-facing skip in the hosted Key People screen, this endpoint is **not** gated by the role's `allow_skip` setting - that flag limits what the applicant may decide, not what your analyst may override. `requires_verification` is deliberately left untouched, so an overridden party reads as `requires_verification: true` **and** `is_skipped: true` and the record still shows what the rules asked for.
The party must belong to the session in the path (`404` with `"Party does not belong to the given session."` otherwise) and to your application. A PATCH that actually changes the flag fires the `data.updated` [webhook](/integration/webhooks) on the business session with trigger `console_key_people_skip`; a PATCH that sets the flag to its current value is a no-op that echoes the party back.
Accepts an API key or a console user token; either way the credential needs the `write:businesses` permission.
PATCH /v3/session/{sessionId}/kyb/parties/{partyUuid}/
func (*SessionsService) UpdatePOAData ¶
func (r *SessionsService) UpdatePOAData(ctx context.Context, sessionID string, params SessionsUpdatePOADataParams, opts ...option.RequestOption) (*SessionsUpdatePOADataResponse, error)
UpdatePOAData: Update Proof of Address data extracted from the POA document on a verification session.
Correct the fields extracted from the user's Proof of Address document - utility bill, bank statement, or other address evidence - after the verification has finished: issuer, dates, the printed name, the address itself, and banking details. Every field in the body is optional: only the keys you send are written, everything else is left untouched (`PATCH` semantics).
The session must belong to your application and be in `Approved`, `Declined`, `In Review`, or `Kyc Expired` status. Sessions in any other state (e.g. still `In Progress`) return `404` with `"No Session matches the given query."` - distinct from the `"Not found."` returned for an unknown or deleted `sessionId`. The session must also carry a POA record: sessions whose workflow never ran a Proof of Address step return `404` (`"The session does not have a POA."`). For graph workflows with multiple POA steps, target a specific step with `node_id` (query parameter or body field); when omitted, the most recent POA record is patched.
`extra_fields` is merged key-by-key: nine known keys (`bank_iban`, `additional_names`, …) write through to dedicated POA columns, any other key is kept as a custom extra, and `null` / `""` deletes a key. `poa_parsed_address` accepts only the seven documented keys and recomputes `formatted_address` / `poa_formatted_address` after every edit. If the free-text `poa_address` changes, the server may also re-geocode it and refresh the structured address (skipped for sandbox sessions).
Unlike the KYC variant of this endpoint, the `data.updated` [webhook](/integration/webhooks) (trigger `manual_review`) fires only when at least one stored value **actually changed** - re-sending identical values is a silent no-op. When values change, a `POA_DATA_UPDATED` activity entry recording the changed fields with previous and new values is appended to the session's `reviews`, visible in [Get Decision](#get-/v3/session/-sessionId-/decision/) and the console activity timeline. The session's status and decision are **not** re-evaluated - use [Update Status](#patch-/v3/session/-sessionId-/update-status/) to change the outcome.
Accepts an API key or a console user token; either way the credential needs the `write:sessions` permission. Authentication and permission failures both return `403` - this API never responds `401`. Note that the session lookup runs before credential checks, so an unknown `sessionId` returns `404` even with missing credentials. This endpoint has a dedicated rate limit of 10 requests per minute per API key (invalid requests count too); the shared write budget of 300 requests per minute also applies.
An empty JSON body `{}` is a no-op: it returns `200` echoing the current POA record without firing the webhook (`has_changes` stays false).
PATCH /v3/session/{sessionId}/update-poa-data/
func (*SessionsService) UpdateStatus ¶
func (r *SessionsService) UpdateStatus(ctx context.Context, sessionID string, params SessionsUpdateStatusParams, opts ...option.RequestOption) (*SessionsUpdateStatusResponse, error)
UpdateStatus: Approve, decline, or request resubmission for a verification session.
Manually override the final decision of a KYC or KYB verification session. Set `new_status` to `Approved` or `Declined` to record a manual decision, or to `Resubmitted` to clear specific verification steps and let the user redo them through the same verification URL. The endpoint accepts both user (KYC) and business (KYB) session IDs.
Call it once a session has reached a reviewable state: the current status must be `Approved`, `Declined`, `In Review`, `Kyc Expired`, `Abandoned`, or `Resubmitted`. Sessions that are still `Not Started`, `In Progress`, or `Awaiting User`, or that ended as `Expired`, return `400`. Your API key needs the `write:sessions` permission (a scoped API key needs write access to decisions). The eligible-state check runs before body validation, so an ineligible session returns the `Wrong Current Status` error even when the payload is also invalid.
For `Resubmitted`, pass `nodes_to_resubmit` to choose which workflow steps the user must redo, or omit it to auto-select existing feature attempts in a resubmittable state (`Declined`, `In Review`, `Not Finished`, `Expired`). Never-attempted features are not auto-selected: list them explicitly in `nodes_to_resubmit`, or the request returns `400` when no recorded attempt needs resubmission. The selected steps' previous results move to the resubmission's history (returned by Get Decision with `include=resubmissions`), the steps are reordered to match the workflow graph, the session's expiration window restarts, and the original verification URL becomes usable again. Backend-only steps (`AML`, `DATABASE_VALIDATION`, `IP_ANALYSIS`) at the head of the list run immediately without user interaction; if every resubmitted step is backend-only, the session re-finalizes within the same request. `KYB_REGISTRY` and `KYB_KEY_PEOPLE` cannot be resubmitted directly: resubmit the relevant child KYC sessions instead and the parent business session recomputes automatically.
Every call that changes the status fires the `status.updated` [webhook](/integration/webhooks) once the change commits and appends an activity entry (with actor attribution and your `comment`) to the session's `reviews`, visible in [Get Decision](#get-/v3/session/-sessionId-/decision/) and in the console activity timeline. The user-profile aggregates linked to the session's `vendor_data` update as well. Declining disables ongoing AML monitoring for the session; re-approving re-enables it (from `Resubmitted`, `Declined`, or `Kyc Expired`) when the workflow has monitoring turned on. Approving or declining a child KYC that belongs to a KYB key-people check recomputes the parent business session's status. Set `send_email: true` (with `email_address`) to notify the user: a status notice for `Approved`/`Declined`, or a resubmission email containing the verification link and per-step reasons for `Resubmitted`. To check the email first, preview it with [Preview Decision Email](/sessions-api/preview-decision-email) (`Approved`, `Declined`) or [Preview Resubmission Email](/sessions-api/preview-resubmission) (`Resubmitted`) and pass its `preview_token` as `email_preview_token`: the update then sends exactly the previewed email, or returns `409` before changing anything when the email or the session changed since the preview or the receipt is older than 15 minutes.
Repeating `Approved` or `Declined` on a session that already has that status changes nothing and returns `200`: no webhook, no activity entry and no email. Repeating `Resubmitted` returns `400` (`The new status is the same as the current status.`). Missing or invalid credentials and missing permissions return `403`; an expired scoped API key returns `401`.
PATCH /v3/session/{sessionId}/update-status/
type SessionsShareParams ¶
type SessionsShareParams struct {
// not be deleted, and must differ from the calling application. Find it in the
// Business Console under **Settings → Application**. Required.
ForApplicationID string `json:"for_application_id"`
// `3600` (1 h).
TTLInSeconds Opt[int64] `json:"ttl_in_seconds"`
}
SessionsShareParams holds the parameters of Client.Sessions.Share.
func (SessionsShareParams) MarshalJSON ¶
func (r SessionsShareParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsShareResponse ¶
type SessionsShareResponse struct {
// /v3/session/import-shared/`](/sessions-api/import-shared-session) on the
// target application.
ShareToken string `json:"share_token"`
ForApplicationID string `json:"for_application_id"`
// Verification (KYB) session.
SessionKind SessionsShareResponseSessionKind `json:"session_kind"`
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsShareResponse is a response object.
func (*SessionsShareResponse) UnmarshalJSON ¶
func (r *SessionsShareResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsShareResponse leniently.
type SessionsShareResponseSessionKind ¶
type SessionsShareResponseSessionKind string
SessionsShareResponseSessionKind: Whether the source session is a User Verification (KYC) or Business Verification (KYB) session.
SessionsShareResponseSessionKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( )
Known values of SessionsShareResponseSessionKind.
type SessionsSignaturesDownloadEvidenceParams ¶
type SessionsSignaturesDownloadEvidenceParams struct {
// `id` of the signer's item in `signatures[]`.
SignatureID Opt[string] `json:"-" query:"signature_id"`
}
SessionsSignaturesDownloadEvidenceParams holds the parameters of Client.Sessions.Signatures.DownloadEvidence.
func (SessionsSignaturesDownloadEvidenceParams) MarshalJSON ¶
func (r SessionsSignaturesDownloadEvidenceParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsSignaturesService ¶
type SessionsSignaturesService struct {
// contains filtered or unexported fields
}
SessionsSignaturesService holds the sessions signatures operations. Use it through Client.Sessions.Signatures.
func (*SessionsSignaturesService) DownloadDocument ¶
func (r *SessionsSignaturesService) DownloadDocument(ctx context.Context, sessionID string, nodeID string, documentID string, opts ...option.RequestOption) (*http.Response, error)
DownloadDocument: Download a signed document.
Download the signed PDF of one document of an Electronic Signature step. Use the `signed_file` path of `signatures[].documents[]` in the decision. The PDF holds the document the signer was shown with their field values stamped, the evidence page (unless `signature_evidence_page` is off) and the PAdES signature with its timestamp. Didit checks the file against `sha256_signed` before returning it.
Works for User Verification (KYC) and Business Verification (KYB) sessions. Needs `read:sessions`; your API key works. See the [Electronic Signature report](/core-technology/electronic-signature/report-electronic-signature#download-the-signed-documents).
The response is a file (application/pdf). Read it from the returned response's body and close it.
GET /v3/session/{sessionId}/signatures/{nodeId}/documents/{documentId}/file/
func (*SessionsSignaturesService) DownloadEvidence ¶
func (r *SessionsSignaturesService) DownloadEvidence(ctx context.Context, sessionID string, nodeID string, params SessionsSignaturesDownloadEvidenceParams, opts ...option.RequestOption) (*http.Response, error)
DownloadEvidence: Download the signature evidence.
Download a signer's evidence PDF: the level and format, the signer and their verified identity session, the code confirmation, the IP address, each document with its original SHA-256 and field values, the certificate, the timestamp and the SHA-256 of every signed file. Use the `evidence_file` path of the signer's item in `signatures[]`.
Always pass `signature_id` when a Business Verification step has several signers: without it, the route picks one of the step's signers. Needs `read:sessions`; your API key works.
The response is a file (application/pdf). Read it from the returned response's body and close it.
GET /v3/session/{sessionId}/signatures/{nodeId}/evidence/
func (*SessionsSignaturesService) DownloadFieldImage ¶
func (r *SessionsSignaturesService) DownloadFieldImage(ctx context.Context, sessionID string, nodeID string, fieldID string, opts ...option.RequestOption) (*http.Response, error)
DownloadFieldImage: Download a signature image.
Download the signature or initials a signer applied to a field, as PNG. Use the `image_url` of the field in `signatures[].documents[].fields[]`. Needs `read:sessions`; your API key works.
The response is a file (image/png). Read it from the returned response's body and close it.
GET /v3/session/{sessionId}/signatures/{nodeId}/fields/{fieldId}/image/
func (*SessionsSignaturesService) Validate ¶
func (r *SessionsSignaturesService) Validate(ctx context.Context, sessionID string, nodeID string, params SessionsSignaturesValidateParams, opts ...option.RequestOption) (*SessionsSignaturesValidateResponse, error)
Validate: Validate signatures again.
Re-check the signed documents of an Electronic Signature step. Didit re-reads every signed PDF, checks its SHA-256 and validates the PAdES signature, the certificate, the revocation data and the timestamp, then saves the result in each signer's `validation` and returns the updated items. Nothing is signed again. Send `signature_id` to check one signer; without it, every signer of the step is checked, and the call fails if any of them hasn't signed.
Needs `write:sessions`; your API key works. In the console it's the **Validate again** button.
POST /v3/session/{sessionId}/signatures/{nodeId}/validate/
type SessionsSignaturesValidateParams ¶
type SessionsSignaturesValidateParams struct {
// `id` of one signer's item in `signatures[]`.
SignatureID Opt[string] `json:"signature_id"`
}
SessionsSignaturesValidateParams holds the parameters of Client.Sessions.Signatures.Validate.
func (SessionsSignaturesValidateParams) MarshalJSON ¶
func (r SessionsSignaturesValidateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsSignaturesValidateResponse ¶
type SessionsSignaturesValidateResponse struct {
Signatures []SignatureResult `json:"signatures"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsSignaturesValidateResponse is a response object.
func (*SessionsSignaturesValidateResponse) UnmarshalJSON ¶
func (r *SessionsSignaturesValidateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsSignaturesValidateResponse leniently.
type SessionsUpdateAMLHitStatusParams ¶
type SessionsUpdateAMLHitStatusParams struct {
// The `id` of the hit in the AML check's `hits` array. Required.
HitID string `json:"hit_id"`
// The new review status for the hit. Required.
ReviewStatus SessionsUpdateAMLHitStatusParamsReviewStatus `json:"review_status"`
// Optional graph node ID. Use it (here or as a query parameter) when the
// session has multiple AML checks.
NodeID Opt[string] `json:"node_id"`
// Workflow graph node ID. Required only when the session has multiple AML
// checks (one per node); omit it for single-AML sessions.
NodeIDQuery Opt[string] `json:"-" query:"node_id"`
}
SessionsUpdateAMLHitStatusParams holds the parameters of Client.Sessions.UpdateAMLHitStatus.
func (SessionsUpdateAMLHitStatusParams) MarshalJSON ¶
func (r SessionsUpdateAMLHitStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateAMLHitStatusParamsReviewStatus ¶
type SessionsUpdateAMLHitStatusParamsReviewStatus string
SessionsUpdateAMLHitStatusParamsReviewStatus: The new review status for the hit.
SessionsUpdateAMLHitStatusParamsReviewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateAMLHitStatusParamsReviewStatusUnreviewed SessionsUpdateAMLHitStatusParamsReviewStatus = "Unreviewed" SessionsUpdateAMLHitStatusParamsReviewStatusConfirmedMatch SessionsUpdateAMLHitStatusParamsReviewStatus = "Confirmed Match" SessionsUpdateAMLHitStatusParamsReviewStatusFalsePositive SessionsUpdateAMLHitStatusParamsReviewStatus = "False Positive" SessionsUpdateAMLHitStatusParamsReviewStatusInconclusive SessionsUpdateAMLHitStatusParamsReviewStatus = "Inconclusive" )
Known values of SessionsUpdateAMLHitStatusParamsReviewStatus.
type SessionsUpdateAMLHitStatusResponse ¶
type SessionsUpdateAMLHitStatusResponse struct {
// Always `Hit status updated successfully`.
Message string `json:"message"`
// The updated hit, with surrounding whitespace removed.
HitID string `json:"hit_id"`
// The review status now stored on the hit.
ReviewStatus SessionsUpdateAMLHitStatusResponseReviewStatus `json:"review_status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateAMLHitStatusResponse is a response object.
func (*SessionsUpdateAMLHitStatusResponse) UnmarshalJSON ¶
func (r *SessionsUpdateAMLHitStatusResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateAMLHitStatusResponse leniently.
type SessionsUpdateAMLHitStatusResponseReviewStatus ¶
type SessionsUpdateAMLHitStatusResponseReviewStatus string
SessionsUpdateAMLHitStatusResponseReviewStatus: The review status now stored on the hit.
SessionsUpdateAMLHitStatusResponseReviewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateAMLHitStatusResponseReviewStatusUnreviewed SessionsUpdateAMLHitStatusResponseReviewStatus = "Unreviewed" SessionsUpdateAMLHitStatusResponseReviewStatusConfirmedMatch SessionsUpdateAMLHitStatusResponseReviewStatus = "Confirmed Match" SessionsUpdateAMLHitStatusResponseReviewStatusFalsePositive SessionsUpdateAMLHitStatusResponseReviewStatus = "False Positive" SessionsUpdateAMLHitStatusResponseReviewStatusInconclusive SessionsUpdateAMLHitStatusResponseReviewStatus = "Inconclusive" )
Known values of SessionsUpdateAMLHitStatusResponseReviewStatus.
type SessionsUpdateAMLStatusParams ¶
type SessionsUpdateAMLStatusParams struct {
// New status of the AML check. Required.
Status SessionsUpdateAMLStatusParamsStatus `json:"status"`
// Workflow graph node ID of the AML check, as an alternative to the query
// parameter.
NodeID Opt[string] `json:"node_id"`
// Workflow graph node ID of the AML check to update. Needed only when the
// session ran more than one AML step. Takes precedence over `node_id` in the
// body.
NodeIDQuery Opt[string] `json:"-" query:"node_id"`
}
SessionsUpdateAMLStatusParams holds the parameters of Client.Sessions.UpdateAMLStatus.
func (SessionsUpdateAMLStatusParams) MarshalJSON ¶
func (r SessionsUpdateAMLStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateAMLStatusParamsStatus ¶
type SessionsUpdateAMLStatusParamsStatus string
SessionsUpdateAMLStatusParamsStatus: New status of the AML check.
SessionsUpdateAMLStatusParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateAMLStatusParamsStatusNotFinished SessionsUpdateAMLStatusParamsStatus = "Not Finished" SessionsUpdateAMLStatusParamsStatusApproved SessionsUpdateAMLStatusParamsStatus = "Approved" SessionsUpdateAMLStatusParamsStatusDeclined SessionsUpdateAMLStatusParamsStatus = "Declined" SessionsUpdateAMLStatusParamsStatusInReview SessionsUpdateAMLStatusParamsStatus = "In Review" SessionsUpdateAMLStatusParamsStatusResubRequested SessionsUpdateAMLStatusParamsStatus = "Resub Requested" )
Known values of SessionsUpdateAMLStatusParamsStatus.
type SessionsUpdateAMLStatusResponse ¶
type SessionsUpdateAMLStatusResponse struct {
// Always `AML status updated successfully`.
Message string `json:"message"`
// Status of the AML check now.
Status SessionsUpdateAMLStatusResponseStatus `json:"status"`
// Status before the call. Equal to `status` when nothing changed.
PreviousStatus SessionsUpdateAMLStatusResponsePreviousStatus `json:"previous_status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateAMLStatusResponse is a response object.
func (*SessionsUpdateAMLStatusResponse) UnmarshalJSON ¶
func (r *SessionsUpdateAMLStatusResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateAMLStatusResponse leniently.
type SessionsUpdateAMLStatusResponsePreviousStatus ¶
type SessionsUpdateAMLStatusResponsePreviousStatus string
SessionsUpdateAMLStatusResponsePreviousStatus: Status before the call. Equal to `status` when nothing changed.
SessionsUpdateAMLStatusResponsePreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateAMLStatusResponsePreviousStatusNotFinished SessionsUpdateAMLStatusResponsePreviousStatus = "Not Finished" SessionsUpdateAMLStatusResponsePreviousStatusApproved SessionsUpdateAMLStatusResponsePreviousStatus = "Approved" SessionsUpdateAMLStatusResponsePreviousStatusDeclined SessionsUpdateAMLStatusResponsePreviousStatus = "Declined" SessionsUpdateAMLStatusResponsePreviousStatusInReview SessionsUpdateAMLStatusResponsePreviousStatus = "In Review" SessionsUpdateAMLStatusResponsePreviousStatusResubRequested SessionsUpdateAMLStatusResponsePreviousStatus = "Resub Requested" )
Known values of SessionsUpdateAMLStatusResponsePreviousStatus.
type SessionsUpdateAMLStatusResponseStatus ¶
type SessionsUpdateAMLStatusResponseStatus string
SessionsUpdateAMLStatusResponseStatus: Status of the AML check now.
SessionsUpdateAMLStatusResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateAMLStatusResponseStatusNotFinished SessionsUpdateAMLStatusResponseStatus = "Not Finished" SessionsUpdateAMLStatusResponseStatusApproved SessionsUpdateAMLStatusResponseStatus = "Approved" SessionsUpdateAMLStatusResponseStatusDeclined SessionsUpdateAMLStatusResponseStatus = "Declined" SessionsUpdateAMLStatusResponseStatusInReview SessionsUpdateAMLStatusResponseStatus = "In Review" SessionsUpdateAMLStatusResponseStatusResubRequested SessionsUpdateAMLStatusResponseStatus = "Resub Requested" )
Known values of SessionsUpdateAMLStatusResponseStatus.
type SessionsUpdateDataParams ¶
type SessionsUpdateDataParams struct {
// Document type code. Accepts the short codes listed in the enum, plus six
// long-form aliases normalized server-side before validation: `Passport` → `P`,
// `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence Permit` → `RP`,
// `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value
// (including `PASSPORT` in caps) returns `400`.
DocumentType Opt[SessionsUpdateDataParamsDocumentType] `json:"document_type"`
// Document subtype from the document registry, including the region prefix when
// the registry distinguishes regional variants.
DocumentSubtype Opt[string] `json:"document_subtype"`
// Document number as printed on the ID.
DocumentNumber Opt[string] `json:"document_number"`
// Personal / national identification number where the document carries one
// (e.g. Spanish DNI on a passport).
PersonalNumber Opt[string] `json:"personal_number"`
// Date of birth in `YYYY-MM-DD`. Any other format returns `400`.
DateOfBirth Opt[string] `json:"date_of_birth"`
// Issue date of the document in `YYYY-MM-DD`.
DateOfIssue Opt[string] `json:"date_of_issue"`
// Expiration date of the document in `YYYY-MM-DD`.
ExpirationDate Opt[string] `json:"expiration_date"`
// Issuing country as an ISO 3166-1 alpha-3 code. Case-insensitive (`esp` is
// stored as `ESP`); the human-readable `issuing_state_name` shown in [Get
// Decision](#get-/v3/session/-sessionId-/decision/) is recomputed from this
// value. Invalid codes return `400`.
IssuingState Opt[string] `json:"issuing_state"`
// Given name(s). The stored `full_name` is recomputed as `first_name + ' ' +
// last_name` on every call to this endpoint.
FirstName Opt[string] `json:"first_name"`
// Family name(s). Also feeds the recomputed `full_name`.
LastName Opt[string] `json:"last_name"`
// Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown).
// Any other value - including `X` - returns `400`.
Gender Opt[SessionsUpdateDataParamsGender] `json:"gender"`
// Free-text address as printed on the document. When this value changes
// (non-sandbox sessions only) and the structured address is still missing or
// incomplete, the server re-geocodes it synchronously before responding - the
// 200 body already reflects the refreshed `parsed_address`. The re-geocode also
// requires `issuing_state` to be present on the KYC record.
Address Opt[string] `json:"address"`
// Place of birth as printed on the document.
PlaceOfBirth Opt[string] `json:"place_of_birth"`
// Nationality as printed on the document. Free text up to 32 characters -
// typically an ISO 3166-1 alpha-3 code (e.g. `ESP`), but not validated as one.
Nationality Opt[string] `json:"nationality"`
// Marital status where the document carries it. Any other value returns `400`.
MaritalStatus Opt[SessionsUpdateDataParamsMaritalStatus] `json:"marital_status"`
// Per-key overrides for document-specific extra fields (e.g. `blood_group`,
// `dl_categories`, `mrz_string`). Keys are merged into the existing override
// map: send a key with a value to set it, or with `null` / `""` to remove that
// key from the merged view. Send the whole field as `null` to clear all
// previously applied overrides. Must be a JSON object, otherwise `400`. The
// response always returns the merged view (OCR-extracted values with your
// overrides applied).
ExtraFields Opt[map[string]any] `json:"extra_fields"`
// Structured address. Only these nested keys are accepted: `address_type`,
// `city`, `region`, `street_1`, `street_2`, `postal_code`, `country` - any
// other key returns `400`. Per-key semantics: a value sets the key, `null`
// removes it. `formatted_address` is recomputed server-side by joining
// `street_1`, `street_2`, `city`, `region`, `postal_code`, and `country` and is
// returned in the response - you cannot set it directly.
ParsedAddress Opt[SessionsUpdateDataParamsParsedAddress] `json:"parsed_address"`
// Workflow graph node whose KYC record to patch, for graph workflows with
// multiple ID-verification steps (also accepted as a `node_id` body field).
// When omitted, the most recent KYC record on the session is patched. If no KYC
// exists for the given node, the call returns `404` (`"The session does not
// have a KYC for node '<node_id>'."`).
NodeID Opt[string] `json:"-" query:"node_id"`
}
SessionsUpdateDataParams holds the parameters of Client.Sessions.UpdateData.
func (SessionsUpdateDataParams) MarshalJSON ¶
func (r SessionsUpdateDataParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateDataParamsDocumentType ¶
type SessionsUpdateDataParamsDocumentType string
SessionsUpdateDataParamsDocumentType: Document type code. Accepts the short codes listed in the enum, plus six long-form aliases normalized server-side before validation: `Passport` → `P`, `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence Permit` → `RP`, `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value (including `PASSPORT` in caps) returns `400`.
SessionsUpdateDataParamsDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataParamsDocumentTypeP SessionsUpdateDataParamsDocumentType = "P" SessionsUpdateDataParamsDocumentTypeDl SessionsUpdateDataParamsDocumentType = "DL" SessionsUpdateDataParamsDocumentTypeID SessionsUpdateDataParamsDocumentType = "ID" SessionsUpdateDataParamsDocumentTypeRp SessionsUpdateDataParamsDocumentType = "RP" SessionsUpdateDataParamsDocumentTypeSsc SessionsUpdateDataParamsDocumentType = "SSC" SessionsUpdateDataParamsDocumentTypeHic SessionsUpdateDataParamsDocumentType = "HIC" SessionsUpdateDataParamsDocumentTypeWp SessionsUpdateDataParamsDocumentType = "WP" SessionsUpdateDataParamsDocumentTypeTc SessionsUpdateDataParamsDocumentType = "TC" SessionsUpdateDataParamsDocumentTypeVisa SessionsUpdateDataParamsDocumentType = "VISA" SessionsUpdateDataParamsDocumentTypePsc SessionsUpdateDataParamsDocumentType = "PSC" SessionsUpdateDataParamsDocumentTypeBc SessionsUpdateDataParamsDocumentType = "BC" SessionsUpdateDataParamsDocumentTypeOther SessionsUpdateDataParamsDocumentType = "OTHER" )
Known values of SessionsUpdateDataParamsDocumentType.
type SessionsUpdateDataParamsGender ¶
type SessionsUpdateDataParamsGender string
SessionsUpdateDataParamsGender: Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown). Any other value - including `X` - returns `400`.
SessionsUpdateDataParamsGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataParamsGenderM SessionsUpdateDataParamsGender = "M" SessionsUpdateDataParamsGenderF SessionsUpdateDataParamsGender = "F" SessionsUpdateDataParamsGenderU SessionsUpdateDataParamsGender = "U" )
Known values of SessionsUpdateDataParamsGender.
type SessionsUpdateDataParamsMaritalStatus ¶
type SessionsUpdateDataParamsMaritalStatus string
SessionsUpdateDataParamsMaritalStatus: Marital status where the document carries it. Any other value returns `400`.
SessionsUpdateDataParamsMaritalStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataParamsMaritalStatusSingle SessionsUpdateDataParamsMaritalStatus = "SINGLE" SessionsUpdateDataParamsMaritalStatusMarried SessionsUpdateDataParamsMaritalStatus = "MARRIED" SessionsUpdateDataParamsMaritalStatusDivorced SessionsUpdateDataParamsMaritalStatus = "DIVORCED" SessionsUpdateDataParamsMaritalStatusWidowed SessionsUpdateDataParamsMaritalStatus = "WIDOWED" SessionsUpdateDataParamsMaritalStatusUnknown SessionsUpdateDataParamsMaritalStatus = "UNKNOWN" )
Known values of SessionsUpdateDataParamsMaritalStatus.
type SessionsUpdateDataParamsParsedAddress ¶
type SessionsUpdateDataParamsParsedAddress struct {
// Free-form address classification (e.g. `home`).
AddressType Opt[string] `json:"address_type"`
City Opt[string] `json:"city"`
// State / province / autonomous community.
Region Opt[string] `json:"region"`
Street1 Opt[string] `json:"street_1"`
Street2 Opt[string] `json:"street_2"`
PostalCode Opt[string] `json:"postal_code"`
// ISO 3166-1 alpha-2 country code. Lowercase input is normalized to uppercase;
// alpha-3 codes are rejected with `400`.
Country Opt[string] `json:"country"`
}
SessionsUpdateDataParamsParsedAddress: Structured address. Only these nested keys are accepted: `address_type`, `city`, `region`, `street_1`, `street_2`, `postal_code`, `country` - any other key returns `400`. Per-key semantics: a value sets the key, `null` removes it. `formatted_address` is recomputed server-side by joining `street_1`, `street_2`, `city`, `region`, `postal_code`, and `country` and is returned in the response - you cannot set it directly.
func (SessionsUpdateDataParamsParsedAddress) MarshalJSON ¶
func (r SessionsUpdateDataParamsParsedAddress) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateDataResponse ¶
type SessionsUpdateDataResponse struct {
// Document type code. Accepts the short codes listed in the enum, plus six
// long-form aliases normalized server-side before validation: `Passport` → `P`,
// `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence Permit` → `RP`,
// `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value
// (including `PASSPORT` in caps) returns `400`.
DocumentType SessionsUpdateDataResponseDocumentType `json:"document_type"`
// Document subtype from the document registry, including the region prefix when
// the registry distinguishes regional variants.
DocumentSubtype string `json:"document_subtype"`
// Document number as printed on the ID.
DocumentNumber string `json:"document_number"`
// Personal / national identification number where the document carries one
// (e.g. Spanish DNI on a passport).
PersonalNumber string `json:"personal_number"`
// Date of birth in `YYYY-MM-DD`. Any other format returns `400`.
DateOfBirth string `json:"date_of_birth"`
// Issue date of the document in `YYYY-MM-DD`.
DateOfIssue string `json:"date_of_issue"`
// Expiration date of the document in `YYYY-MM-DD`.
ExpirationDate string `json:"expiration_date"`
// Issuing country as an ISO 3166-1 alpha-3 code. Case-insensitive (`esp` is
// stored as `ESP`); the human-readable `issuing_state_name` shown in [Get
// Decision](#get-/v3/session/-sessionId-/decision/) is recomputed from this
// value. Invalid codes return `400`.
IssuingState string `json:"issuing_state"`
// Given name(s). The stored `full_name` is recomputed as `first_name + ' ' +
// last_name` on every call to this endpoint.
FirstName string `json:"first_name"`
// Family name(s). Also feeds the recomputed `full_name`.
LastName string `json:"last_name"`
// Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown).
// Any other value - including `X` - returns `400`.
Gender SessionsUpdateDataResponseGender `json:"gender"`
// Free-text address as printed on the document. When this value changes
// (non-sandbox sessions only) and the structured address is still missing or
// incomplete, the server re-geocodes it in the background of the same request
// and may overwrite `parsed_address` with the geocoder result.
Address string `json:"address"`
// Place of birth as printed on the document.
PlaceOfBirth string `json:"place_of_birth"`
// Nationality as printed on the document. Free text up to 32 characters -
// typically an ISO 3166-1 alpha-3 code (e.g. `ESP`), but not validated as one.
Nationality string `json:"nationality"`
// Marital status where the document carries it. Any other value returns `400`.
MaritalStatus SessionsUpdateDataResponseMaritalStatus `json:"marital_status"`
// Merged view of the document's extra fields: the OCR-extracted values with all
// operator overrides applied. Keys removed via a `null` override are absent
// from this map.
ExtraFields map[string]any `json:"extra_fields"`
// Current structured address (with internal bookkeeping keys stripped), or
// `null` when none exists. Includes the recomputed `formatted_address`
// alongside the seven editable keys.
ParsedAddress SessionsUpdateDataResponseParsedAddress `json:"parsed_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateDataResponse is a response object.
func (*SessionsUpdateDataResponse) UnmarshalJSON ¶
func (r *SessionsUpdateDataResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateDataResponse leniently.
type SessionsUpdateDataResponseDocumentType ¶
type SessionsUpdateDataResponseDocumentType string
SessionsUpdateDataResponseDocumentType: Document type code. Accepts the short codes listed in the enum, plus six long-form aliases normalized server-side before validation: `Passport` → `P`, `Identity Card` → `ID`, `Driver's License` → `DL`, `Residence Permit` → `RP`, `Health Insurance Card` → `HIC`, `Tax Card` → `TC`. Any other value (including `PASSPORT` in caps) returns `400`.
SessionsUpdateDataResponseDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataResponseDocumentTypeP SessionsUpdateDataResponseDocumentType = "P" SessionsUpdateDataResponseDocumentTypeDl SessionsUpdateDataResponseDocumentType = "DL" SessionsUpdateDataResponseDocumentTypeID SessionsUpdateDataResponseDocumentType = "ID" SessionsUpdateDataResponseDocumentTypeRp SessionsUpdateDataResponseDocumentType = "RP" SessionsUpdateDataResponseDocumentTypeSsc SessionsUpdateDataResponseDocumentType = "SSC" SessionsUpdateDataResponseDocumentTypeHic SessionsUpdateDataResponseDocumentType = "HIC" SessionsUpdateDataResponseDocumentTypeWp SessionsUpdateDataResponseDocumentType = "WP" SessionsUpdateDataResponseDocumentTypeTc SessionsUpdateDataResponseDocumentType = "TC" SessionsUpdateDataResponseDocumentTypeVisa SessionsUpdateDataResponseDocumentType = "VISA" SessionsUpdateDataResponseDocumentTypePsc SessionsUpdateDataResponseDocumentType = "PSC" SessionsUpdateDataResponseDocumentTypeBc SessionsUpdateDataResponseDocumentType = "BC" SessionsUpdateDataResponseDocumentTypeOther SessionsUpdateDataResponseDocumentType = "OTHER" )
Known values of SessionsUpdateDataResponseDocumentType.
type SessionsUpdateDataResponseGender ¶
type SessionsUpdateDataResponseGender string
SessionsUpdateDataResponseGender: Sex as printed on the document: `M` (male), `F` (female), or `U` (unknown). Any other value - including `X` - returns `400`.
SessionsUpdateDataResponseGender is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataResponseGenderM SessionsUpdateDataResponseGender = "M" SessionsUpdateDataResponseGenderF SessionsUpdateDataResponseGender = "F" SessionsUpdateDataResponseGenderU SessionsUpdateDataResponseGender = "U" )
Known values of SessionsUpdateDataResponseGender.
type SessionsUpdateDataResponseMaritalStatus ¶
type SessionsUpdateDataResponseMaritalStatus string
SessionsUpdateDataResponseMaritalStatus: Marital status where the document carries it. Any other value returns `400`.
SessionsUpdateDataResponseMaritalStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDataResponseMaritalStatusSingle SessionsUpdateDataResponseMaritalStatus = "SINGLE" SessionsUpdateDataResponseMaritalStatusMarried SessionsUpdateDataResponseMaritalStatus = "MARRIED" SessionsUpdateDataResponseMaritalStatusDivorced SessionsUpdateDataResponseMaritalStatus = "DIVORCED" SessionsUpdateDataResponseMaritalStatusWidowed SessionsUpdateDataResponseMaritalStatus = "WIDOWED" SessionsUpdateDataResponseMaritalStatusUnknown SessionsUpdateDataResponseMaritalStatus = "UNKNOWN" )
Known values of SessionsUpdateDataResponseMaritalStatus.
type SessionsUpdateDataResponseParsedAddress ¶
type SessionsUpdateDataResponseParsedAddress struct {
// Free-form address classification (e.g. `home`).
AddressType string `json:"address_type"`
City string `json:"city"`
// State / province / autonomous community.
Region string `json:"region"`
Street1 string `json:"street_1"`
Street2 string `json:"street_2"`
PostalCode string `json:"postal_code"`
// ISO 3166-1 alpha-2 country code. Lowercase input is normalized to uppercase;
// alpha-3 codes are rejected with `400`.
Country string `json:"country"`
// Joined, human-readable form of the structured address. Recomputed server-side
// after every `parsed_address` edit.
FormattedAddress string `json:"formatted_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateDataResponseParsedAddress: Current structured address (with internal bookkeeping keys stripped), or `null` when none exists. Includes the recomputed `formatted_address` alongside the seven editable keys.
func (*SessionsUpdateDataResponseParsedAddress) UnmarshalJSON ¶
func (r *SessionsUpdateDataResponseParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateDataResponseParsedAddress leniently.
type SessionsUpdateDocumentAiDataParams ¶
type SessionsUpdateDocumentAiDataParams struct {
// Field keys (the keys you configured for the document) and their corrected
// values. Must be a JSON object; merged key by key into the stored data. Leave
// it out rather than sending `null`, which returns `400`.
ExtractedData Opt[map[string]any] `json:"extracted_data"`
// New review status of the document.
Status Opt[SessionsUpdateDocumentAiDataParamsStatus] `json:"status"`
}
SessionsUpdateDocumentAiDataParams holds the parameters of Client.Sessions.UpdateDocumentAiData.
func (SessionsUpdateDocumentAiDataParams) MarshalJSON ¶
func (r SessionsUpdateDocumentAiDataParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateDocumentAiDataParamsStatus ¶
type SessionsUpdateDocumentAiDataParamsStatus string
SessionsUpdateDocumentAiDataParamsStatus: New review status of the document.
SessionsUpdateDocumentAiDataParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDocumentAiDataParamsStatusApproved SessionsUpdateDocumentAiDataParamsStatus = "Approved" SessionsUpdateDocumentAiDataParamsStatusDeclined SessionsUpdateDocumentAiDataParamsStatus = "Declined" SessionsUpdateDocumentAiDataParamsStatusInReview SessionsUpdateDocumentAiDataParamsStatus = "In Review" SessionsUpdateDocumentAiDataParamsStatusNotFinished SessionsUpdateDocumentAiDataParamsStatus = "Not Finished" )
Known values of SessionsUpdateDocumentAiDataParamsStatus.
type SessionsUpdateDocumentAiDataResponse ¶
type SessionsUpdateDocumentAiDataResponse struct {
// Document identifier.
UUID string `json:"uuid"`
// The configured document this upload corresponds to.
DocumentKey string `json:"document_key"`
// File name the document was uploaded with.
OriginalFilename string `json:"original_filename"`
// Storage path of the uploaded file. It is not a download link: read the
// presigned `file_url` from the session decision to download the file.
FileURL string `json:"file_url"`
// Review status of the document.
Status SessionsUpdateDocumentAiDataResponseStatus `json:"status"`
// All extracted fields after the merge, keyed by field key.
ExtractedData map[string]any `json:"extracted_data"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateDocumentAiDataResponse is a response object.
func (*SessionsUpdateDocumentAiDataResponse) UnmarshalJSON ¶
func (r *SessionsUpdateDocumentAiDataResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateDocumentAiDataResponse leniently.
type SessionsUpdateDocumentAiDataResponseStatus ¶
type SessionsUpdateDocumentAiDataResponseStatus string
SessionsUpdateDocumentAiDataResponseStatus: Review status of the document.
SessionsUpdateDocumentAiDataResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateDocumentAiDataResponseStatusNotFinished SessionsUpdateDocumentAiDataResponseStatus = "Not Finished" SessionsUpdateDocumentAiDataResponseStatusApproved SessionsUpdateDocumentAiDataResponseStatus = "Approved" SessionsUpdateDocumentAiDataResponseStatusDeclined SessionsUpdateDocumentAiDataResponseStatus = "Declined" SessionsUpdateDocumentAiDataResponseStatusInReview SessionsUpdateDocumentAiDataResponseStatus = "In Review" SessionsUpdateDocumentAiDataResponseStatusResubRequested SessionsUpdateDocumentAiDataResponseStatus = "Resub Requested" )
Known values of SessionsUpdateDocumentAiDataResponseStatus.
type SessionsUpdateFeatureStatusParams ¶
type SessionsUpdateFeatureStatusParams struct {
// Target status for this feature. Must differ from the current value. Required.
NewStatus SessionsUpdateFeatureStatusParamsNewStatus `json:"new_status"`
// Optional free-text note recorded on the session's review trail for this
// feature change.
Comment Opt[string] `json:"comment"`
// Which kind of step to target. Needed on non-graph workflows (`nodeId` =
// `default`), where every step shares no node; optional otherwise. An unknown
// value returns `400`.
FeatureType Opt[SessionsUpdateFeatureStatusParamsFeatureType] `json:"feature_type"`
// While the person is still in the flow, store the override as
// `pending_until_flow_finishes` and apply it when the flow finishes, instead of
// at once. Omitted or `false`, the override applies at once. On a session whose
// flow already ended it applies at once either way.
DeferUntilFlowFinishes Opt[bool] `json:"defer_until_flow_finishes"`
}
SessionsUpdateFeatureStatusParams holds the parameters of Client.Sessions.UpdateFeatureStatus.
func (SessionsUpdateFeatureStatusParams) MarshalJSON ¶
func (r SessionsUpdateFeatureStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateFeatureStatusParamsFeatureType ¶
type SessionsUpdateFeatureStatusParamsFeatureType string
SessionsUpdateFeatureStatusParamsFeatureType: Which kind of step to target. Needed on non-graph workflows (`nodeId` = `default`), where every step shares no node; optional otherwise. An unknown value returns `400`.
SessionsUpdateFeatureStatusParamsFeatureType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateFeatureStatusParamsFeatureTypeIDVerification SessionsUpdateFeatureStatusParamsFeatureType = "ID_VERIFICATION" SessionsUpdateFeatureStatusParamsFeatureTypeOCR SessionsUpdateFeatureStatusParamsFeatureType = "OCR" SessionsUpdateFeatureStatusParamsFeatureTypeOCRBack SessionsUpdateFeatureStatusParamsFeatureType = "OCR_BACK" SessionsUpdateFeatureStatusParamsFeatureTypeNFC SessionsUpdateFeatureStatusParamsFeatureType = "NFC" SessionsUpdateFeatureStatusParamsFeatureTypeLiveness SessionsUpdateFeatureStatusParamsFeatureType = "LIVENESS" SessionsUpdateFeatureStatusParamsFeatureTypeFace SessionsUpdateFeatureStatusParamsFeatureType = "FACE" SessionsUpdateFeatureStatusParamsFeatureTypeAgeEstimation SessionsUpdateFeatureStatusParamsFeatureType = "AGE_ESTIMATION" SessionsUpdateFeatureStatusParamsFeatureTypeAgeVerification SessionsUpdateFeatureStatusParamsFeatureType = "AGE_VERIFICATION" SessionsUpdateFeatureStatusParamsFeatureTypeFaceSearch SessionsUpdateFeatureStatusParamsFeatureType = "FACE_SEARCH" SessionsUpdateFeatureStatusParamsFeatureTypeFaceMatch SessionsUpdateFeatureStatusParamsFeatureType = "FACE_MATCH" SessionsUpdateFeatureStatusParamsFeatureTypeIPAnalysis SessionsUpdateFeatureStatusParamsFeatureType = "IP_ANALYSIS" SessionsUpdateFeatureStatusParamsFeatureTypeAML SessionsUpdateFeatureStatusParamsFeatureType = "AML" SessionsUpdateFeatureStatusParamsFeatureTypePhone SessionsUpdateFeatureStatusParamsFeatureType = "PHONE" SessionsUpdateFeatureStatusParamsFeatureTypePhoneVerification SessionsUpdateFeatureStatusParamsFeatureType = "PHONE_VERIFICATION" SessionsUpdateFeatureStatusParamsFeatureTypeEmail SessionsUpdateFeatureStatusParamsFeatureType = "EMAIL" SessionsUpdateFeatureStatusParamsFeatureTypeEmailVerification SessionsUpdateFeatureStatusParamsFeatureType = "EMAIL_VERIFICATION" SessionsUpdateFeatureStatusParamsFeatureTypePOA SessionsUpdateFeatureStatusParamsFeatureType = "POA" SessionsUpdateFeatureStatusParamsFeatureTypeProofOfAddress SessionsUpdateFeatureStatusParamsFeatureType = "PROOF_OF_ADDRESS" SessionsUpdateFeatureStatusParamsFeatureTypeDatabaseValidation SessionsUpdateFeatureStatusParamsFeatureType = "DATABASE_VALIDATION" SessionsUpdateFeatureStatusParamsFeatureTypeDataValidation SessionsUpdateFeatureStatusParamsFeatureType = "DATA_VALIDATION" SessionsUpdateFeatureStatusParamsFeatureTypeQuestionnaire SessionsUpdateFeatureStatusParamsFeatureType = "QUESTIONNAIRE" SessionsUpdateFeatureStatusParamsFeatureTypeDocumentAi SessionsUpdateFeatureStatusParamsFeatureType = "DOCUMENT_AI" SessionsUpdateFeatureStatusParamsFeatureTypeKYBRegistry SessionsUpdateFeatureStatusParamsFeatureType = "KYB_REGISTRY" SessionsUpdateFeatureStatusParamsFeatureTypeKYBDocuments SessionsUpdateFeatureStatusParamsFeatureType = "KYB_DOCUMENTS" SessionsUpdateFeatureStatusParamsFeatureTypeKYBKeyPeople SessionsUpdateFeatureStatusParamsFeatureType = "KYB_KEY_PEOPLE" SessionsUpdateFeatureStatusParamsFeatureTypeBankVerification SessionsUpdateFeatureStatusParamsFeatureType = "BANK_VERIFICATION" SessionsUpdateFeatureStatusParamsFeatureTypeGeolocation SessionsUpdateFeatureStatusParamsFeatureType = "GEOLOCATION" )
Known values of SessionsUpdateFeatureStatusParamsFeatureType.
type SessionsUpdateFeatureStatusParamsNewStatus ¶
type SessionsUpdateFeatureStatusParamsNewStatus string
SessionsUpdateFeatureStatusParamsNewStatus: Target status for this feature. Must differ from the current value.
SessionsUpdateFeatureStatusParamsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateFeatureStatusParamsNewStatusApproved SessionsUpdateFeatureStatusParamsNewStatus = "Approved" SessionsUpdateFeatureStatusParamsNewStatusDeclined SessionsUpdateFeatureStatusParamsNewStatus = "Declined" SessionsUpdateFeatureStatusParamsNewStatusInReview SessionsUpdateFeatureStatusParamsNewStatus = "In Review" )
Known values of SessionsUpdateFeatureStatusParamsNewStatus.
type SessionsUpdateFeatureStatusResponse ¶
type SessionsUpdateFeatureStatusResponse struct {
SessionID string `json:"session_id"`
// The updated step's workflow node, or `null` for a step without a node (the
// `default` path in a non-graph workflow).
NodeID string `json:"node_id"`
// Model name of the updated feature (e.g. `KYC`, `Face`, `FaceMatch`, `AML`,
// `POA`).
FeatureType string `json:"feature_type"`
// The check's stored status: the requested one once the override applied, the
// unchanged one while the override waits for the flow to finish.
NewStatus string `json:"new_status"`
Override FeatureStatusOverride `json:"override"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateFeatureStatusResponse is a response object.
func (*SessionsUpdateFeatureStatusResponse) UnmarshalJSON ¶
func (r *SessionsUpdateFeatureStatusResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateFeatureStatusResponse leniently.
type SessionsUpdateKYBCompanyDataParams ¶
type SessionsUpdateKYBCompanyDataParams struct {
// Legal name of the company. Written to the canonical column and the registry
// snapshot.
CompanyName Opt[string] `json:"company_name"`
// Official registration number with the company registry.
RegistrationNumber Opt[string] `json:"registration_number"`
// Country of incorporation, ISO 3166-1 alpha-2. Case-insensitive (`us` is
// stored as `US`). Alpha-3 codes fail the 2-character limit with `400`.
CountryCode Opt[string] `json:"country_code"`
// Subdivision / region tag where the registry has one (e.g. US state). Stored
// in the registry snapshot only - it has no canonical column.
Region Opt[string] `json:"region"`
// Incorporation date in `YYYY-MM-DD`. Optional like every other field - the
// `PATCH` is partial. Any other date format returns `400`.
IncorporationDate Opt[string] `json:"incorporation_date"`
// Registration date where the registry distinguishes it from incorporation.
// Stored in the registry snapshot only.
RegistrationDate Opt[string] `json:"registration_date"`
// Dissolution date for companies that are no longer active. Stored in the
// registry snapshot only.
DissolutionDate Opt[string] `json:"dissolution_date"`
// Tax identification number.
TaxNumber Opt[string] `json:"tax_number"`
// Legal / registered address. Aliased server-side to the canonical
// `registered_address` column - the response returns it under
// `registered_address`, while the registry snapshot keeps the `legal_address`
// key you sent.
LegalAddress Opt[string] `json:"legal_address"`
// Legal entity type (e.g. `Limited Liability Company`, `PLC`, `GmbH`).
CompanyType Opt[string] `json:"company_type"`
// Registry-reported company status. Lowercase, some values contain spaces (e.g.
// `struck off`, `no longer authorised`). Any other value returns `400`.
RegistryStatus Opt[SessionsUpdateKYBCompanyDataParamsRegistryStatus] `json:"registry_status"`
// Outcome of the registry verification. Any other value returns `400`.
VerificationStatus Opt[SessionsUpdateKYBCompanyDataParamsVerificationStatus] `json:"verification_status"`
// Trade names, former legal names, DBA names (free text).
AlternativeNames Opt[string] `json:"alternative_names"`
// Short description of the company's activity.
NatureOfBusiness Opt[string] `json:"nature_of_business"`
// Human-readable registered capital (e.g. `USD 50000`). Use
// `registered_capital_amount` + `registered_capital_currency` for structured
// values, or this field for free-form text.
RegisteredCapital Opt[string] `json:"registered_capital"`
// Numeric registered-capital amount (up to 20 digits, 2 decimal places). Sets
// the `registered_capital_amount` column and is mirrored into `registry_data`
// as a decimal string; the response echoes it as a decimal string (e.g.
// `"1500000.50"`).
RegisteredCapitalAmount Opt[float64] `json:"registered_capital_amount"`
// ISO 4217 currency code for `registered_capital_amount`. Case-insensitive
// (`usd` is stored as `USD`); values that are not exactly 3 letters return
// `400` with the ISO 4217 message. Sets the canonical
// `registered_capital_currency` column and is mirrored into `registry_data`.
RegisteredCapitalCurrency Opt[string] `json:"registered_capital_currency"`
// Company website. Bare domains are accepted and normalized with an `https://`
// prefix (`docsprobe.example.com` is stored as
// `https://docsprobe.example.com`); values that still fail URL validation
// return `400`.
Website Opt[string] `json:"website"`
// Contact email on file with the registry.
Email Opt[string] `json:"email"`
// Contact phone. Must match `+`, digits, spaces, dashes, dots, or parentheses,
// with 7-15 digits total - otherwise `400`.
Phone Opt[string] `json:"phone"`
// LEI, where the company has one.
LegalEntityIdentifier Opt[string] `json:"legal_entity_identifier"`
// City / subdivision of the registry of record.
LocationOfRegistration Opt[string] `json:"location_of_registration"`
// EU VAT number. Merged into the `registry_data` snapshot only - editing it
// here does not re-run VAT and tax ID validation, so `vat_validation_status`
// and the other `vat_*` result fields are unchanged.
VATNumber Opt[string] `json:"vat_number"`
// Control / governance scheme when the registry exposes it. Stored in the
// registry snapshot only.
ControlScheme Opt[string] `json:"control_scheme"`
}
SessionsUpdateKYBCompanyDataParams holds the parameters of Client.Sessions.UpdateKYBCompanyData.
func (SessionsUpdateKYBCompanyDataParams) MarshalJSON ¶
func (r SessionsUpdateKYBCompanyDataParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateKYBCompanyDataParamsRegistryStatus ¶
type SessionsUpdateKYBCompanyDataParamsRegistryStatus string
SessionsUpdateKYBCompanyDataParamsRegistryStatus: Registry-reported company status. Lowercase, some values contain spaces (e.g. `struck off`, `no longer authorised`). Any other value returns `400`.
SessionsUpdateKYBCompanyDataParamsRegistryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateKYBCompanyDataParamsRegistryStatusActive SessionsUpdateKYBCompanyDataParamsRegistryStatus = "active" SessionsUpdateKYBCompanyDataParamsRegistryStatusDissolved SessionsUpdateKYBCompanyDataParamsRegistryStatus = "dissolved" SessionsUpdateKYBCompanyDataParamsRegistryStatusDeregistered SessionsUpdateKYBCompanyDataParamsRegistryStatus = "deregistered" SessionsUpdateKYBCompanyDataParamsRegistryStatusSeeFullDetails SessionsUpdateKYBCompanyDataParamsRegistryStatus = "see full details" SessionsUpdateKYBCompanyDataParamsRegistryStatusAuthorised SessionsUpdateKYBCompanyDataParamsRegistryStatus = "authorised" SessionsUpdateKYBCompanyDataParamsRegistryStatusAppointedRepresentative SessionsUpdateKYBCompanyDataParamsRegistryStatus = "appointed representative" SessionsUpdateKYBCompanyDataParamsRegistryStatusInactive SessionsUpdateKYBCompanyDataParamsRegistryStatus = "inactive" SessionsUpdateKYBCompanyDataParamsRegistryStatusNoLongerAuthorised SessionsUpdateKYBCompanyDataParamsRegistryStatus = "no longer authorised" SessionsUpdateKYBCompanyDataParamsRegistryStatusClosed SessionsUpdateKYBCompanyDataParamsRegistryStatus = "closed" SessionsUpdateKYBCompanyDataParamsRegistryStatusStruckOff SessionsUpdateKYBCompanyDataParamsRegistryStatus = "struck off" )
Known values of SessionsUpdateKYBCompanyDataParamsRegistryStatus.
type SessionsUpdateKYBCompanyDataParamsVerificationStatus ¶
type SessionsUpdateKYBCompanyDataParamsVerificationStatus string
SessionsUpdateKYBCompanyDataParamsVerificationStatus: Outcome of the registry verification. Any other value returns `400`.
SessionsUpdateKYBCompanyDataParamsVerificationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateKYBCompanyDataParamsVerificationStatusVerified SessionsUpdateKYBCompanyDataParamsVerificationStatus = "verified" SessionsUpdateKYBCompanyDataParamsVerificationStatusFailed SessionsUpdateKYBCompanyDataParamsVerificationStatus = "failed" SessionsUpdateKYBCompanyDataParamsVerificationStatusUnknown SessionsUpdateKYBCompanyDataParamsVerificationStatus = "unknown" )
Known values of SessionsUpdateKYBCompanyDataParamsVerificationStatus.
type SessionsUpdateKYBCompanyDataResponse ¶
type SessionsUpdateKYBCompanyDataResponse struct {
// Company record identifier (the `companyUuid` path parameter).
UUID string `json:"uuid"`
// Workflow graph node this company record belongs to, when the workflow is
// graph-based.
NodeID string `json:"node_id"`
// Feature lifecycle status of the registry check (e.g. `Not Finished`,
// `Approved`, `Declined`, `In Review`).
Status string `json:"status"`
// Registry-reported company status (e.g. `active`, `dissolved`, `struck off`).
RegistryStatus string `json:"registry_status"`
// `true` when the company data is complete - always `true` for manual-entry
// companies; for registry-sourced companies, `true` once the registry fetch
// resolved.
DataResolved bool `json:"data_resolved"`
CompanyName string `json:"company_name"`
RegistrationNumber string `json:"registration_number"`
// ISO 3166-1 alpha-2 country of incorporation.
CountryCode string `json:"country_code"`
Region string `json:"region"`
CompanyType string `json:"company_type"`
IncorporationDate string `json:"incorporation_date"`
// Canonical registered address - updated when you send `legal_address`.
RegisteredAddress string `json:"registered_address"`
TaxNumber string `json:"tax_number"`
RiskLevel string `json:"risk_level"`
// `verified`, `failed`, or `unknown`.
VerificationStatus string `json:"verification_status"`
// `true` when the company was pre-filled from a registry search rather than
// entered manually.
IsFromRegistry bool `json:"is_from_registry"`
// Registry fetch lifecycle for registry-sourced companies (`pending` /
// `resolved`); `null` for manual entries.
FetchStatus string `json:"fetch_status"`
// Alternative, trading, former or original-language company names as text, when
// reported.
AlternativeNames string `json:"alternative_names"`
NatureOfBusiness string `json:"nature_of_business"`
RegisteredCapital string `json:"registered_capital"`
// Canonical column. Returned as a decimal string (e.g. `"2750000.00"`).
RegisteredCapitalAmount string `json:"registered_capital_amount"`
// Canonical column. Set by the registry flow or by console/API edits via this
// endpoint.
RegisteredCapitalCurrency string `json:"registered_capital_currency"`
Website string `json:"website"`
Email string `json:"email"`
Phone string `json:"phone"`
LegalEntityIdentifier string `json:"legal_entity_identifier"`
LocationOfRegistration string `json:"location_of_registration"`
// EU VAT number, when collected during the hosted registry step or edited
// afterwards.
VATNumber string `json:"vat_number"`
// Result of validating the VAT number or, when there is none, the `tax_number`,
// at registry submit. `valid` / `invalid`: decided by the official registry of
// the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica,
// Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid`
// / `invalid_format`: decided by the country's format and check-digit rules
// where no registry can be queried. `could_not_validate`: the registry was
// unavailable. `not_applicable`: no number, a country without registry or
// rules, or a sandbox session.
VATValidationStatus SessionsUpdateKYBCompanyDataResponseVATValidationStatus `json:"vat_validation_status"`
// The number that was checked, as the source knows it (for example the VAT
// number derived from a French SIREN or a Dutch RSIN). `null` when no check
// ran.
VATValidatedNumber string `json:"vat_validated_number"`
// The source that decided `vat_validation_status`: an official registry, or
// `format_rules`. `null` when no check ran.
VATValidationSource SessionsUpdateKYBCompanyDataResponseVATValidationSource `json:"vat_validation_source"`
// Name registered with the source that validated the number, when it discloses
// one. Only set when the status is `valid`.
VATValidatedName string `json:"vat_validated_name"`
// Address registered with the source that validated the number, when it
// discloses one. Only set when the status is `valid`.
VATValidatedAddress string `json:"vat_validated_address"`
// Timestamp of the check. `null` when no check ran.
VATCheckedAt time.Time `json:"vat_checked_at"`
FinancialSummary map[string]any `json:"financial_summary"`
// Directors / officers attached to the company, including per-person KYC
// progress.
Officers []map[string]any `json:"officers"`
// Beneficial owners attached to the company, including per-person KYC progress.
BeneficialOwners []map[string]any `json:"beneficial_owners"`
// Registry address detail, when the registry returned any.
Addresses []map[string]any `json:"addresses"`
// Registry industry classification, when available.
Industries []map[string]any `json:"industries"`
// Registry filing dates, when available. Annual returns and general meetings
// use last_annual_return_date and last_agm_date; they are distinct from
// financial accounts.
Accounts map[string]any `json:"accounts"`
// Raw registry payload snapshot. Every key you PATCH is merged into this map
// (dates serialized as ISO strings), so the "extracted from registry" view
// reflects operator corrections.
RegistryData map[string]any `json:"registry_data"`
// What the end user typed during the hosted registry-confirmation step. Never
// modified by this endpoint.
UserProvidedData map[string]any `json:"user_provided_data"`
// When the end user confirmed the company data in the hosted flow.
ConfirmedByUserAt time.Time `json:"confirmed_by_user_at"`
// Stamped on every successful non-empty PATCH, so UIs can surface "edited by
// operator" context.
LastConsoleEditAt time.Time `json:"last_console_edit_at"`
// `true` while the end user can still edit the registry-sourced data in the
// hosted flow (registry-sourced and not yet confirmed).
IsEditable bool `json:"is_editable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateKYBCompanyDataResponse: Full KYB company record - the same shape as the `company` object inside `registry_checks[]` on the business session decision.
func (*SessionsUpdateKYBCompanyDataResponse) UnmarshalJSON ¶
func (r *SessionsUpdateKYBCompanyDataResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateKYBCompanyDataResponse leniently.
type SessionsUpdateKYBCompanyDataResponseVATValidationSource ¶
type SessionsUpdateKYBCompanyDataResponseVATValidationSource string
SessionsUpdateKYBCompanyDataResponseVATValidationSource: The source that decided `vat_validation_status`: an official registry, or `format_rules`. `null` when no check ran.
SessionsUpdateKYBCompanyDataResponseVATValidationSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateKYBCompanyDataResponseVATValidationSourceEuVies SessionsUpdateKYBCompanyDataResponseVATValidationSource = "eu_vies" SessionsUpdateKYBCompanyDataResponseVATValidationSourcePlVATWhiteList SessionsUpdateKYBCompanyDataResponseVATValidationSource = "pl_vat_white_list" SessionsUpdateKYBCompanyDataResponseVATValidationSourceNoBrreg SessionsUpdateKYBCompanyDataResponseVATValidationSource = "no_brreg" SessionsUpdateKYBCompanyDataResponseVATValidationSourceChUIDRegister SessionsUpdateKYBCompanyDataResponseVATValidationSource = "ch_uid_register" SessionsUpdateKYBCompanyDataResponseVATValidationSourceBrReceitaFederal SessionsUpdateKYBCompanyDataResponseVATValidationSource = "br_receita_federal" SessionsUpdateKYBCompanyDataResponseVATValidationSourceCoRues SessionsUpdateKYBCompanyDataResponseVATValidationSource = "co_rues" SessionsUpdateKYBCompanyDataResponseVATValidationSourceCrHacienda SessionsUpdateKYBCompanyDataResponseVATValidationSource = "cr_hacienda" SessionsUpdateKYBCompanyDataResponseVATValidationSourceEcSri SessionsUpdateKYBCompanyDataResponseVATValidationSource = "ec_sri" SessionsUpdateKYBCompanyDataResponseVATValidationSourcePyDnit SessionsUpdateKYBCompanyDataResponseVATValidationSource = "py_dnit" SessionsUpdateKYBCompanyDataResponseVATValidationSourceFormatRules SessionsUpdateKYBCompanyDataResponseVATValidationSource = "format_rules" )
Known values of SessionsUpdateKYBCompanyDataResponseVATValidationSource.
type SessionsUpdateKYBCompanyDataResponseVATValidationStatus ¶
type SessionsUpdateKYBCompanyDataResponseVATValidationStatus string
SessionsUpdateKYBCompanyDataResponseVATValidationStatus: Result of validating the VAT number or, when there is none, the `tax_number`, at registry submit. `valid` / `invalid`: decided by the official registry of the country (EU VIES, Norway, Switzerland, Brazil, Colombia, Costa Rica, Ecuador, Paraguay; Poland also by its domestic VAT register). `format_valid` / `invalid_format`: decided by the country's format and check-digit rules where no registry can be queried. `could_not_validate`: the registry was unavailable. `not_applicable`: no number, a country without registry or rules, or a sandbox session.
SessionsUpdateKYBCompanyDataResponseVATValidationStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateKYBCompanyDataResponseVATValidationStatusValid SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "valid" SessionsUpdateKYBCompanyDataResponseVATValidationStatusInvalid SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "invalid" SessionsUpdateKYBCompanyDataResponseVATValidationStatusFormatValid SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "format_valid" SessionsUpdateKYBCompanyDataResponseVATValidationStatusInvalidFormat SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "invalid_format" SessionsUpdateKYBCompanyDataResponseVATValidationStatusCouldNotValidate SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "could_not_validate" SessionsUpdateKYBCompanyDataResponseVATValidationStatusNotApplicable SessionsUpdateKYBCompanyDataResponseVATValidationStatus = "not_applicable" )
Known values of SessionsUpdateKYBCompanyDataResponseVATValidationStatus.
type SessionsUpdateKYBPartyParams ¶
type SessionsUpdateKYBPartyParams struct {
// `true` exempts the party from verification so the Key People check can settle
// without it; `false` puts it back in scope. Required.
IsSkipped bool `json:"is_skipped"`
}
SessionsUpdateKYBPartyParams holds the parameters of Client.Sessions.UpdateKYBParty.
func (SessionsUpdateKYBPartyParams) MarshalJSON ¶
func (r SessionsUpdateKYBPartyParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateKYBPartyResponse ¶
type SessionsUpdateKYBPartyResponse struct {
// Party identifier.
UUID string `json:"uuid"`
// Whether the party is an individual or a company.
EntityType SessionsUpdateKYBPartyResponseEntityType `json:"entity_type"`
// Display name of the party.
Name string `json:"name"`
// Whether the party is exempt from verification.
IsSkipped bool `json:"is_skipped"`
// What the role and threshold rules asked for. Left untouched by this endpoint.
RequiresVerification bool `json:"requires_verification"`
// Status of the linked individual KYC session, frozen at deletion time when the
// session was deleted.
KYCSessionStatus string `json:"kyc_session_status"`
// Link to the linked individual KYC session. `null` when there is none or when
// it was deleted.
KYCSessionURL string `json:"kyc_session_url"`
// The linked individual KYC session was deleted, so it can never settle.
KYCSessionDeleted bool `json:"kyc_session_deleted"`
// Corporate-party counterpart of `kyc_session_deleted`.
KYBSubSessionDeleted bool `json:"kyb_sub_session_deleted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateKYBPartyResponse: Key People party record - the same shape as an entry of `key_people_checks[].submitted.parties[]` on the business session decision.
func (*SessionsUpdateKYBPartyResponse) UnmarshalJSON ¶
func (r *SessionsUpdateKYBPartyResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateKYBPartyResponse leniently.
type SessionsUpdateKYBPartyResponseEntityType ¶
type SessionsUpdateKYBPartyResponseEntityType string
SessionsUpdateKYBPartyResponseEntityType: Whether the party is an individual or a company.
SessionsUpdateKYBPartyResponseEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateKYBPartyResponseEntityTypePerson SessionsUpdateKYBPartyResponseEntityType = "person" SessionsUpdateKYBPartyResponseEntityTypeCompany SessionsUpdateKYBPartyResponseEntityType = "company" )
Known values of SessionsUpdateKYBPartyResponseEntityType.
type SessionsUpdatePOADataParams ¶
type SessionsUpdatePOADataParams struct {
// Country that issued the POA document, ISO 3166-1 alpha-3. Case-insensitive
// (normalized to uppercase); invalid codes return `400`.
IssuingState Opt[string] `json:"issuing_state"`
// POA document category. Values are uppercase - lowercase variants like
// `utility_bill` return `400`.
DocumentType Opt[SessionsUpdatePOADataParamsDocumentType] `json:"document_type"`
// Language of the document, typically an ISO 639-1 code (e.g. `es`). Free text
// - not validated as a language code.
DocumentLanguage Opt[string] `json:"document_language"`
// Organization that issued the document (utility company, bank, government
// agency).
Issuer Opt[string] `json:"issuer"`
// Issue date of the POA document in `YYYY-MM-DD`. Any other format returns
// `400`.
IssueDate Opt[string] `json:"issue_date"`
// Free-text address as printed on the document. When this value changes
// (non-sandbox sessions only) and the structured address is still missing or
// incomplete, the server re-geocodes it in the background of the same request
// and may overwrite `poa_parsed_address` / `poa_formatted_address` with the
// geocoder result. The re-geocode also requires `issuing_state` to be present
// on the POA record.
POAAddress Opt[string] `json:"poa_address"`
// Recipient name as printed on the document.
NameOnDocument Opt[string] `json:"name_on_document"`
// Document-specific extras, merged key-by-key. Nine keys map to dedicated POA
// columns: `bank_account_number`, `bank_iban`, `bank_sort_code`,
// `bank_routing_number`, `bank_swift_bic`, `bank_branch_name`,
// `bank_branch_address`, `document_phone_number`, and `additional_names` (must
// be a list of strings or `null`, otherwise `400`). Any other key is stored as
// a custom extra field. Per-key semantics: a value sets the key; `null` or `""`
// deletes it. Must be a JSON object, otherwise `400`.
ExtraFields Opt[map[string]any] `json:"extra_fields"`
// Structured address. Only these nested keys are accepted: `address_type`,
// `city`, `region`, `street_1`, `street_2`, `postal_code`, `country` - any
// other key returns `400`. Per-key semantics: a value sets the key, `null`
// removes it. `formatted_address` (and the top-level `poa_formatted_address`)
// is recomputed server-side by joining `street_1`, `street_2`, `city`,
// `region`, `postal_code`, and `country` - you cannot set it directly.
POAParsedAddress Opt[SessionsUpdatePOADataParamsPOAParsedAddress] `json:"poa_parsed_address"`
// Workflow graph node whose POA record to patch, for graph workflows with
// multiple Proof of Address steps (also accepted as a `node_id` body field).
// When omitted, the most recent POA record on the session is patched. If no POA
// exists for the given node, the call returns `404` (`"The session does not
// have a POA for node '<node_id>'."`).
NodeID Opt[string] `json:"-" query:"node_id"`
}
SessionsUpdatePOADataParams holds the parameters of Client.Sessions.UpdatePOAData.
func (SessionsUpdatePOADataParams) MarshalJSON ¶
func (r SessionsUpdatePOADataParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdatePOADataParamsDocumentType ¶
type SessionsUpdatePOADataParamsDocumentType string
SessionsUpdatePOADataParamsDocumentType: POA document category. Values are uppercase - lowercase variants like `utility_bill` return `400`.
SessionsUpdatePOADataParamsDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdatePOADataParamsDocumentTypeUtilityBill SessionsUpdatePOADataParamsDocumentType = "UTILITY_BILL" SessionsUpdatePOADataParamsDocumentTypeBankStatement SessionsUpdatePOADataParamsDocumentType = "BANK_STATEMENT" SessionsUpdatePOADataParamsDocumentTypeGovernmentIssuedDocument SessionsUpdatePOADataParamsDocumentType = "GOVERNMENT_ISSUED_DOCUMENT" SessionsUpdatePOADataParamsDocumentTypeOtherPOADocument SessionsUpdatePOADataParamsDocumentType = "OTHER_POA_DOCUMENT" SessionsUpdatePOADataParamsDocumentTypeUnknown SessionsUpdatePOADataParamsDocumentType = "UNKNOWN" )
Known values of SessionsUpdatePOADataParamsDocumentType.
type SessionsUpdatePOADataParamsPOAParsedAddress ¶
type SessionsUpdatePOADataParamsPOAParsedAddress struct {
// Free-form address classification (e.g. `home`).
AddressType Opt[string] `json:"address_type"`
City Opt[string] `json:"city"`
// State / province / autonomous community.
Region Opt[string] `json:"region"`
Street1 Opt[string] `json:"street_1"`
Street2 Opt[string] `json:"street_2"`
PostalCode Opt[string] `json:"postal_code"`
// ISO 3166-1 alpha-2 country code. Lowercase input is normalized to uppercase;
// alpha-3 codes are rejected with `400`.
Country Opt[string] `json:"country"`
}
SessionsUpdatePOADataParamsPOAParsedAddress: Structured address. Only these nested keys are accepted: `address_type`, `city`, `region`, `street_1`, `street_2`, `postal_code`, `country` - any other key returns `400`. Per-key semantics: a value sets the key, `null` removes it. `formatted_address` (and the top-level `poa_formatted_address`) is recomputed server-side by joining `street_1`, `street_2`, `city`, `region`, `postal_code`, and `country` - you cannot set it directly.
func (SessionsUpdatePOADataParamsPOAParsedAddress) MarshalJSON ¶
func (r SessionsUpdatePOADataParamsPOAParsedAddress) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdatePOADataResponse ¶
type SessionsUpdatePOADataResponse struct {
// Country that issued the POA document, ISO 3166-1 alpha-3. Case-insensitive
// (normalized to uppercase); invalid codes return `400`.
IssuingState string `json:"issuing_state"`
// POA document category. Values are uppercase - lowercase variants like
// `utility_bill` return `400`.
DocumentType SessionsUpdatePOADataResponseDocumentType `json:"document_type"`
// Language of the document, typically an ISO 639-1 code (e.g. `es`). Free text
// - not validated as a language code.
DocumentLanguage string `json:"document_language"`
// Organization that issued the document (utility company, bank, government
// agency).
Issuer string `json:"issuer"`
// Issue date of the POA document in `YYYY-MM-DD`. Any other format returns
// `400`.
IssueDate string `json:"issue_date"`
// Free-text address as printed on the document. When this value changes
// (non-sandbox sessions only) and the structured address is still missing or
// incomplete, the server re-geocodes it in the background of the same request
// and may overwrite `poa_parsed_address` / `poa_formatted_address` with the
// geocoder result.
POAAddress string `json:"poa_address"`
// Recipient name as printed on the document.
NameOnDocument string `json:"name_on_document"`
// Always present in the response: the nine known keys (with `null` for unset
// ones, `additional_names` defaulting to `[]`) plus any custom keys previously
// stored.
ExtraFields map[string]any `json:"extra_fields"`
// Current structured address, or `null` when none exists. Includes the
// recomputed `formatted_address` alongside the seven editable keys. Returned as
// stored - after a server-side geocode it can contain bookkeeping keys (e.g.
// `raw_results`) alongside the editable keys.
POAParsedAddress SessionsUpdatePOADataResponsePOAParsedAddress `json:"poa_parsed_address"`
// Top-level copy of the recomputed `formatted_address`, kept in sync when the
// structured address changes.
POAFormattedAddress string `json:"poa_formatted_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdatePOADataResponse is a response object.
func (*SessionsUpdatePOADataResponse) UnmarshalJSON ¶
func (r *SessionsUpdatePOADataResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdatePOADataResponse leniently.
type SessionsUpdatePOADataResponseDocumentType ¶
type SessionsUpdatePOADataResponseDocumentType string
SessionsUpdatePOADataResponseDocumentType: POA document category. Values are uppercase - lowercase variants like `utility_bill` return `400`.
SessionsUpdatePOADataResponseDocumentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdatePOADataResponseDocumentTypeUtilityBill SessionsUpdatePOADataResponseDocumentType = "UTILITY_BILL" SessionsUpdatePOADataResponseDocumentTypeBankStatement SessionsUpdatePOADataResponseDocumentType = "BANK_STATEMENT" SessionsUpdatePOADataResponseDocumentTypeGovernmentIssuedDocument SessionsUpdatePOADataResponseDocumentType = "GOVERNMENT_ISSUED_DOCUMENT" SessionsUpdatePOADataResponseDocumentTypeOtherPOADocument SessionsUpdatePOADataResponseDocumentType = "OTHER_POA_DOCUMENT" SessionsUpdatePOADataResponseDocumentTypeUnknown SessionsUpdatePOADataResponseDocumentType = "UNKNOWN" )
Known values of SessionsUpdatePOADataResponseDocumentType.
type SessionsUpdatePOADataResponsePOAParsedAddress ¶
type SessionsUpdatePOADataResponsePOAParsedAddress struct {
// Free-form address classification (e.g. `home`).
AddressType string `json:"address_type"`
City string `json:"city"`
// State / province / autonomous community.
Region string `json:"region"`
Street1 string `json:"street_1"`
Street2 string `json:"street_2"`
PostalCode string `json:"postal_code"`
// ISO 3166-1 alpha-2 country code. Lowercase input is normalized to uppercase;
// alpha-3 codes are rejected with `400`.
Country string `json:"country"`
// Joined, human-readable form of the structured address. Recomputed server-side
// after every `poa_parsed_address` edit.
FormattedAddress string `json:"formatted_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdatePOADataResponsePOAParsedAddress: Current structured address, or `null` when none exists. Includes the recomputed `formatted_address` alongside the seven editable keys. Returned as stored - after a server-side geocode it can contain bookkeeping keys (e.g. `raw_results`) alongside the editable keys.
func (*SessionsUpdatePOADataResponsePOAParsedAddress) UnmarshalJSON ¶
func (r *SessionsUpdatePOADataResponsePOAParsedAddress) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdatePOADataResponsePOAParsedAddress leniently.
type SessionsUpdateStatusParams ¶
type SessionsUpdateStatusParams struct {
// Target status. `Approved` and `Declined` record a final manual decision (each
// can also overturn the other). `Resubmitted` clears the selected steps and
// sends the session back to the user. Any other value returns `400`. Required.
NewStatus SessionsUpdateStatusParamsNewStatus `json:"new_status"`
// Free-text reason for the change, stored on the session's review trail and
// returned in the `reviews` array of [Get
// Decision](#get-/v3/session/-sessionId-/decision/). For example `Duplicated
// user`.
Comment Opt[string] `json:"comment"`
// Workflow steps the user must redo. Only acted on when `new_status` is
// `Resubmitted`. For `Approved`/`Declined` the entries are still
// schema-validated (an invalid `feature` value returns `400`) but schema-valid
// entries are semantically ignored. If omitted, the server auto-selects
// existing OCR, Liveness, Face Match, POA, Phone, Email, AML, Database
// Validation, and Questionnaire attempts whose status is `Declined`, `In
// Review`, `Not Finished`, or `Expired` (NFC, IP analysis, age estimation, face
// search, and KYB document attempts are never auto-selected; non-face-match
// face attempts are selected as `LIVENESS`) - features the user never attempted
// (no recorded attempt) are NOT selected, so a session with zero attempts
// returns `400` ("No features found that need resubmission") even though
// nothing was approved; pass `nodes_to_resubmit` explicitly in that case. Steps
// are executed in workflow-graph order regardless of the order you send them.
// `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and the `KYB` alias are rejected with `400`
// - those parent checks recompute from their child KYC sessions.
NodesToResubmit Opt[[]SessionsUpdateStatusParamsNodesToResubmit] `json:"nodes_to_resubmit"`
// Whether to email the user about the change. Requires `email_address`. For
// `Approved`/`Declined` the user receives a status notice; for `Resubmitted`
// the email includes the verification link and the per-step resubmission
// reasons.
SendEmail Opt[bool] `json:"send_email"`
// Recipient for the notification email. **Required when `send_email` is
// `true`** - omitting it returns `400`.
EmailAddress Opt[string] `json:"email_address"`
// Language for the notification email. Accepts any string at schema level;
// unsupported codes silently fall back to English (`en`).
EmailLanguage Opt[string] `json:"email_language"`
// Optional receipt from [Preview Decision
// Email](/sessions-api/preview-decision-email) (for `Approved` and `Declined`)
// or [Preview Resubmission Email](/sessions-api/preview-resubmission) (for
// `Resubmitted`): its `preview_token`. Valid only with `send_email: true`;
// without it the request returns `400`. The recipient, language, session
// status, sender and email (and, for a resubmission, the selected steps) must
// still match the preview, and the receipt expires after 15 minutes. Otherwise
// the request returns `409` before the session changes or an email is sent.
// Existing integrations may omit this field.
EmailPreviewToken Opt[string] `json:"email_preview_token"`
}
SessionsUpdateStatusParams holds the parameters of Client.Sessions.UpdateStatus.
func (SessionsUpdateStatusParams) MarshalJSON ¶
func (r SessionsUpdateStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateStatusParamsNewStatus ¶
type SessionsUpdateStatusParamsNewStatus string
SessionsUpdateStatusParamsNewStatus: Target status. `Approved` and `Declined` record a final manual decision (each can also overturn the other). `Resubmitted` clears the selected steps and sends the session back to the user. Any other value returns `400`.
SessionsUpdateStatusParamsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateStatusParamsNewStatusApproved SessionsUpdateStatusParamsNewStatus = "Approved" SessionsUpdateStatusParamsNewStatusDeclined SessionsUpdateStatusParamsNewStatus = "Declined" SessionsUpdateStatusParamsNewStatusResubmitted SessionsUpdateStatusParamsNewStatus = "Resubmitted" )
Known values of SessionsUpdateStatusParamsNewStatus.
type SessionsUpdateStatusParamsNodesToResubmit ¶
type SessionsUpdateStatusParamsNodesToResubmit struct {
// Node identifier as it appears in the session's workflow definition (for
// example `feature_ocr`, `feature_liveness`). Required.
NodeID string `json:"node_id"`
// Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and
// `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`,
// `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`,
// `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected
// with the business-rule `400` shown in the examples. Required.
Feature SessionsUpdateStatusParamsNodesToResubmitFeature `json:"feature"`
}
SessionsUpdateStatusParamsNodesToResubmit is a request object.
func (SessionsUpdateStatusParamsNodesToResubmit) MarshalJSON ¶
func (r SessionsUpdateStatusParamsNodesToResubmit) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SessionsUpdateStatusParamsNodesToResubmitFeature ¶
type SessionsUpdateStatusParamsNodesToResubmitFeature string
SessionsUpdateStatusParamsNodesToResubmitFeature: Feature type of the node. The aliases `ID_VERIFICATION`, `POA`, `PHONE`, and `EMAIL` are normalized server-side to `OCR`, `PROOF_OF_ADDRESS`, `PHONE_VERIFICATION`, and `EMAIL_VERIFICATION`. `KYB_REGISTRY`, `KYB_KEY_PEOPLE`, and `KYB` pass schema validation but are always rejected with the business-rule `400` shown in the examples.
SessionsUpdateStatusParamsNodesToResubmitFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SessionsUpdateStatusParamsNodesToResubmitFeatureOCR SessionsUpdateStatusParamsNodesToResubmitFeature = "OCR" SessionsUpdateStatusParamsNodesToResubmitFeatureOCRBack SessionsUpdateStatusParamsNodesToResubmitFeature = "OCR_BACK" SessionsUpdateStatusParamsNodesToResubmitFeatureNFC SessionsUpdateStatusParamsNodesToResubmitFeature = "NFC" SessionsUpdateStatusParamsNodesToResubmitFeatureAML SessionsUpdateStatusParamsNodesToResubmitFeature = "AML" SessionsUpdateStatusParamsNodesToResubmitFeatureFace SessionsUpdateStatusParamsNodesToResubmitFeature = "FACE" SessionsUpdateStatusParamsNodesToResubmitFeatureLiveness SessionsUpdateStatusParamsNodesToResubmitFeature = "LIVENESS" SessionsUpdateStatusParamsNodesToResubmitFeatureFaceMatch SessionsUpdateStatusParamsNodesToResubmitFeature = "FACE_MATCH" SessionsUpdateStatusParamsNodesToResubmitFeatureIPAnalysis SessionsUpdateStatusParamsNodesToResubmitFeature = "IP_ANALYSIS" SessionsUpdateStatusParamsNodesToResubmitFeatureAgeEstimation SessionsUpdateStatusParamsNodesToResubmitFeature = "AGE_ESTIMATION" SessionsUpdateStatusParamsNodesToResubmitFeatureProofOfAddress SessionsUpdateStatusParamsNodesToResubmitFeature = "PROOF_OF_ADDRESS" SessionsUpdateStatusParamsNodesToResubmitFeaturePhoneVerification SessionsUpdateStatusParamsNodesToResubmitFeature = "PHONE_VERIFICATION" SessionsUpdateStatusParamsNodesToResubmitFeatureEmailVerification SessionsUpdateStatusParamsNodesToResubmitFeature = "EMAIL_VERIFICATION" SessionsUpdateStatusParamsNodesToResubmitFeatureFaceSearch SessionsUpdateStatusParamsNodesToResubmitFeature = "FACE_SEARCH" SessionsUpdateStatusParamsNodesToResubmitFeatureDatabaseValidation SessionsUpdateStatusParamsNodesToResubmitFeature = "DATABASE_VALIDATION" SessionsUpdateStatusParamsNodesToResubmitFeatureQuestionnaire SessionsUpdateStatusParamsNodesToResubmitFeature = "QUESTIONNAIRE" SessionsUpdateStatusParamsNodesToResubmitFeatureDocumentAi SessionsUpdateStatusParamsNodesToResubmitFeature = "DOCUMENT_AI" SessionsUpdateStatusParamsNodesToResubmitFeatureKYBDocuments SessionsUpdateStatusParamsNodesToResubmitFeature = "KYB_DOCUMENTS" SessionsUpdateStatusParamsNodesToResubmitFeatureIDVerification SessionsUpdateStatusParamsNodesToResubmitFeature = "ID_VERIFICATION" SessionsUpdateStatusParamsNodesToResubmitFeaturePOA SessionsUpdateStatusParamsNodesToResubmitFeature = "POA" SessionsUpdateStatusParamsNodesToResubmitFeaturePhone SessionsUpdateStatusParamsNodesToResubmitFeature = "PHONE" SessionsUpdateStatusParamsNodesToResubmitFeatureEmail SessionsUpdateStatusParamsNodesToResubmitFeature = "EMAIL" SessionsUpdateStatusParamsNodesToResubmitFeatureKYBRegistry SessionsUpdateStatusParamsNodesToResubmitFeature = "KYB_REGISTRY" SessionsUpdateStatusParamsNodesToResubmitFeatureKYBKeyPeople SessionsUpdateStatusParamsNodesToResubmitFeature = "KYB_KEY_PEOPLE" SessionsUpdateStatusParamsNodesToResubmitFeatureKYB SessionsUpdateStatusParamsNodesToResubmitFeature = "KYB" )
Known values of SessionsUpdateStatusParamsNodesToResubmitFeature.
type SessionsUpdateStatusResponse ¶
type SessionsUpdateStatusResponse struct {
// UUID of the updated session.
SessionID string `json:"session_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SessionsUpdateStatusResponse is a response object.
func (*SessionsUpdateStatusResponse) UnmarshalJSON ¶
func (r *SessionsUpdateStatusResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SessionsUpdateStatusResponse leniently.
type SessionsWebhooksService ¶
type SessionsWebhooksService struct {
// contains filtered or unexported fields
}
SessionsWebhooksService holds the sessions webhooks operations. Use it through Client.Sessions.Webhooks.
func (*SessionsWebhooksService) List ¶
func (r *SessionsWebhooksService) List(ctx context.Context, sessionID string, opts ...option.RequestOption) ([]SessionWebhookDelivery, error)
List: List session webhook deliveries.
List every webhook delivery Didit recorded for one verification session, user (KYC) or business (KYB), newest first, as a plain JSON array (not paginated). Each entry is one attempt to one destination: the first send, each automatic [retry](https://docs.didit.me/integration/webhooks#retry-policy) and each resend are separate entries with their own `uuid`, and retries and resends keep the payload's `event_id`. `request_header` and `request_body` are JSON text; parse them to read the signatures and the payload. Delivery records are available for about 30 days, so an empty array means no webhook has been sent for the session yet or every delivery is older than that. A scoped API key needs `sessions: read` and `decisions: read`.
GET /v3/session/{sessionId}/webhooks/
func (*SessionsWebhooksService) Resend ¶
func (r *SessionsWebhooksService) Resend(ctx context.Context, sessionID string, webhookUUID string, opts ...option.RequestOption) (*SessionWebhookDelivery, error)
Resend: Resend session webhook delivery.
Send a recorded session webhook again to the URL it first went to, with the same payload and `event_id` and a fresh `timestamp`, `X-Timestamp` header and signatures. Didit signs it with the current secret of the destination the delivery belongs to (or the application-level secret for a delivery to the legacy webhook URL), waits up to 5 seconds for your endpoint, records the attempt as a new delivery and returns it with `200` whatever your endpoint answered: read `response_status`. A resend is not retried automatically, and every call sends again, so make your endpoint idempotent on `event_id`. The path has no trailing slash and the request has no body. A scoped API key needs `webhooks: write` and `decisions: read`.
POST /v3/session/{sessionId}/webhook/{webhook_uuid}/resend
func (*SessionsWebhooksService) Retrieve ¶
func (r *SessionsWebhooksService) Retrieve(ctx context.Context, sessionID string, webhookUUID string, opts ...option.RequestOption) (*SessionWebhookDelivery, error)
Retrieve: Get session webhook delivery.
Retrieve one webhook delivery of a verification session: the URL it went to, the HTTP status your endpoint returned, and the exact headers and JSON body Didit sent. `request_header` and `request_body` are JSON text; to check your [signature verification](https://docs.didit.me/integration/webhooks#signature-verification), recompute `X-Signature-V2` from the parsed body with the secret of the destination it was sent to (or the application-level secret for a delivery to the legacy webhook URL). The path has no trailing slash: with one it returns `404`. A scoped API key needs `sessions: read` and `decisions: read`.
GET /v3/session/{sessionId}/webhook/{webhook_uuid}
type SignatureField ¶
type SignatureField struct {
// Names the field in the results and in `sign.field_values`. Unique within the
// document. Required.
Key string `json:"key"`
// What the field holds. The signer applies their adopted `signature` and
// `initials`, types `text`, ticks a `checkbox`, and types an `email` when the
// session has no verified email. Didit fills `full_name` (the verified name),
// `date_signed` (the date of signing, in the signer's time zone), `data` (from
// `prefill`) and a verified `email`, and shows them read-only. There is no date
// picker type: use `text`. Required.
Type SignatureFieldType `json:"type"`
// Who fills the field, with the `signature_signer` values. A step fills and
// stamps only the fields of its own signer. Defaults to the step's signer.
Role Opt[SignatureFieldRole] `json:"role"`
// Page number, from 1 to the document's page count. For a Word document, a page
// of the converted PDF.
Page Opt[int64] `json:"page"`
// Left edge, as a fraction of the page width.
X Opt[float64] `json:"x"`
// Top edge, as a fraction of the page height.
Y Opt[float64] `json:"y"`
// Width, as a fraction of the page width. A signature is at least `0.12` wide.
Width Opt[float64] `json:"width"`
// Height, as a fraction of the page height. A signature is at least `0.035`
// high.
Height Opt[float64] `json:"height"`
Anchor Opt[SignatureFieldAnchor] `json:"anchor"`
// `signature` and `initials` are required unless you set `false`. `full_name`,
// `date_signed` and `data` are always required. The signer can't finish a
// document until its required fields have a value, and a required checkbox must
// be ticked.
Required Opt[bool] `json:"required"`
// Shown to the signer and in the results. Defaults from the type.
Label Opt[string] `json:"label"`
// `text` and `email` only.
Placeholder Opt[string] `json:"placeholder"`
Validation Opt[SignatureFieldValidation] `json:"validation"`
// Where the value comes from: `identity.full_name`, `identity.first_name`,
// `identity.last_name`, `identity.date_of_birth` (`DD/MM/YYYY`),
// `identity.nationality`, `identity.document_number`, `identity.document_type`,
// `identity.issuing_country`, `identity.address`, `contact.email`,
// `contact.phone`, `company.name`, `company.registration_number`,
// `company.address`, `company.country` (KYB), `session.vendor_data`,
// `metadata.<key>` (a key of the session's `metadata`) or `api.<key>` (a key of
// `sign.field_values`). Required for `data`. `full_name` always uses
// `identity.full_name` and `email` uses `contact.email`. The values of `data`,
// `full_name` and verified `email` fields are fixed when the signer starts
// signing.
Prefill Opt[string] `json:"prefill"`
// `text` and `email` only: the signer can change a pre-filled value.
EditableWhenPrefilled Opt[bool] `json:"editable_when_prefilled"`
// `checkbox` only: the box starts ticked.
CheckedByDefault Opt[bool] `json:"checked_by_default"`
// `date_signed` only.
DateFormat Opt[SignatureFieldDateFormat] `json:"date_format"`
}
SignatureField: A field to place on a session document: which signer fills it, how, and where. Give either a position (`page`, `x`, `y`, `width` and `height`) or an `anchor`. Positions are fractions of the page as it's displayed, from its top-left corner, rounded to 4 decimals, and the field must fit inside the page. A document takes up to 200 fields and one signer up to 500, and every role with fields on a document needs a `signature` or `initials` field there. See [Fields on the document](/core-technology/electronic-signature/overview#fields-on-the-document).
func (SignatureField) MarshalJSON ¶
func (r SignatureField) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SignatureFieldAnchor ¶
type SignatureFieldAnchor struct {
// Text searched in the document. For a Word file, in the converted PDF.
// Required.
Text string `json:"text"`
// `all` places one field per match; the keys after the first get `_2`, `_3` and
// so on.
Occurrence Opt[SignatureFieldAnchorOccurrence] `json:"occurrence"`
// Added to the left edge of the text, as a fraction of the page width.
OffsetX Opt[float64] `json:"offset_x"`
// Added to the top edge of the text, as a fraction of the page height.
OffsetY Opt[float64] `json:"offset_y"`
// Width of the field, as a fraction of the page width.
Width Opt[float64] `json:"width"`
// Height of the field, as a fraction of the page height.
Height Opt[float64] `json:"height"`
}
SignatureFieldAnchor: Places a field by a piece of text in the document instead of a position. Didit doesn't remove the text from the PDF, so write it in the same color as the page background. When the text isn't found, the call returns `400` with `field_anchor_not_found`. See [Place fields by anchor text](/sessions-api/create-session#place-fields-by-anchor-text).
func (SignatureFieldAnchor) MarshalJSON ¶
func (r SignatureFieldAnchor) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SignatureFieldAnchorOccurrence ¶
type SignatureFieldAnchorOccurrence string
SignatureFieldAnchorOccurrence: `all` places one field per match; the keys after the first get `_2`, `_3` and so on.
SignatureFieldAnchorOccurrence is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldAnchorOccurrenceFirst SignatureFieldAnchorOccurrence = "first" SignatureFieldAnchorOccurrenceAll SignatureFieldAnchorOccurrence = "all" )
Known values of SignatureFieldAnchorOccurrence.
type SignatureFieldDateFormat ¶
type SignatureFieldDateFormat string
SignatureFieldDateFormat: `date_signed` only.
SignatureFieldDateFormat is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldDateFormatDdMmYyyy SignatureFieldDateFormat = "DD/MM/YYYY" SignatureFieldDateFormatMmDdYyyy SignatureFieldDateFormat = "MM/DD/YYYY" SignatureFieldDateFormatYyyyMmDd SignatureFieldDateFormat = "YYYY-MM-DD" SignatureFieldDateFormatDMmmmYyyy SignatureFieldDateFormat = "D MMMM YYYY" )
Known values of SignatureFieldDateFormat.
type SignatureFieldResult ¶
type SignatureFieldResult struct {
// The field's key, as used in `sign.field_values`.
Key string `json:"key"`
Type SignatureFieldResultType `json:"type"`
Role SignatureFieldResultRole `json:"role"`
Label string `json:"label"`
// Page number, from 1. For a Word document, a page of the converted PDF.
Page int64 `json:"page"`
// Left edge, as a fraction of the page width.
X float64 `json:"x"`
// Top edge, as a fraction of the page height.
Y float64 `json:"y"`
// Width, as a fraction of the page width.
Width float64 `json:"width"`
// Height, as a fraction of the page height.
Height float64 `json:"height"`
Required bool `json:"required"`
// A string for `text`, `email`, `full_name`, `date_signed` and `data`, a
// boolean for a `checkbox`, and `true` for an applied signature or initials.
// `null` when empty.
Value any `json:"value"`
// The value as stamped on the page: dates in the field's `date_format`, `Yes`
// or `No` for a checkbox, `Signed` for a signature or initials.
DisplayValue string `json:"display_value"`
// Where the value came from: `signer` (typed, ticked or applied by the signer),
// `identity` (the verified ID), `contact` (the verified email or phone),
// `company` (the verified company), `session` (`vendor_data`), `metadata`,
// `api` (`sign.field_values`) or `signing_time` (the date signed).
ValueSource SignatureFieldResultValueSource `json:"value_source"`
FilledAt time.Time `json:"filled_at"`
// Signature and initials only: the path of the applied image. See [Download a
// signature image](/sessions-api/electronic-signature/download-field-image).
ImageURL string `json:"image_url"`
// `signature_field_data_missing_action` let the signer sign anyway.
ValueUnavailableReason SignatureFieldResultValueUnavailableReason `json:"value_unavailable_reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureFieldResult: A field of a signed document, with its value on this signer's copy. See [Fields](/core-technology/electronic-signature/report-electronic-signature#fields).
func (*SignatureFieldResult) UnmarshalJSON ¶
func (r *SignatureFieldResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureFieldResult leniently.
type SignatureFieldResultRole ¶
type SignatureFieldResultRole string
SignatureFieldResultRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldResultRoleVerifiedPerson SignatureFieldResultRole = "verified_person" SignatureFieldResultRoleLegalRepresentative SignatureFieldResultRole = "legal_representative" SignatureFieldResultRoleKeyPeople SignatureFieldResultRole = "key_people" )
Known values of SignatureFieldResultRole.
type SignatureFieldResultType ¶
type SignatureFieldResultType string
SignatureFieldResultType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldResultTypeSignature SignatureFieldResultType = "signature" SignatureFieldResultTypeInitials SignatureFieldResultType = "initials" SignatureFieldResultTypeFullName SignatureFieldResultType = "full_name" SignatureFieldResultTypeDateSigned SignatureFieldResultType = "date_signed" SignatureFieldResultTypeText SignatureFieldResultType = "text" SignatureFieldResultTypeCheckbox SignatureFieldResultType = "checkbox" SignatureFieldResultTypeEmail SignatureFieldResultType = "email" SignatureFieldResultTypeData SignatureFieldResultType = "data" )
Known values of SignatureFieldResultType.
type SignatureFieldResultValueSource ¶
type SignatureFieldResultValueSource string
SignatureFieldResultValueSource: Where the value came from: `signer` (typed, ticked or applied by the signer), `identity` (the verified ID), `contact` (the verified email or phone), `company` (the verified company), `session` (`vendor_data`), `metadata`, `api` (`sign.field_values`) or `signing_time` (the date signed).
SignatureFieldResultValueSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldResultValueSourceSigner SignatureFieldResultValueSource = "signer" SignatureFieldResultValueSourceIdentity SignatureFieldResultValueSource = "identity" SignatureFieldResultValueSourceContact SignatureFieldResultValueSource = "contact" SignatureFieldResultValueSourceCompany SignatureFieldResultValueSource = "company" SignatureFieldResultValueSourceSession SignatureFieldResultValueSource = "session" SignatureFieldResultValueSourceMetadata SignatureFieldResultValueSource = "metadata" SignatureFieldResultValueSourceAPI SignatureFieldResultValueSource = "api" SignatureFieldResultValueSourceSigningTime SignatureFieldResultValueSource = "signing_time" )
Known values of SignatureFieldResultValueSource.
type SignatureFieldResultValueUnavailableReason ¶
type SignatureFieldResultValueUnavailableReason string
SignatureFieldResultValueUnavailableReason: `source_empty` when a pre-filled field had no value in the session and `signature_field_data_missing_action` let the signer sign anyway.
SignatureFieldResultValueUnavailableReason is a string with known values below. The set is open: other values may appear and never cause an error.
const (
)
Known values of SignatureFieldResultValueUnavailableReason.
type SignatureFieldRole ¶
type SignatureFieldRole string
SignatureFieldRole: Who fills the field, with the `signature_signer` values. A step fills and stamps only the fields of its own signer. Defaults to the step's signer.
SignatureFieldRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldRoleVerifiedPerson SignatureFieldRole = "verified_person" SignatureFieldRoleLegalRepresentative SignatureFieldRole = "legal_representative" SignatureFieldRoleKeyPeople SignatureFieldRole = "key_people" )
Known values of SignatureFieldRole.
type SignatureFieldType ¶
type SignatureFieldType string
SignatureFieldType: What the field holds. The signer applies their adopted `signature` and `initials`, types `text`, ticks a `checkbox`, and types an `email` when the session has no verified email. Didit fills `full_name` (the verified name), `date_signed` (the date of signing, in the signer's time zone), `data` (from `prefill`) and a verified `email`, and shows them read-only. There is no date picker type: use `text`.
SignatureFieldType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldTypeSignature SignatureFieldType = "signature" SignatureFieldTypeInitials SignatureFieldType = "initials" SignatureFieldTypeFullName SignatureFieldType = "full_name" SignatureFieldTypeDateSigned SignatureFieldType = "date_signed" SignatureFieldTypeText SignatureFieldType = "text" SignatureFieldTypeCheckbox SignatureFieldType = "checkbox" SignatureFieldTypeEmail SignatureFieldType = "email" SignatureFieldTypeData SignatureFieldType = "data" )
Known values of SignatureFieldType.
type SignatureFieldValidation ¶
type SignatureFieldValidation struct {
// `letters`: letters in any script, spaces, hyphens and apostrophes. `number`:
// digits with an optional decimal separator. `pattern`: the value must match
// `pattern`.
Kind Opt[SignatureFieldValidationKind] `json:"kind"`
// From `0` up to `max_length`.
MinLength Opt[int64] `json:"min_length"`
MaxLength Opt[int64] `json:"max_length"`
// Required with `kind: "pattern"`. A regular expression the whole value must
// match. Lookarounds and backreferences aren't supported.
Pattern Opt[string] `json:"pattern"`
// Shown to the signer instead of the default error.
Message Opt[string] `json:"message"`
}
SignatureFieldValidation: Rules for a `text` field's value. The console preview, the signing flow and the API apply the same rules.
func (SignatureFieldValidation) MarshalJSON ¶
func (r SignatureFieldValidation) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SignatureFieldValidationKind ¶
type SignatureFieldValidationKind string
SignatureFieldValidationKind: `letters`: letters in any script, spaces, hyphens and apostrophes. `number`: digits with an optional decimal separator. `pattern`: the value must match `pattern`.
SignatureFieldValidationKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureFieldValidationKindAny SignatureFieldValidationKind = "any" SignatureFieldValidationKindLetters SignatureFieldValidationKind = "letters" SignatureFieldValidationKindNumber SignatureFieldValidationKind = "number" SignatureFieldValidationKindEmail SignatureFieldValidationKind = "email" SignatureFieldValidationKindPattern SignatureFieldValidationKind = "pattern" )
Known values of SignatureFieldValidationKind.
type SignatureResult ¶
type SignatureResult struct {
// Pass it as `signature_id` to download this signer's evidence or validate
// their signature.
ID string `json:"id"`
// The workflow step that produced it.
NodeID string `json:"node_id"`
// Where the signer is in the step. Only `signed` means the documents are
// signed.
Status SignatureResultStatus `json:"status"`
// The step's outcome. A warning sets it through its rule; custom status rules
// apply after.
Verdict SignatureResultVerdict `json:"verdict"`
// `aes`. `qes` (Qualified Electronic Signature, QES) is coming soon.
Level SignatureResultLevel `json:"level"`
Format SignatureResultFormat `json:"format"`
// `PAdES-B-LT` once signed.
Profile string `json:"profile"`
Signer SignatureResultSigner `json:"signer"`
IdentityUsed SignatureResultIdentityUsed `json:"identity_used"`
// The certificate the documents were signed with. `null` until signed.
Certificate SignatureResultCertificate `json:"certificate"`
Confirmation SignatureResultConfirmation `json:"confirmation"`
// The trusted timestamp in the signature. `null` until signed.
Timestamp SignatureResultTimestamp `json:"timestamp"`
Documents []SignatureResultDocuments `json:"documents"`
// The signature and initials the signer adopted for signature and initials
// fields. `null` until the signer adopts one.
AdoptedSignature SignatureResultAdoptedSignature `json:"adopted_signature"`
// When the signer agreed, on the review screen, to sign the documents
// electronically. Set when any document has fields.
ElectronicSignatureConsentAt time.Time `json:"electronic_signature_consent_at"`
// Path of the evidence PDF, once signed. See [Download the signature
// evidence](/sessions-api/electronic-signature/download-evidence).
EvidenceFile string `json:"evidence_file"`
// Warnings raised for this signer. See [Electronic Signature
// warnings](/core-technology/electronic-signature/warnings-electronic-signature).
Warnings []SignatureResultWarnings `json:"warnings"`
// The last cryptographic check of the signed documents. `null` until the
// documents are signed. If Didit can't confirm the outcome of signing, it's
// `{"valid": null, "reason": "signature_provider_outcome_unknown",
// "checked_at": ...}` and `status` stays `signing`: treat it as not signed.
Validation SignatureResultValidation `json:"validation"`
DeclinedAt time.Time `json:"declined_at"`
DeclinedAction SignatureResultDeclinedAction `json:"declined_action"`
SignedAt time.Time `json:"signed_at"`
// When the signing link stops working.
ExpiresAt time.Time `json:"expires_at"`
EmailSentAt time.Time `json:"email_sent_at"`
// The signer's IP address when they asked for their code.
IPAddress string `json:"ip_address"`
// Not collected: always `null`.
Place string `json:"place"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResult: One signer's result for one Electronic Signature step. See the [Electronic Signature report](/core-technology/electronic-signature/report-electronic-signature).
func (*SignatureResult) UnmarshalJSON ¶
func (r *SignatureResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResult leniently.
type SignatureResultAdoptedSignature ¶
type SignatureResultAdoptedSignature struct {
// `typed`: the verified name in a handwriting style. `drawn`: drawn with a
// finger or a mouse.
Method SignatureResultAdoptedSignatureMethod `json:"method"`
// The handwriting style of a typed signature. `null` when drawn.
Font string `json:"font"`
AdoptedAt time.Time `json:"adopted_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultAdoptedSignature: The signature and initials the signer adopted for signature and initials fields. `null` until the signer adopts one.
func (*SignatureResultAdoptedSignature) UnmarshalJSON ¶
func (r *SignatureResultAdoptedSignature) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultAdoptedSignature leniently.
type SignatureResultAdoptedSignatureMethod ¶
type SignatureResultAdoptedSignatureMethod string
SignatureResultAdoptedSignatureMethod: `typed`: the verified name in a handwriting style. `drawn`: drawn with a finger or a mouse.
SignatureResultAdoptedSignatureMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultAdoptedSignatureMethodTyped SignatureResultAdoptedSignatureMethod = "typed" SignatureResultAdoptedSignatureMethodDrawn SignatureResultAdoptedSignatureMethod = "drawn" )
Known values of SignatureResultAdoptedSignatureMethod.
type SignatureResultCertificate ¶
type SignatureResultCertificate struct {
Issuer string `json:"issuer"`
IssuedTo string `json:"issued_to"`
// Serial number, hexadecimal.
Serial string `json:"serial"`
ValidFrom time.Time `json:"valid_from"`
ValidUntil time.Time `json:"valid_until"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultCertificate: The certificate the documents were signed with. `null` until signed.
func (*SignatureResultCertificate) UnmarshalJSON ¶
func (r *SignatureResultCertificate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultCertificate leniently.
type SignatureResultConfirmation ¶
type SignatureResultConfirmation struct {
Channel SignatureResultConfirmationChannel `json:"channel"`
// The masked contact the code went to.
Destination string `json:"destination"`
ConfirmedAt time.Time `json:"confirmed_at"`
// Codes entered, the right one included.
Attempts int64 `json:"attempts"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultConfirmation is a response object.
func (*SignatureResultConfirmation) UnmarshalJSON ¶
func (r *SignatureResultConfirmation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultConfirmation leniently.
type SignatureResultConfirmationChannel ¶
type SignatureResultConfirmationChannel string
SignatureResultConfirmationChannel is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultConfirmationChannelEmail SignatureResultConfirmationChannel = "email" SignatureResultConfirmationChannelSMS SignatureResultConfirmationChannel = "sms" )
Known values of SignatureResultConfirmationChannel.
type SignatureResultDeclinedAction ¶
type SignatureResultDeclinedAction string
SignatureResultDeclinedAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultDeclinedActionDecline SignatureResultDeclinedAction = "DECLINE" SignatureResultDeclinedActionReview SignatureResultDeclinedAction = "REVIEW" SignatureResultDeclinedActionNoAction SignatureResultDeclinedAction = "NO_ACTION" )
Known values of SignatureResultDeclinedAction.
type SignatureResultDocuments ¶
type SignatureResultDocuments struct {
// The document on this signer's copy. Use it to download the signed file.
ID string `json:"id"`
// Same as `id`.
UUID string `json:"uuid"`
Title string `json:"title"`
FileName string `json:"file_name"`
// Pages of the document signed. For Word, of the converted PDF.
Pages int64 `json:"pages"`
SizeBytes int64 `json:"size_bytes"`
// SHA-256 of the document as the signer was shown it.
Sha256Original string `json:"sha256_original"`
// SHA-256 of the signed PDF, once signed.
Sha256Signed string `json:"sha256_signed"`
// `not_signed`: opened but not signed. `not_reached`: never opened.
Status SignatureResultDocumentsStatus `json:"status"`
OpenedAt time.Time `json:"opened_at"`
// When the signer reached the end of a document without fields, when the step
// requires it.
ReadAt time.Time `json:"read_at"`
ReadToEnd bool `json:"read_to_end"`
// When the signer agreed to a document without fields, or finished the fields
// of a document with fields.
ConsentedAt time.Time `json:"consented_at"`
Consent bool `json:"consent"`
// Path of the signed PDF, once signed. See [Download a signed
// document](/sessions-api/electronic-signature/download-signed-document).
SignedFile string `json:"signed_file"`
// `fields` for a document with fields, `read_and_agree` for a document without.
Mode SignatureResultDocumentsMode `json:"mode"`
// `pdf`, or `docx` for a Word document Didit converted to PDF.
SourceFormat SignatureResultDocumentsSourceFormat `json:"source_format"`
// `null` for a PDF. For a Word document, the original file and the conversion.
Conversion SignatureResultDocumentsConversion `json:"conversion"`
// Fields on the document, with their values. Empty for a document without
// fields.
Fields []SignatureFieldResult `json:"fields"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultDocuments is a response object.
func (*SignatureResultDocuments) UnmarshalJSON ¶
func (r *SignatureResultDocuments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultDocuments leniently.
type SignatureResultDocumentsConversion ¶
type SignatureResultDocumentsConversion struct {
From SignatureResultDocumentsConversionFrom `json:"from"`
// Your original Word file name.
FileName string `json:"file_name"`
// SHA-256 of your original Word file.
Sha256 string `json:"sha256"`
// Size of your original Word file.
SizeBytes int64 `json:"size_bytes"`
// Version of the converter that produced the PDF.
Converter string `json:"converter"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultDocumentsConversion: `null` for a PDF. For a Word document, the original file and the conversion.
func (*SignatureResultDocumentsConversion) UnmarshalJSON ¶
func (r *SignatureResultDocumentsConversion) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultDocumentsConversion leniently.
type SignatureResultDocumentsConversionFrom ¶
type SignatureResultDocumentsConversionFrom string
SignatureResultDocumentsConversionFrom is a string with known values below. The set is open: other values may appear and never cause an error.
const (
SignatureResultDocumentsConversionFromDocx SignatureResultDocumentsConversionFrom = "docx"
)
Known values of SignatureResultDocumentsConversionFrom.
type SignatureResultDocumentsMode ¶
type SignatureResultDocumentsMode string
SignatureResultDocumentsMode: `fields` for a document with fields, `read_and_agree` for a document without.
SignatureResultDocumentsMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultDocumentsModeFields SignatureResultDocumentsMode = "fields" SignatureResultDocumentsModeReadAndAgree SignatureResultDocumentsMode = "read_and_agree" )
Known values of SignatureResultDocumentsMode.
type SignatureResultDocumentsSourceFormat ¶
type SignatureResultDocumentsSourceFormat string
SignatureResultDocumentsSourceFormat: `pdf`, or `docx` for a Word document Didit converted to PDF.
SignatureResultDocumentsSourceFormat is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultDocumentsSourceFormatPDF SignatureResultDocumentsSourceFormat = "pdf" SignatureResultDocumentsSourceFormatDocx SignatureResultDocumentsSourceFormat = "docx" )
Known values of SignatureResultDocumentsSourceFormat.
type SignatureResultDocumentsStatus ¶
type SignatureResultDocumentsStatus string
SignatureResultDocumentsStatus: `not_signed`: opened but not signed. `not_reached`: never opened.
SignatureResultDocumentsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultDocumentsStatusSigned SignatureResultDocumentsStatus = "signed" SignatureResultDocumentsStatusDeclined SignatureResultDocumentsStatus = "declined" SignatureResultDocumentsStatusNotSigned SignatureResultDocumentsStatus = "not_signed" SignatureResultDocumentsStatusNotReached SignatureResultDocumentsStatus = "not_reached" )
Known values of SignatureResultDocumentsStatus.
type SignatureResultFormat ¶
type SignatureResultFormat string
SignatureResultFormat is a string with known values below. The set is open: other values may appear and never cause an error.
const (
SignatureResultFormatPades SignatureResultFormat = "pades"
)
Known values of SignatureResultFormat.
type SignatureResultIdentityUsed ¶
type SignatureResultIdentityUsed struct {
SessionID string `json:"session_id"`
KYCID string `json:"kyc_id"`
Verified bool `json:"verified"`
// The name the signer had to match.
ExpectedName string `json:"expected_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultIdentityUsed is a response object.
func (*SignatureResultIdentityUsed) UnmarshalJSON ¶
func (r *SignatureResultIdentityUsed) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultIdentityUsed leniently.
type SignatureResultLevel ¶
type SignatureResultLevel string
SignatureResultLevel: `aes`. `qes` (Qualified Electronic Signature, QES) is coming soon.
SignatureResultLevel is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultLevelAes SignatureResultLevel = "aes" SignatureResultLevelQes SignatureResultLevel = "qes" )
Known values of SignatureResultLevel.
type SignatureResultPlaceUnavailableReason ¶
type SignatureResultPlaceUnavailableReason string
SignatureResultPlaceUnavailableReason is a string with known values below. The set is open: other values may appear and never cause an error.
const (
)
Known values of SignatureResultPlaceUnavailableReason.
type SignatureResultSigner ¶
type SignatureResultSigner struct {
// Verified name.
Name string `json:"name"`
Capacity SignatureResultSignerCapacity `json:"capacity"`
Company string `json:"company"`
// The key person's designation, as declared.
Role string `json:"role"`
// The key person's structured roles, as declared for the company.
Roles []string `json:"roles"`
// The KYC session that verified the signer.
IdentitySessionID string `json:"identity_session_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultSigner is a response object.
func (*SignatureResultSigner) UnmarshalJSON ¶
func (r *SignatureResultSigner) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultSigner leniently.
type SignatureResultSignerCapacity ¶
type SignatureResultSignerCapacity string
SignatureResultSignerCapacity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultSignerCapacitySelf SignatureResultSignerCapacity = "self" SignatureResultSignerCapacityCompany SignatureResultSignerCapacity = "company" )
Known values of SignatureResultSignerCapacity.
type SignatureResultStatus ¶
type SignatureResultStatus string
SignatureResultStatus: Where the signer is in the step. Only `signed` means the documents are signed.
SignatureResultStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultStatusIntro SignatureResultStatus = "intro" SignatureResultStatusReview SignatureResultStatus = "review" SignatureResultStatusCode SignatureResultStatus = "code" SignatureResultStatusSigning SignatureResultStatus = "signing" SignatureResultStatusSigned SignatureResultStatus = "signed" SignatureResultStatusDeclined SignatureResultStatus = "declined" )
Known values of SignatureResultStatus.
type SignatureResultTimestamp ¶
type SignatureResultTimestamp struct {
Time time.Time `json:"time"`
// Always `false` for AES.
Qualified bool `json:"qualified"`
Valid bool `json:"valid"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultTimestamp: The trusted timestamp in the signature. `null` until signed.
func (*SignatureResultTimestamp) UnmarshalJSON ¶
func (r *SignatureResultTimestamp) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultTimestamp leniently.
type SignatureResultValidation ¶
type SignatureResultValidation struct {
// `true` when every document is valid. `null` when the outcome of signing
// couldn't be confirmed.
Valid bool `json:"valid"`
// Set when `valid` is `null`: `signature_provider_outcome_unknown`.
Reason string `json:"reason"`
CheckedAt time.Time `json:"checked_at"`
Documents []SignatureResultValidationDocuments `json:"documents"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultValidation: The last cryptographic check of the signed documents. `null` until the documents are signed. If Didit can't confirm the outcome of signing, it's `{"valid": null, "reason": "signature_provider_outcome_unknown", "checked_at": ...}` and `status` stays `signing`: treat it as not signed.
func (*SignatureResultValidation) UnmarshalJSON ¶
func (r *SignatureResultValidation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultValidation leniently.
type SignatureResultValidationDocuments ¶
type SignatureResultValidationDocuments struct {
ID string `json:"id"`
CheckedAt time.Time `json:"checked_at"`
// `true` when the signature and the timestamp are both valid and trusted.
Valid bool `json:"valid"`
// `true` when the document is unchanged since signing.
Integrity bool `json:"integrity"`
// `true` when the signing certificate chains to a trusted root.
Trusted bool `json:"trusted"`
Revoked bool `json:"revoked"`
// EU Trusted List check. For AES: `{"status": "not_applicable", "reason":
// "aes_not_qualified"}`.
TrustedList SignatureResultValidationDocumentsTrustedList `json:"trusted_list"`
// The certificate the documents were signed with. `null` until signed.
Certificate SignatureResultValidationDocumentsCertificate `json:"certificate"`
// The trusted timestamp in the signature. `null` until signed.
Timestamp SignatureResultValidationDocumentsTimestamp `json:"timestamp"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultValidationDocuments is a response object.
func (*SignatureResultValidationDocuments) UnmarshalJSON ¶
func (r *SignatureResultValidationDocuments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultValidationDocuments leniently.
type SignatureResultValidationDocumentsCertificate ¶
type SignatureResultValidationDocumentsCertificate struct {
Issuer string `json:"issuer"`
IssuedTo string `json:"issued_to"`
// Serial number, hexadecimal.
Serial string `json:"serial"`
ValidFrom time.Time `json:"valid_from"`
ValidUntil time.Time `json:"valid_until"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultValidationDocumentsCertificate: The certificate the documents were signed with. `null` until signed.
func (*SignatureResultValidationDocumentsCertificate) UnmarshalJSON ¶
func (r *SignatureResultValidationDocumentsCertificate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultValidationDocumentsCertificate leniently.
type SignatureResultValidationDocumentsTimestamp ¶
type SignatureResultValidationDocumentsTimestamp struct {
Time time.Time `json:"time"`
// Always `false` for AES.
Qualified bool `json:"qualified"`
Valid bool `json:"valid"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultValidationDocumentsTimestamp: The trusted timestamp in the signature. `null` until signed.
func (*SignatureResultValidationDocumentsTimestamp) UnmarshalJSON ¶
func (r *SignatureResultValidationDocumentsTimestamp) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultValidationDocumentsTimestamp leniently.
type SignatureResultValidationDocumentsTrustedList ¶
type SignatureResultValidationDocumentsTrustedList struct {
Status string `json:"status"`
Reason string `json:"reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultValidationDocumentsTrustedList: EU Trusted List check. For AES: `{"status": "not_applicable", "reason": "aes_not_qualified"}`.
func (*SignatureResultValidationDocumentsTrustedList) UnmarshalJSON ¶
func (r *SignatureResultValidationDocumentsTrustedList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultValidationDocumentsTrustedList leniently.
type SignatureResultVerdict ¶
type SignatureResultVerdict string
SignatureResultVerdict: The step's outcome. A warning sets it through its rule; custom status rules apply after.
SignatureResultVerdict is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultVerdictNotFinished SignatureResultVerdict = "Not Finished" SignatureResultVerdictApproved SignatureResultVerdict = "Approved" SignatureResultVerdictInReview SignatureResultVerdict = "In Review" SignatureResultVerdictDeclined SignatureResultVerdict = "Declined" )
Known values of SignatureResultVerdict.
type SignatureResultWarnings ¶
type SignatureResultWarnings struct {
Code SignatureResultWarningsCode `json:"code"`
NodeID string `json:"node_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SignatureResultWarnings is a response object.
func (*SignatureResultWarnings) UnmarshalJSON ¶
func (r *SignatureResultWarnings) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SignatureResultWarnings leniently.
type SignatureResultWarningsCode ¶
type SignatureResultWarningsCode string
SignatureResultWarningsCode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SignatureResultWarningsCodeSignatureDeclined SignatureResultWarningsCode = "SIGNATURE_DECLINED" SignatureResultWarningsCodeSignatureOTPFailed SignatureResultWarningsCode = "SIGNATURE_OTP_FAILED" SignatureResultWarningsCodeSignatureNameMismatch SignatureResultWarningsCode = "SIGNATURE_NAME_MISMATCH" SignatureResultWarningsCodeSignatureIdentityNotVerified SignatureResultWarningsCode = "SIGNATURE_IDENTITY_NOT_VERIFIED" SignatureResultWarningsCodeSignatureDocumentChanged SignatureResultWarningsCode = "SIGNATURE_DOCUMENT_CHANGED" SignatureResultWarningsCodeSignatureFieldDataMissing SignatureResultWarningsCode = "SIGNATURE_FIELD_DATA_MISSING" )
Known values of SignatureResultWarningsCode.
type SimpleQuestionnaireElement ¶
type SimpleQuestionnaireElement struct {
// Optional stable question id. If omitted, the API generates `q1`, `q2`, etc.
// Use lowercase letters, numbers, and underscores for readability.
ID Opt[string] `json:"id"`
// Question type. The API accepts these lowercase values and their uppercase
// equivalents. Required.
ElementType SimpleQuestionnaireElementElementType `json:"element_type"`
// Question label by language code, for example `{ "en": "Source of funds" }`.
// Required.
Label map[string]string `json:"label"`
Description Opt[map[string]string] `json:"description"`
Placeholder Opt[map[string]string] `json:"placeholder"`
IsRequired Opt[bool] `json:"is_required"`
// Use for `dropdown`, `single_choice`, and `multiple_choice`. If `value` is
// omitted, the API generates one from the option label.
Options Opt[[]SimpleQuestionnaireElementOptions] `json:"options"`
// Use with `file_upload` or `image`.
MaxFiles Opt[int64] `json:"max_files"`
// Optional format validation for `short_text`, `long_text`, or `number`.
// Enforced while the user fills the field (they cannot proceed until it passes)
// and re-checked by the API on submission.
Validation Opt[SimpleQuestionnaireElementValidation] `json:"validation"`
}
SimpleQuestionnaireElement is a request object.
func (SimpleQuestionnaireElement) MarshalJSON ¶
func (r SimpleQuestionnaireElement) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleQuestionnaireElementElementType ¶
type SimpleQuestionnaireElementElementType string
SimpleQuestionnaireElementElementType: Question type. The API accepts these lowercase values and their uppercase equivalents.
SimpleQuestionnaireElementElementType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleQuestionnaireElementElementTypeShortText SimpleQuestionnaireElementElementType = "short_text" SimpleQuestionnaireElementElementTypeLongText SimpleQuestionnaireElementElementType = "long_text" SimpleQuestionnaireElementElementTypeDropdown SimpleQuestionnaireElementElementType = "dropdown" SimpleQuestionnaireElementElementTypeSingleChoice SimpleQuestionnaireElementElementType = "single_choice" SimpleQuestionnaireElementElementTypeMultipleChoice SimpleQuestionnaireElementElementType = "multiple_choice" SimpleQuestionnaireElementElementTypeNumber SimpleQuestionnaireElementElementType = "number" SimpleQuestionnaireElementElementTypeImage SimpleQuestionnaireElementElementType = "image" SimpleQuestionnaireElementElementTypeFileUpload SimpleQuestionnaireElementElementType = "file_upload" SimpleQuestionnaireElementElementTypeTime SimpleQuestionnaireElementElementType = "time" SimpleQuestionnaireElementElementTypeEmail SimpleQuestionnaireElementElementType = "email" SimpleQuestionnaireElementElementTypeAddress SimpleQuestionnaireElementElementType = "address" SimpleQuestionnaireElementElementTypePhone SimpleQuestionnaireElementElementType = "phone" SimpleQuestionnaireElementElementTypeCountry SimpleQuestionnaireElementElementType = "country" SimpleQuestionnaireElementElementTypeDatePicker SimpleQuestionnaireElementElementType = "date_picker" SimpleQuestionnaireElementElementTypeConsent SimpleQuestionnaireElementElementType = "consent" SimpleQuestionnaireElementElementTypeSectionHeader SimpleQuestionnaireElementElementType = "section_header" SimpleQuestionnaireElementElementTypeSeparator SimpleQuestionnaireElementElementType = "separator" SimpleQuestionnaireElementElementTypeHeading SimpleQuestionnaireElementElementType = "heading" SimpleQuestionnaireElementElementTypeParagraph SimpleQuestionnaireElementElementType = "paragraph" )
Known values of SimpleQuestionnaireElementElementType.
type SimpleQuestionnaireElementOptions ¶
type SimpleQuestionnaireElementOptions struct {
Value Opt[string] `json:"value"`
// Required.
Label map[string]string `json:"label"`
}
SimpleQuestionnaireElementOptions is a request object.
func (SimpleQuestionnaireElementOptions) MarshalJSON ¶
func (r SimpleQuestionnaireElementOptions) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleQuestionnaireElementValidation ¶
type SimpleQuestionnaireElementValidation struct {
// Regular expression (ECMA-262 subset) the value must fully match. For
// `short_text` and `long_text`. Do not add ^/$ anchors; the whole value is
// matched.
Pattern Opt[string] `json:"pattern"`
// Minimum number of characters. For `short_text` and `long_text`.
MinLength Opt[int64] `json:"min_length"`
// Maximum number of characters. For `short_text` and `long_text`.
MaxLength Opt[int64] `json:"max_length"`
// Minimum numeric value. For `number`.
Min Opt[float64] `json:"min"`
// Maximum numeric value. For `number`.
Max Opt[float64] `json:"max"`
// Translated message shown when validation fails, keyed by language code.
ErrorMessage Opt[map[string]string] `json:"error_message"`
}
SimpleQuestionnaireElementValidation: Optional format validation for `short_text`, `long_text`, or `number`. Enforced while the user fills the field (they cannot proceed until it passes) and re-checked by the API on submission.
func (SimpleQuestionnaireElementValidation) MarshalJSON ¶
func (r SimpleQuestionnaireElementValidation) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleQuestionnaireRequest ¶
type SimpleQuestionnaireRequest struct {
// Internal name for the questionnaire. Required.
Title string `json:"title"`
Description Opt[string] `json:"description"`
// Languages included in every label. Must include `en`. Required.
Languages []string `json:"languages"`
// Default language. Must be included in `languages`.
DefaultLanguage Opt[string] `json:"default_language"`
IsActive Opt[bool] `json:"is_active"`
// Omit this field to create a published questionnaire ready for workflows.
Status Opt[SimpleQuestionnaireRequestStatus] `json:"status"`
// Questions in the exact order users should see them. Branching and conditional
// fields are not supported. Required.
FormElements []SimpleQuestionnaireElement `json:"form_elements"`
}
SimpleQuestionnaireRequest: Create a simple linear questionnaire. The API converts `form_elements` into the internal questionnaire graph.
func (SimpleQuestionnaireRequest) MarshalJSON ¶
func (r SimpleQuestionnaireRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleQuestionnaireRequestStatus ¶
type SimpleQuestionnaireRequestStatus string
SimpleQuestionnaireRequestStatus: Omit this field to create a published questionnaire ready for workflows.
SimpleQuestionnaireRequestStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleQuestionnaireRequestStatusDraft SimpleQuestionnaireRequestStatus = "draft" SimpleQuestionnaireRequestStatusPublished SimpleQuestionnaireRequestStatus = "published" )
Known values of SimpleQuestionnaireRequestStatus.
type SimpleQuestionnaireUpdateRequest ¶
type SimpleQuestionnaireUpdateRequest struct {
Title Opt[string] `json:"title"`
Description Opt[string] `json:"description"`
Languages Opt[[]string] `json:"languages"`
DefaultLanguage Opt[string] `json:"default_language"`
IsActive Opt[bool] `json:"is_active"`
Status Opt[SimpleQuestionnaireUpdateRequestStatus] `json:"status"`
// If provided, this replaces the full linear question list.
FormElements Opt[[]SimpleQuestionnaireElement] `json:"form_elements"`
}
SimpleQuestionnaireUpdateRequest: Update questionnaire metadata or replace the full linear `form_elements` list.
func (SimpleQuestionnaireUpdateRequest) MarshalJSON ¶
func (r SimpleQuestionnaireUpdateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleQuestionnaireUpdateRequestStatus ¶
type SimpleQuestionnaireUpdateRequestStatus string
SimpleQuestionnaireUpdateRequestStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleQuestionnaireUpdateRequestStatusDraft SimpleQuestionnaireUpdateRequestStatus = "draft" SimpleQuestionnaireUpdateRequestStatusPublished SimpleQuestionnaireUpdateRequestStatus = "published" )
Known values of SimpleQuestionnaireUpdateRequestStatus.
type SimpleWorkflowFeature ¶
type SimpleWorkflowFeature struct {
// Feature to run. Use the uppercase values shown here. Required.
Feature SimpleWorkflowFeatureFeature `json:"feature"`
// Feature-specific settings. For `QUESTIONNAIRE`, include `questionnaire_uuid`
// with the `questionnaire_id` returned by the questionnaire create endpoint.
// For `OCR`, `methods` selects which ID Verification methods each country may
// use (document capture, non-doc lookup against a government or other
// authoritative source, and digital identity wallets); omit it and every
// country is document capture only. For `SIGNATURE`, see [Electronic Signature
// settings](/management-api/workflows/feature-configs#electronic-signature):
// `signature_level` accepts `aes` only for now, and workflow documents and
// their fields are managed in the console, so through the API send documents
// and fields per session with `signature_documents_source: "session"`.
Config Opt[map[string]any] `json:"config"`
// Optional internal label for this workflow node.
Label Opt[string] `json:"label"`
}
SimpleWorkflowFeature is a request object.
func (SimpleWorkflowFeature) MarshalJSON ¶
func (r SimpleWorkflowFeature) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleWorkflowFeatureFeature ¶
type SimpleWorkflowFeatureFeature string
SimpleWorkflowFeatureFeature: Feature to run. Use the uppercase values shown here.
SimpleWorkflowFeatureFeature is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleWorkflowFeatureFeatureOCR SimpleWorkflowFeatureFeature = "OCR" SimpleWorkflowFeatureFeatureNFC SimpleWorkflowFeatureFeature = "NFC" SimpleWorkflowFeatureFeatureLiveness SimpleWorkflowFeatureFeature = "LIVENESS" SimpleWorkflowFeatureFeatureFaceMatch SimpleWorkflowFeatureFeature = "FACE_MATCH" SimpleWorkflowFeatureFeatureProofOfAddress SimpleWorkflowFeatureFeature = "PROOF_OF_ADDRESS" SimpleWorkflowFeatureFeatureQuestionnaire SimpleWorkflowFeatureFeature = "QUESTIONNAIRE" SimpleWorkflowFeatureFeatureDocumentAi SimpleWorkflowFeatureFeature = "DOCUMENT_AI" SimpleWorkflowFeatureFeaturePhoneVerification SimpleWorkflowFeatureFeature = "PHONE_VERIFICATION" SimpleWorkflowFeatureFeatureEmailVerification SimpleWorkflowFeatureFeature = "EMAIL_VERIFICATION" SimpleWorkflowFeatureFeatureDatabaseValidation SimpleWorkflowFeatureFeature = "DATABASE_VALIDATION" SimpleWorkflowFeatureFeatureAML SimpleWorkflowFeatureFeature = "AML" SimpleWorkflowFeatureFeatureIPAnalysis SimpleWorkflowFeatureFeature = "IP_ANALYSIS" SimpleWorkflowFeatureFeatureAgeEstimation SimpleWorkflowFeatureFeature = "AGE_ESTIMATION" SimpleWorkflowFeatureFeatureKYBRegistry SimpleWorkflowFeatureFeature = "KYB_REGISTRY" SimpleWorkflowFeatureFeatureKYBDocuments SimpleWorkflowFeatureFeature = "KYB_DOCUMENTS" SimpleWorkflowFeatureFeatureKYBKeyPeople SimpleWorkflowFeatureFeature = "KYB_KEY_PEOPLE" SimpleWorkflowFeatureFeatureSignature SimpleWorkflowFeatureFeature = "SIGNATURE" )
Known values of SimpleWorkflowFeatureFeature.
type SimpleWorkflowRequest ¶
type SimpleWorkflowRequest struct {
// Display name for the workflow (max 50 characters). Defaults to `"ID
// Verification"` when omitted - always set it so workflows stay
// distinguishable.
WorkflowLabel Opt[string] `json:"workflow_label"`
// Set this workflow as the default for new sessions.
IsDefault Opt[bool] `json:"is_default"`
// Omit this field to create a published workflow ready for sessions. Use
// `draft` only when you want to save without publishing.
Status Opt[SimpleWorkflowRequestStatus] `json:"status"`
// Verification features in execution order. The API links each item to the next
// one and adds one final status node automatically. Required.
Features []SimpleWorkflowFeature `json:"features"`
// Enable white-label customization for sessions created with this workflow.
IsWhiteLabelEnabled Opt[bool] `json:"is_white_label_enabled"`
// Allow the verification flow to run on desktop browsers.
IsDesktopAllowed Opt[bool] `json:"is_desktop_allowed"`
// Maximum retry attempts allowed after a declined verification. `0` blocks the
// user after the first decline.
MaxRetryAttempts Opt[int64] `json:"max_retry_attempts"`
// Rolling window in days used to count retries. `null` enforces an all-time
// limit.
RetryWindowDays Opt[int64] `json:"retry_window_days"`
// Maximum liveness submissions per session. Default 3: one initial attempt plus
// two retries. This value is also copied into generated liveness and
// age-estimation workflow nodes unless the feature-level config overrides it.
FaceLivenessMaxAttempts Opt[int64] `json:"face_liveness_max_attempts"`
// Maximum face-match submissions per session. Default 3: one initial attempt
// plus two retries. This value is also copied into generated face-match
// workflow nodes unless the feature-level config overrides it.
FaceMatchMaxAttempts Opt[int64] `json:"face_match_max_attempts"`
// Seconds before an unfinished session expires. Minimum 1 hour (3600), maximum
// 4 weeks (2419200).
SessionExpirationTime Opt[int64] `json:"session_expiration_time"`
}
SimpleWorkflowRequest: Create a simple linear workflow. The API converts this feature list into a node-based workflow graph internally. STRICT field whitelist: any key not listed here (including `workflow_type`) is rejected with a 400.
func (SimpleWorkflowRequest) MarshalJSON ¶
func (r SimpleWorkflowRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleWorkflowRequestStatus ¶
type SimpleWorkflowRequestStatus string
SimpleWorkflowRequestStatus: Omit this field to create a published workflow ready for sessions. Use `draft` only when you want to save without publishing.
SimpleWorkflowRequestStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleWorkflowRequestStatusDraft SimpleWorkflowRequestStatus = "draft" SimpleWorkflowRequestStatusPublished SimpleWorkflowRequestStatus = "published" )
Known values of SimpleWorkflowRequestStatus.
type SimpleWorkflowUpdateRequest ¶
type SimpleWorkflowUpdateRequest struct {
// Display name for the workflow (max 50 characters).
WorkflowLabel Opt[string] `json:"workflow_label"`
// Set this workflow as the default for new sessions.
IsDefault Opt[bool] `json:"is_default"`
// Controls versioning. Omit to update the current version in place (drafts
// auto-publish). `published` on an already-published version creates and
// returns a NEW version. `draft` is only valid while the version is still a
// draft.
Status Opt[SimpleWorkflowUpdateRequestStatus] `json:"status"`
// If provided, this replaces the full feature order and configuration.
Features Opt[[]SimpleWorkflowFeature] `json:"features"`
// Enable white-label customization for sessions created with this workflow.
IsWhiteLabelEnabled Opt[bool] `json:"is_white_label_enabled"`
// Allow the verification flow to run on desktop browsers.
IsDesktopAllowed Opt[bool] `json:"is_desktop_allowed"`
// Maximum retry attempts allowed after a declined verification. `0` blocks the
// user after the first decline.
MaxRetryAttempts Opt[int64] `json:"max_retry_attempts"`
// Rolling window in days used to count retries. `null` enforces an all-time
// limit.
RetryWindowDays Opt[int64] `json:"retry_window_days"`
// Maximum liveness submissions per session. This value is also copied into
// generated liveness and age-estimation workflow nodes unless the feature-level
// config overrides it.
FaceLivenessMaxAttempts Opt[int64] `json:"face_liveness_max_attempts"`
// Maximum face-match submissions per session. This value is also copied into
// generated face-match workflow nodes unless the feature-level config overrides
// it.
FaceMatchMaxAttempts Opt[int64] `json:"face_match_max_attempts"`
// Seconds before an unfinished session expires. Minimum 1 hour (3600), maximum
// 4 weeks (2419200).
SessionExpirationTime Opt[int64] `json:"session_expiration_time"`
}
SimpleWorkflowUpdateRequest: Update workflow metadata or replace the full linear feature list. STRICT field whitelist: any key not listed here is rejected with a 400.
func (SimpleWorkflowUpdateRequest) MarshalJSON ¶
func (r SimpleWorkflowUpdateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type SimpleWorkflowUpdateRequestStatus ¶
type SimpleWorkflowUpdateRequestStatus string
SimpleWorkflowUpdateRequestStatus: Controls versioning. Omit to update the current version in place (drafts auto-publish). `published` on an already-published version creates and returns a NEW version. `draft` is only valid while the version is still a draft.
SimpleWorkflowUpdateRequestStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SimpleWorkflowUpdateRequestStatusDraft SimpleWorkflowUpdateRequestStatus = "draft" SimpleWorkflowUpdateRequestStatusPublished SimpleWorkflowUpdateRequestStatus = "published" )
Known values of SimpleWorkflowUpdateRequestStatus.
type SocialFootprintCategorySummary ¶
type SocialFootprintCategorySummary struct {
// Platforms in this category where registration is confirmed.
Registered int64 `json:"registered"`
// Share of the category's checked platforms with a registration, 0.0-1.0.
Ratio float64 `json:"ratio"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SocialFootprintCategorySummary is a response object.
func (*SocialFootprintCategorySummary) UnmarshalJSON ¶
func (r *SocialFootprintCategorySummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SocialFootprintCategorySummary leniently.
type SocialFootprintPlatform ¶
type SocialFootprintPlatform struct {
// Platform identifier.
Platform string `json:"platform"`
// Platform category, e.g. MESSAGING, SOCIAL_MEDIA, ECOMMERCE, PROFESSIONAL,
// EMAIL_PROVIDER.
Category string `json:"category"`
// `global` for worldwide platforms, `local` for region-specific ones.
Scope SocialFootprintPlatformScope `json:"scope"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SocialFootprintPlatform is a response object.
func (*SocialFootprintPlatform) UnmarshalJSON ¶
func (r *SocialFootprintPlatform) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SocialFootprintPlatform leniently.
type SocialFootprintPlatformScope ¶
type SocialFootprintPlatformScope string
SocialFootprintPlatformScope: `global` for worldwide platforms, `local` for region-specific ones.
SocialFootprintPlatformScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SocialFootprintPlatformScopeGlobal SocialFootprintPlatformScope = "global" SocialFootprintPlatformScopeLocal SocialFootprintPlatformScope = "local" )
Known values of SocialFootprintPlatformScope.
type SocialFootprintProfile ¶
type SocialFootprintProfile struct {
// Profile name, when the platform exposes one.
Name string `json:"name"`
// Profile photo URL, when the platform exposes one.
Photo string `json:"photo"`
// Profile about/bio text, when the platform exposes one.
About string `json:"about"`
// Profile visibility, when the platform exposes it.
PrivacyStatus SocialFootprintProfilePrivacyStatus `json:"privacy_status"`
// Whether the profile is a business account, when the platform exposes it.
BusinessAccount bool `json:"business_account"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
SocialFootprintProfile is a response object.
func (*SocialFootprintProfile) UnmarshalJSON ¶
func (r *SocialFootprintProfile) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes SocialFootprintProfile leniently.
type SocialFootprintProfilePrivacyStatus ¶
type SocialFootprintProfilePrivacyStatus string
SocialFootprintProfilePrivacyStatus: Profile visibility, when the platform exposes it.
SocialFootprintProfilePrivacyStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( SocialFootprintProfilePrivacyStatusPublic SocialFootprintProfilePrivacyStatus = "PUBLIC" SocialFootprintProfilePrivacyStatusPrivate SocialFootprintProfilePrivacyStatus = "PRIVATE" )
Known values of SocialFootprintProfilePrivacyStatus.
type TokenVerificationError ¶
type TokenVerificationError struct {
Reason TokenVerificationReason
Message string
}
TokenVerificationError reports an Authentication access or ID token that failed verification. Reason is machine-readable.
func (*TokenVerificationError) Error ¶
func (e *TokenVerificationError) Error() string
type TokenVerificationReason ¶
type TokenVerificationReason string
TokenVerificationReason is the machine-readable reason of a *TokenVerificationError.
const ( // TokenReasonMalformed: not a compact JWS with a JSON header and claims. TokenReasonMalformed TokenVerificationReason = "malformed" // TokenReasonUnsupportedAlgorithm: alg is not ES256. TokenReasonUnsupportedAlgorithm TokenVerificationReason = "unsupported_algorithm" // TokenReasonInvalidType: the typ header is not the expected one. TokenReasonInvalidType TokenVerificationReason = "invalid_type" // TokenReasonUnknownKey: no JSON Web Key matches the kid, even after a // refetch. TokenReasonUnknownKey TokenVerificationReason = "unknown_key" // TokenReasonInvalidSignature: the signature does not verify. TokenReasonInvalidSignature TokenVerificationReason = "invalid_signature" // TokenReasonInvalidIssuer: iss differs from the issuer. TokenReasonInvalidIssuer TokenVerificationReason = "invalid_issuer" // TokenReasonInvalidAudience: aud does not contain the expected audience. TokenReasonInvalidAudience TokenVerificationReason = "invalid_audience" // TokenReasonExpired: exp is in the past (beyond the leeway). TokenReasonExpired TokenVerificationReason = "expired" // TokenReasonNotYetValid: nbf or iat is in the future (beyond the leeway). TokenReasonNotYetValid TokenVerificationReason = "not_yet_valid" // TokenReasonInvalidNonce: the ID token nonce differs from the expected one. TokenReasonInvalidNonce TokenVerificationReason = "invalid_nonce" // TokenReasonMissingClaim: a required claim is missing or has the wrong type. TokenReasonMissingClaim TokenVerificationReason = "missing_claim" )
Authentication token verification failure reasons.
type TransactionDetail ¶
type TransactionDetail struct {
// Didit-stable transaction identifier. Use as `{transaction_id}` for follow-up
// calls.
UUID string `json:"uuid"`
// Environment of the application that owns the transaction. A `sandbox`
// transaction is stored but never evaluated, screened, notified or billed, so
// its empty `rule_runs` means "not evaluated".
Environment TransactionDetailEnvironment `json:"environment"`
// Application-scoped sequential transaction number shown in Console (e.g.
// `4123`).
TransactionNumber int64 `json:"transaction_number"`
// The `transaction_id` you supplied at create time (max 128 chars). Unique per
// application.
TxnID string `json:"txn_id"`
// When the transaction occurred (from `transaction_at`; defaults to submission
// time).
TxnDate time.Time `json:"txn_date"`
// IANA time zone identifier provided at create time.
ZoneID string `json:"zone_id"`
// Top-level category as stored: `finance`, `kyc`, `travelRule`,
// `userPlatformEvent`, `gamblingBet`, `gamblingLimitChange`,
// `gamblingBonusChange`, `auditTrailEvent`. Note multi-word values are echoed
// back in camelCase even when submitted in snake_case.
TransactionType string `json:"transaction_type"`
// Sub-type within the category (e.g. `deposit`, `withdrawal`, `transfer`).
// Defaults to the category when not supplied.
ActionType string `json:"action_type"`
// Direction relative to the subject. Stored uppercase regardless of the casing
// submitted (`in`/`out`/`inbound`/`outbound` are accepted on input).
Direction TransactionDetailDirection `json:"direction"`
// Current monitoring verdict. Transactions are created `APPROVED`; rules may
// flip them to `IN_REVIEW`/`DECLINED` synchronously.
Status TransactionDetailStatus `json:"status"`
// How the record originated: `LIVE` for transactions submitted through the API
// or SDK, `IMPORTED` for transactions loaded through the console import.
Source TransactionDetailSource `json:"source"`
// Transaction amount as a decimal string with trailing zeros stripped (e.g.
// `"1500"`, `"0.5"`, `"0.123456789012345678"`). Up to 18 decimal places.
Amount string `json:"amount"`
// Currency code of `amount`. Any ISO 4217 alphabetic code is accepted (e.g.
// `EUR`, `USD`, `NGN`), as is a crypto asset symbol (e.g. `BTC`). Prefer a
// currently-circulating code. Not every accepted code has an exchange rate:
// when none is available for the code (for example the ISO accounting unit
// `XSU`, or a crypto symbol Didit does not price), automatic conversion fails
// and `preferred_currency_amount` is returned null unless the request supplied
// a pre-converted `amount_in_default_currency`.
Currency string `json:"currency"`
// `fiat` or `crypto`, as submitted in `currency_kind`.
CurrencyType string `json:"currency_type"`
// Pre-converted amount you supplied, as a decimal string with trailing zeros
// stripped.
AmountInDefaultCurrency string `json:"amount_in_default_currency"`
DefaultCurrencyCode string `json:"default_currency_code"`
// `amount` converted to the application's preferred currency, when available.
PreferredCurrencyAmount string `json:"preferred_currency_amount"`
PreferredCurrencyCode string `json:"preferred_currency_code"`
// Free-text payment reference or memo from the submission.
PaymentDetails string `json:"payment_details"`
// External payment system reference (e.g. blockchain transaction hash) from
// `payment_reference_id`.
PaymentTxnID string `json:"payment_txn_id"`
// Risk score accumulated by rules (typically 0-100). Higher = riskier.
Score int64 `json:"score"`
// Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`,
// `HIGH`, `CRITICAL`). `null` until something sets it.
Severity TransactionDetailSeverity `json:"severity"`
// Machine-readable reason for the current `status`.
DecisionReasonCode string `json:"decision_reason_code"`
// Human-readable label for `decision_reason_code`.
DecisionReasonLabel string `json:"decision_reason_label"`
// Convenience copy of the applicant's `vendor_data`.
VendorData string `json:"vendor_data"`
// Snapshot of the `subject` and `counterparty` payloads as submitted at create
// time.
Metadata map[string]any `json:"metadata"`
// The `custom_properties` you supplied at create time. Each key is addressable
// in rule conditions as `custom_values.<key>`.
Props map[string]any `json:"props"`
// Tags attached to the transaction (manually or by rules).
Tags []TransactionDetailTags `json:"tags"`
// Transaction parties (applicant, counterparty).
Parties []TransactionDetailParties `json:"parties"`
// Payment methods linked to the transaction.
PaymentMethods []TransactionDetailPaymentMethods `json:"payment_methods"`
// Files attached to the transaction from the console. `[]` when none.
Documents []TransactionDetailDocuments `json:"documents"`
// Activity log entries (creation, notes, manual reviews, status changes).
Activities []TransactionDetailActivities `json:"activities"`
// Alerts raised by rules and providers.
Alerts []TransactionDetailAlerts `json:"alerts"`
// Per-rule execution results - which rule fired, with what score impact.
RuleRuns []TransactionDetailRuleRuns `json:"rule_runs"`
// Raw provider payloads (AML screening, blockchain analytics, etc.).
ProviderResults []TransactionDetailProviderResults `json:"provider_results"`
// Travel Rule transfer or check. Populated when `travel_rule_details` was
// submitted, and also when Travel Rule is enabled and the transaction was
// created with `transaction_category: travelRule` (Didit initiates the exchange
// itself, even without `travel_rule_details`). `null` when no transfer or check
// exists. On an inbound transfer, the counterparty's `originator_data` and
// `beneficiary_data` stay masked (`data_masked: true`) until wallet ownership
// is confirmed.
TravelRule TransactionTravelRule `json:"travel_rule"`
// Graph snapshot of related transactions/parties used by the rules engine.
// Either the `network_snapshot` submitted with the transaction or the graph
// Didit builds from a successful AML wallet screening (which replaces a
// submitted one). `null` when neither exists.
NetworkSnapshot TransactionDetailNetworkSnapshot `json:"network_snapshot"`
// Remediation session offered to the user when re-verification is required.
// Superseded by `action_required`, which is the canonical block; kept for
// backward compatibility.
Remediation TransactionDetailRemediation `json:"remediation"`
// Pending end-user action required to complete this transaction, or null when
// there is none. The Didit SDKs auto-launch the action by default and refresh
// the transaction when it finishes. Two variants, discriminated by `type`:
// `verification_session` (a hosted verification session created by a rule
// action) and `wallet_ownership` (a wallet-ownership widget session auto-minted
// for a Travel Rule transfer that needs proof of wallet control, gated by the
// `auto_wallet_verification` Travel Rule setting). When both could apply,
// `wallet_ownership` takes precedence because it blocks the Travel Rule
// exchange.
ActionRequired TransactionDetailActionRequired `json:"action_required"`
// Cost of this transaction: `total_price` and `items`, one per charge, each
// with `usage_type`, `price`, `details` and `created_at`. A re-screen of the
// same transaction is a new item.
CostBreakdown map[string]any `json:"cost_breakdown"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetail: Full monitoring record for one transaction, as returned by `GET /v3/transactions/{transaction_id}/` and `POST /v3/transactions/`.
func (*TransactionDetail) UnmarshalJSON ¶
func (r *TransactionDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetail leniently.
type TransactionDetailActionRequired ¶
type TransactionDetailActionRequired struct {
Type TransactionDetailActionRequiredType `json:"type"`
// Hosted verification URL to open for the end user.
URL string `json:"url"`
// Verification session id.
SessionID string `json:"session_id"`
// Session token, used by the mobile SDKs to launch the flow natively.
SessionToken string `json:"session_token"`
// Verification session status.
Status string `json:"status"`
// Wallet-ownership widget session id.
WidgetSessionID string `json:"widget_session_id"`
// When the widget session expires.
ExpiresAt time.Time `json:"expires_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailActionRequired: Pending end-user action required to complete this transaction, or null when there is none. The Didit SDKs auto-launch the action by default and refresh the transaction when it finishes. Two variants, discriminated by `type`: `verification_session` (a hosted verification session created by a rule action) and `wallet_ownership` (a wallet-ownership widget session auto-minted for a Travel Rule transfer that needs proof of wallet control, gated by the `auto_wallet_verification` Travel Rule setting). When both could apply, `wallet_ownership` takes precedence because it blocks the Travel Rule exchange.
func (*TransactionDetailActionRequired) UnmarshalJSON ¶
func (r *TransactionDetailActionRequired) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailActionRequired leniently.
type TransactionDetailActionRequiredType ¶
type TransactionDetailActionRequiredType string
TransactionDetailActionRequiredType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailActionRequiredTypeVerificationSession TransactionDetailActionRequiredType = "verification_session" TransactionDetailActionRequiredTypeWalletOwnership TransactionDetailActionRequiredType = "wallet_ownership" )
Known values of TransactionDetailActionRequiredType.
type TransactionDetailActivities ¶
type TransactionDetailActivities struct {
UUID string `json:"uuid"`
// E.g. `TRANSACTION_CREATED`, `TRANSACTION_NOTE_ADDED`,
// `TRANSACTION_STATUS_CHANGED`.
ActivityType string `json:"activity_type"`
Source string `json:"source"`
Status string `json:"status"`
Title string `json:"title"`
Description string `json:"description"`
Metadata map[string]any `json:"metadata"`
OccurredAt time.Time `json:"occurred_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailActivities is a response object.
func (*TransactionDetailActivities) UnmarshalJSON ¶
func (r *TransactionDetailActivities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailActivities leniently.
type TransactionDetailAlerts ¶
type TransactionDetailAlerts struct {
UUID string `json:"uuid"`
Title string `json:"title"`
Description string `json:"description"`
Severity TransactionDetailAlertsSeverity `json:"severity"`
Status TransactionDetailAlertsStatus `json:"status"`
Source TransactionDetailAlertsSource `json:"source"`
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
DueAt time.Time `json:"due_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailAlerts is a response object.
func (*TransactionDetailAlerts) UnmarshalJSON ¶
func (r *TransactionDetailAlerts) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailAlerts leniently.
type TransactionDetailAlertsSeverity ¶
type TransactionDetailAlertsSeverity string
TransactionDetailAlertsSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailAlertsSeverityUnknown TransactionDetailAlertsSeverity = "UNKNOWN" TransactionDetailAlertsSeverityLow TransactionDetailAlertsSeverity = "LOW" TransactionDetailAlertsSeverityMedium TransactionDetailAlertsSeverity = "MEDIUM" TransactionDetailAlertsSeverityHigh TransactionDetailAlertsSeverity = "HIGH" TransactionDetailAlertsSeverityCritical TransactionDetailAlertsSeverity = "CRITICAL" )
Known values of TransactionDetailAlertsSeverity.
type TransactionDetailAlertsSource ¶
type TransactionDetailAlertsSource string
TransactionDetailAlertsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailAlertsSourceRule TransactionDetailAlertsSource = "RULE" TransactionDetailAlertsSourceProvider TransactionDetailAlertsSource = "PROVIDER" TransactionDetailAlertsSourceManual TransactionDetailAlertsSource = "MANUAL" )
Known values of TransactionDetailAlertsSource.
type TransactionDetailAlertsStatus ¶
type TransactionDetailAlertsStatus string
TransactionDetailAlertsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailAlertsStatusOpen TransactionDetailAlertsStatus = "OPEN" TransactionDetailAlertsStatusInvestigating TransactionDetailAlertsStatus = "INVESTIGATING" TransactionDetailAlertsStatusAwaitingUser TransactionDetailAlertsStatus = "AWAITING_USER" TransactionDetailAlertsStatusPendingSar TransactionDetailAlertsStatus = "PENDING_SAR" TransactionDetailAlertsStatusSarFiled TransactionDetailAlertsStatus = "SAR_FILED" TransactionDetailAlertsStatusResolved TransactionDetailAlertsStatus = "RESOLVED" TransactionDetailAlertsStatusDismissed TransactionDetailAlertsStatus = "DISMISSED" )
Known values of TransactionDetailAlertsStatus.
type TransactionDetailDirection ¶
type TransactionDetailDirection string
TransactionDetailDirection: Direction relative to the subject. Stored uppercase regardless of the casing submitted (`in`/`out`/`inbound`/`outbound` are accepted on input).
TransactionDetailDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailDirectionInbound TransactionDetailDirection = "INBOUND" TransactionDetailDirectionOutbound TransactionDetailDirection = "OUTBOUND" )
Known values of TransactionDetailDirection.
type TransactionDetailDocuments ¶
type TransactionDetailDocuments struct {
UUID string `json:"uuid"`
Label string `json:"label"`
Note string `json:"note"`
UploadedBy string `json:"uploaded_by"`
CreatedAt time.Time `json:"created_at"`
Files []TransactionDetailDocumentsFiles `json:"files"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailDocuments is a response object.
func (*TransactionDetailDocuments) UnmarshalJSON ¶
func (r *TransactionDetailDocuments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailDocuments leniently.
type TransactionDetailDocumentsFiles ¶
type TransactionDetailDocumentsFiles struct {
UUID string `json:"uuid"`
// Short-lived signed download URL; fetch it when needed rather than storing it.
FileURL string `json:"file_url"`
OriginalFilename string `json:"original_filename"`
FileSize int64 `json:"file_size"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailDocumentsFiles is a response object.
func (*TransactionDetailDocumentsFiles) UnmarshalJSON ¶
func (r *TransactionDetailDocumentsFiles) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailDocumentsFiles leniently.
type TransactionDetailEnvironment ¶
type TransactionDetailEnvironment string
TransactionDetailEnvironment: Environment of the application that owns the transaction. A `sandbox` transaction is stored but never evaluated, screened, notified or billed, so its empty `rule_runs` means "not evaluated".
TransactionDetailEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailEnvironmentLive TransactionDetailEnvironment = "live" TransactionDetailEnvironmentSandbox TransactionDetailEnvironment = "sandbox" )
Known values of TransactionDetailEnvironment.
type TransactionDetailNetworkSnapshot ¶
type TransactionDetailNetworkSnapshot struct {
UUID string `json:"uuid"`
Nodes []map[string]any `json:"nodes"`
Edges []map[string]any `json:"edges"`
Metrics map[string]any `json:"metrics"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailNetworkSnapshot: Graph snapshot of related transactions/parties used by the rules engine. Either the `network_snapshot` submitted with the transaction or the graph Didit builds from a successful AML wallet screening (which replaces a submitted one). `null` when neither exists.
func (*TransactionDetailNetworkSnapshot) UnmarshalJSON ¶
func (r *TransactionDetailNetworkSnapshot) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailNetworkSnapshot leniently.
type TransactionDetailParties ¶
type TransactionDetailParties struct {
UUID string `json:"uuid"`
// Party role. The create endpoint assigns `APPLICANT` (the subject) and
// `COUNTERPARTY`.
Role TransactionDetailPartiesRole `json:"role"`
EntityType TransactionDetailPartiesEntityType `json:"entity_type"`
// `USER`/`BUSINESS` parties link back to a Didit-owned entity via
// `vendor_data`. `EXTERNAL` parties have no Didit entity behind them.
Kind TransactionDetailPartiesKind `json:"kind"`
// Your internal user/business identifier.
VendorData string `json:"vendor_data"`
FullName string `json:"full_name"`
FirstName string `json:"first_name"`
LastName string `json:"last_name"`
// Country code from the submitted `address.country` (typically ISO 3166-1
// alpha-3).
CountryCode string `json:"country_code"`
// Date of birth from the submitted `date_of_birth`.
DOB string `json:"dob"`
// Address object as submitted. `{}` when omitted.
Address map[string]any `json:"address"`
// Institution details as submitted. `{}` when omitted.
InstitutionInfo map[string]any `json:"institution_info"`
// Normalized device context, including server-side IP enrichment under
// network_context (geolocation, VPN/data-center flags) when an IP was provided.
Device TransactionDetailPartiesDevice `json:"device"`
// Frozen copy of the party data for `EXTERNAL` parties. `null` while the party
// is linked to a Didit user or business.
ExternalPartySnapshot map[string]any `json:"external_party_snapshot"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailParties is a response object.
func (*TransactionDetailParties) UnmarshalJSON ¶
func (r *TransactionDetailParties) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailParties leniently.
type TransactionDetailPartiesDevice ¶
type TransactionDetailPartiesDevice struct {
// Unique device fingerprint.
Fingerprint string `json:"fingerprint"`
// Stable cross-session device identifier (v2 fingerprint schema).
PersistentDeviceID string `json:"persistent_device_id"`
// Browser or app user agent string.
UserAgent string `json:"user_agent"`
// Browser family (e.g. Chrome, Firefox, Safari).
BrowserFamily string `json:"browser_family"`
// Browser version string.
BrowserVersion string `json:"browser_version"`
// Platform identifier (web, ios, android, macos, windows, linux).
Platform string `json:"platform"`
// Operating system family (e.g. iOS, Android, Windows).
OsFamily string `json:"os_family"`
// Operating system version string.
OsVersion string `json:"os_version"`
// Accept-Language header value.
AcceptLanguage string `json:"accept_language"`
// Session identifier (stored in metadata).
SessionID string `json:"session_id"`
// Session age in milliseconds.
SessionAgeMs float64 `json:"session_age_ms"`
// Network context with IP address and geo-location.
NetworkContext TransactionDetailPartiesDeviceNetworkContext `json:"network_context"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailPartiesDevice: Normalized device context, including server-side IP enrichment under network_context (geolocation, VPN/data-center flags) when an IP was provided.
func (*TransactionDetailPartiesDevice) UnmarshalJSON ¶
func (r *TransactionDetailPartiesDevice) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailPartiesDevice leniently.
type TransactionDetailPartiesDeviceNetworkContext ¶
type TransactionDetailPartiesDeviceNetworkContext struct {
// Client IP address.
IPAddress string `json:"ip_address"`
// Geo-resolved country of the IP (ISO 3166-1 alpha-3).
IPCountryCode string `json:"ip_country_code"`
// Geographic latitude of the IP.
Latitude float64 `json:"latitude"`
// Geographic longitude of the IP.
Longitude float64 `json:"longitude"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailPartiesDeviceNetworkContext: Network context with IP address and geo-location.
func (*TransactionDetailPartiesDeviceNetworkContext) UnmarshalJSON ¶
func (r *TransactionDetailPartiesDeviceNetworkContext) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailPartiesDeviceNetworkContext leniently.
type TransactionDetailPartiesEntityType ¶
type TransactionDetailPartiesEntityType string
TransactionDetailPartiesEntityType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPartiesEntityTypeIndividual TransactionDetailPartiesEntityType = "individual" TransactionDetailPartiesEntityTypeCompany TransactionDetailPartiesEntityType = "company" TransactionDetailPartiesEntityTypeExternal TransactionDetailPartiesEntityType = "external" TransactionDetailPartiesEntityTypeUnhostedWallet TransactionDetailPartiesEntityType = "unhostedWallet" )
Known values of TransactionDetailPartiesEntityType.
type TransactionDetailPartiesKind ¶
type TransactionDetailPartiesKind string
TransactionDetailPartiesKind: `USER`/`BUSINESS` parties link back to a Didit-owned entity via `vendor_data`. `EXTERNAL` parties have no Didit entity behind them.
TransactionDetailPartiesKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPartiesKindUser TransactionDetailPartiesKind = "USER" TransactionDetailPartiesKindBusiness TransactionDetailPartiesKind = "BUSINESS" TransactionDetailPartiesKindExternal TransactionDetailPartiesKind = "EXTERNAL" )
Known values of TransactionDetailPartiesKind.
type TransactionDetailPartiesRole ¶
type TransactionDetailPartiesRole string
TransactionDetailPartiesRole: Party role. The create endpoint assigns `APPLICANT` (the subject) and `COUNTERPARTY`.
TransactionDetailPartiesRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPartiesRoleApplicant TransactionDetailPartiesRole = "APPLICANT" TransactionDetailPartiesRoleRemitter TransactionDetailPartiesRole = "REMITTER" TransactionDetailPartiesRoleBeneficiary TransactionDetailPartiesRole = "BENEFICIARY" TransactionDetailPartiesRoleCounterparty TransactionDetailPartiesRole = "COUNTERPARTY" )
Known values of TransactionDetailPartiesRole.
type TransactionDetailPaymentMethods ¶
type TransactionDetailPaymentMethods struct {
UUID string `json:"uuid"`
PaymentMethodType TransactionDetailPaymentMethodsPaymentMethodType `json:"payment_method_type"`
Label string `json:"label"`
// SHA-256 over `type:account_id:issuing_country` - stable identifier to
// correlate reuse of the same instrument.
Fingerprint string `json:"fingerprint"`
// Account identifier (IBAN, wallet address, card token, …).
AccountID string `json:"account_id"`
IssuingCountry string `json:"issuing_country"`
OwnerKind TransactionDetailPaymentMethodsOwnerKind `json:"owner_kind"`
// Your identifier for the owning user/business.
VendorData string `json:"vendor_data"`
OwnerName string `json:"owner_name"`
InstitutionInfo map[string]any `json:"institution_info"`
// Raw `payment_method` object as submitted.
Details map[string]any `json:"details"`
ExternalOwnerSnapshot map[string]any `json:"external_owner_snapshot"`
// How this method was used in the transaction. The create endpoint assigns
// `SOURCE`/`DESTINATION` from the direction (outbound: subject = SOURCE;
// inbound: subject = DESTINATION).
Role TransactionDetailPaymentMethodsRole `json:"role"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailPaymentMethods is a response object.
func (*TransactionDetailPaymentMethods) UnmarshalJSON ¶
func (r *TransactionDetailPaymentMethods) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailPaymentMethods leniently.
type TransactionDetailPaymentMethodsOwnerKind ¶
type TransactionDetailPaymentMethodsOwnerKind string
TransactionDetailPaymentMethodsOwnerKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPaymentMethodsOwnerKindUser TransactionDetailPaymentMethodsOwnerKind = "USER" TransactionDetailPaymentMethodsOwnerKindBusiness TransactionDetailPaymentMethodsOwnerKind = "BUSINESS" TransactionDetailPaymentMethodsOwnerKindExternal TransactionDetailPaymentMethodsOwnerKind = "EXTERNAL" )
Known values of TransactionDetailPaymentMethodsOwnerKind.
type TransactionDetailPaymentMethodsPaymentMethodType ¶
type TransactionDetailPaymentMethodsPaymentMethodType string
TransactionDetailPaymentMethodsPaymentMethodType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPaymentMethodsPaymentMethodTypeBankCard TransactionDetailPaymentMethodsPaymentMethodType = "bank_card" TransactionDetailPaymentMethodsPaymentMethodTypeBankAccount TransactionDetailPaymentMethodsPaymentMethodType = "bank_account" TransactionDetailPaymentMethodsPaymentMethodTypeEWallet TransactionDetailPaymentMethodsPaymentMethodType = "e_wallet" TransactionDetailPaymentMethodsPaymentMethodTypeCryptoWallet TransactionDetailPaymentMethodsPaymentMethodType = "crypto_wallet" TransactionDetailPaymentMethodsPaymentMethodTypeUnhostedWallet TransactionDetailPaymentMethodsPaymentMethodType = "unhosted_wallet" TransactionDetailPaymentMethodsPaymentMethodTypeOther TransactionDetailPaymentMethodsPaymentMethodType = "other" )
Known values of TransactionDetailPaymentMethodsPaymentMethodType.
type TransactionDetailPaymentMethodsRole ¶
type TransactionDetailPaymentMethodsRole string
TransactionDetailPaymentMethodsRole: How this method was used in the transaction. The create endpoint assigns `SOURCE`/`DESTINATION` from the direction (outbound: subject = SOURCE; inbound: subject = DESTINATION).
TransactionDetailPaymentMethodsRole is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailPaymentMethodsRoleSource TransactionDetailPaymentMethodsRole = "SOURCE" TransactionDetailPaymentMethodsRoleDestination TransactionDetailPaymentMethodsRole = "DESTINATION" TransactionDetailPaymentMethodsRoleFunding TransactionDetailPaymentMethodsRole = "FUNDING" TransactionDetailPaymentMethodsRoleBeneficiary TransactionDetailPaymentMethodsRole = "BENEFICIARY" )
Known values of TransactionDetailPaymentMethodsRole.
type TransactionDetailProviderResults ¶
type TransactionDetailProviderResults struct {
UUID string `json:"uuid"`
Provider string `json:"provider"`
ResultType TransactionDetailProviderResultsResultType `json:"result_type"`
Status string `json:"status"`
Severity string `json:"severity"`
Score int64 `json:"score"`
Summary string `json:"summary"`
// Raw provider response payload.
Payload map[string]any `json:"payload"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailProviderResults is a response object.
func (*TransactionDetailProviderResults) UnmarshalJSON ¶
func (r *TransactionDetailProviderResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailProviderResults leniently.
type TransactionDetailProviderResultsResultType ¶
type TransactionDetailProviderResultsResultType string
TransactionDetailProviderResultsResultType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailProviderResultsResultTypeFiatMonitoring TransactionDetailProviderResultsResultType = "FIAT_MONITORING" TransactionDetailProviderResultsResultTypeWalletScreening TransactionDetailProviderResultsResultType = "WALLET_SCREENING" TransactionDetailProviderResultsResultTypeTransactionScreening TransactionDetailProviderResultsResultType = "TRANSACTION_SCREENING" TransactionDetailProviderResultsResultTypeTravelRule TransactionDetailProviderResultsResultType = "TRAVEL_RULE" TransactionDetailProviderResultsResultTypeNetworkGraph TransactionDetailProviderResultsResultType = "NETWORK_GRAPH" TransactionDetailProviderResultsResultTypeCustom TransactionDetailProviderResultsResultType = "CUSTOM" )
Known values of TransactionDetailProviderResultsResultType.
type TransactionDetailRemediation ¶
type TransactionDetailRemediation struct {
SessionID string `json:"session_id"`
SessionToken string `json:"session_token"`
URL string `json:"url"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailRemediation: Remediation session offered to the user when re-verification is required. Superseded by `action_required`, which is the canonical block; kept for backward compatibility.
func (*TransactionDetailRemediation) UnmarshalJSON ¶
func (r *TransactionDetailRemediation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailRemediation leniently.
type TransactionDetailRuleRuns ¶
type TransactionDetailRuleRuns struct {
UUID string `json:"uuid"`
// UUID of the rule that ran.
Rule string `json:"rule"`
RuleTitle string `json:"rule_title"`
RuleDescription string `json:"rule_description"`
RuleCategory string `json:"rule_category"`
// Whether the rule's conditions matched this transaction. A run is recorded
// only for matched rules, so live evaluations always carry `true`.
Matched bool `json:"matched"`
// True when the rule ran in TEST mode (no effect on status/score).
IsTest bool `json:"is_test"`
Mode TransactionDetailRuleRunsMode `json:"mode"`
Severity string `json:"severity"`
// Score added by this rule's `add_score` actions.
ScoreDelta int64 `json:"score_delta"`
// Status set by a `change_status` action, if any.
StatusTarget string `json:"status_target"`
// Summary of the actions the rule executed, joined with `; ` (e.g. `score +30;
// change_status:IN_REVIEW; add_tag:high_risk_country`). Parts: `score +N`,
// `change_status:<STATUS>`, `add_tag:<name>`, `add_note`, `add_to_list`,
// `open_case`. `null` when the rule executed no action.
ActionSummary string `json:"action_summary"`
// Evaluation detail: `scope_match`, `conditions[]` and `aggregations[]`. Each
// condition entry carries `field`, `operator`, `expected_value`, the
// `current_value` read from the transaction, `matched`, `group_index` and
// `group_logic`. Each aggregation entry (velocity / count / sum) carries
// `metric`, `field`, `operator`, `expected_value`, the `computed_value` the
// aggregate evaluated to, `window`, `filters`, `matched` and
// `sample_references`; deferred async aggregations have `computed_value: null`
// and `deferred: true`. A nested condition group is one `conditions[]` entry
// with `operator` `any_of` or `all_of`, `field` null, and its members' results
// under its own `conditions`.
Metadata map[string]any `json:"metadata"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailRuleRuns is a response object.
func (*TransactionDetailRuleRuns) UnmarshalJSON ¶
func (r *TransactionDetailRuleRuns) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailRuleRuns leniently.
type TransactionDetailRuleRunsMode ¶
type TransactionDetailRuleRunsMode string
TransactionDetailRuleRunsMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailRuleRunsModeActive TransactionDetailRuleRunsMode = "ACTIVE" TransactionDetailRuleRunsModeDisabled TransactionDetailRuleRunsMode = "DISABLED" TransactionDetailRuleRunsModeTest TransactionDetailRuleRunsMode = "TEST" )
Known values of TransactionDetailRuleRunsMode.
type TransactionDetailSeverity ¶
type TransactionDetailSeverity string
TransactionDetailSeverity: Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`, `CRITICAL`). `null` until something sets it.
TransactionDetailSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailSeverityUnknown TransactionDetailSeverity = "UNKNOWN" TransactionDetailSeverityLow TransactionDetailSeverity = "LOW" TransactionDetailSeverityMedium TransactionDetailSeverity = "MEDIUM" TransactionDetailSeverityHigh TransactionDetailSeverity = "HIGH" TransactionDetailSeverityCritical TransactionDetailSeverity = "CRITICAL" )
Known values of TransactionDetailSeverity.
type TransactionDetailSource ¶
type TransactionDetailSource string
TransactionDetailSource: How the record originated: `LIVE` for transactions submitted through the API or SDK, `IMPORTED` for transactions loaded through the console import.
TransactionDetailSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailSourceLive TransactionDetailSource = "LIVE" TransactionDetailSourceImported TransactionDetailSource = "IMPORTED" )
Known values of TransactionDetailSource.
type TransactionDetailStatus ¶
type TransactionDetailStatus string
TransactionDetailStatus: Current monitoring verdict. Transactions are created `APPROVED`; rules may flip them to `IN_REVIEW`/`DECLINED` synchronously.
TransactionDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailStatusApproved TransactionDetailStatus = "APPROVED" TransactionDetailStatusInReview TransactionDetailStatus = "IN_REVIEW" TransactionDetailStatusDeclined TransactionDetailStatus = "DECLINED" TransactionDetailStatusAwaitingUser TransactionDetailStatus = "AWAITING_USER" )
Known values of TransactionDetailStatus.
type TransactionDetailTags ¶
type TransactionDetailTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description"`
// Whether the tag is a Didit preset or a custom tag.
Source TransactionDetailTagsSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionDetailTags is a response object.
func (*TransactionDetailTags) UnmarshalJSON ¶
func (r *TransactionDetailTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionDetailTags leniently.
type TransactionDetailTagsSource ¶
type TransactionDetailTagsSource string
TransactionDetailTagsSource: Whether the tag is a Didit preset or a custom tag.
TransactionDetailTagsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionDetailTagsSourceDidit TransactionDetailTagsSource = "didit" TransactionDetailTagsSourceCustom TransactionDetailTagsSource = "custom" )
Known values of TransactionDetailTagsSource.
type TransactionNote ¶
type TransactionNote struct {
// Note identifier.
UUID string `json:"uuid"`
// Plain-text note body.
Note string `json:"note"`
// Email of the Console user who wrote the note or changed the status. `null`
// for notes created with an API key and for notes Didit adds automatically.
ActorEmail string `json:"actor_email"`
// Display name of the Console user (their email when they have no name). `Rule
// Engine` on notes Didit adds automatically. `null` for notes created with an
// API key.
ActorName string `json:"actor_name"`
// Tells the note types apart. Notes written through the API or the Console
// carry `mentioned_emails`. A status change made in the Console carries `type:
// status_change` with `previous_status`, `new_status`, `reason_code` and
// `reason_label`. Notes Didit adds carry `source`: `rule_action` (with
// `rule_uuid`) for a rule's `add_note` action, or `remediation_session` for a
// problem creating the user-action verification session.
Metadata TransactionNoteMetadata `json:"metadata"`
// When the note was stored.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionNote: One note on a monitored transaction's review timeline.
func (*TransactionNote) UnmarshalJSON ¶
func (r *TransactionNote) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionNote leniently.
type TransactionNoteMetadata ¶
type TransactionNoteMetadata struct {
// Mentioned organization members, lower-cased and de-duplicated. Empty when
// nobody was mentioned.
MentionedEmails []string `json:"mentioned_emails"`
// Present on notes recording a status change made in the Console.
Type TransactionNoteMetadataType `json:"type"`
// Status before the change.
PreviousStatus TransactionNoteMetadataPreviousStatus `json:"previous_status"`
// Status after the change.
NewStatus TransactionNoteMetadataNewStatus `json:"new_status"`
// Reason code given with the change.
ReasonCode string `json:"reason_code"`
// Reason label given with the change.
ReasonLabel string `json:"reason_label"`
// Present on notes Didit adds automatically.
Source TransactionNoteMetadataSource `json:"source"`
// Rule whose `add_note` action wrote the note (with `source: rule_action`).
RuleUUID string `json:"rule_uuid"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionNoteMetadata: Tells the note types apart. Notes written through the API or the Console carry `mentioned_emails`. A status change made in the Console carries `type: status_change` with `previous_status`, `new_status`, `reason_code` and `reason_label`. Notes Didit adds carry `source`: `rule_action` (with `rule_uuid`) for a rule's `add_note` action, or `remediation_session` for a problem creating the user-action verification session.
func (*TransactionNoteMetadata) UnmarshalJSON ¶
func (r *TransactionNoteMetadata) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionNoteMetadata leniently.
type TransactionNoteMetadataNewStatus ¶
type TransactionNoteMetadataNewStatus string
TransactionNoteMetadataNewStatus: Status after the change.
TransactionNoteMetadataNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionNoteMetadataNewStatusApproved TransactionNoteMetadataNewStatus = "APPROVED" TransactionNoteMetadataNewStatusInReview TransactionNoteMetadataNewStatus = "IN_REVIEW" TransactionNoteMetadataNewStatusDeclined TransactionNoteMetadataNewStatus = "DECLINED" TransactionNoteMetadataNewStatusAwaitingUser TransactionNoteMetadataNewStatus = "AWAITING_USER" )
Known values of TransactionNoteMetadataNewStatus.
type TransactionNoteMetadataPreviousStatus ¶
type TransactionNoteMetadataPreviousStatus string
TransactionNoteMetadataPreviousStatus: Status before the change.
TransactionNoteMetadataPreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionNoteMetadataPreviousStatusApproved TransactionNoteMetadataPreviousStatus = "APPROVED" TransactionNoteMetadataPreviousStatusInReview TransactionNoteMetadataPreviousStatus = "IN_REVIEW" TransactionNoteMetadataPreviousStatusDeclined TransactionNoteMetadataPreviousStatus = "DECLINED" TransactionNoteMetadataPreviousStatusAwaitingUser TransactionNoteMetadataPreviousStatus = "AWAITING_USER" )
Known values of TransactionNoteMetadataPreviousStatus.
type TransactionNoteMetadataSource ¶
type TransactionNoteMetadataSource string
TransactionNoteMetadataSource: Present on notes Didit adds automatically.
TransactionNoteMetadataSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionNoteMetadataSourceRuleAction TransactionNoteMetadataSource = "rule_action" TransactionNoteMetadataSourceRemediationSession TransactionNoteMetadataSource = "remediation_session" )
Known values of TransactionNoteMetadataSource.
type TransactionNoteMetadataType ¶
type TransactionNoteMetadataType string
TransactionNoteMetadataType: Present on notes recording a status change made in the Console.
TransactionNoteMetadataType is a string with known values below. The set is open: other values may appear and never cause an error.
const (
TransactionNoteMetadataTypeStatusChange TransactionNoteMetadataType = "status_change"
)
Known values of TransactionNoteMetadataType.
type TransactionRuleAction ¶
type TransactionRuleAction struct {
Type TransactionRuleActionType `json:"type"`
// Points added to the transaction's risk score. May be negative.
Value any `json:"value"`
// REQUIRED when value is AWAITING_USER: the verification workflow the subject
// is asked to complete. Alias key: remediation_workflow_id. Didit creates a
// hosted remediation session for the subject when the rule fires.
WorkflowID string `json:"workflow_id"`
// Existing application tag to attach.
TagUUID string `json:"tag_uuid"`
// Tag name to attach; created on first use (stored uppercased). Provide
// tag_uuid or tag_name.
TagName string `json:"tag_name"`
// Hex color used when tag_name creates a new tag, e.g. #007AFE.
TagColor string `json:"tag_color"`
// Note text attached to the transaction (author: Rule Engine). Alias key:
// value.
Note string `json:"note"`
// List to add the subject's vendor_data to.
ListID string `json:"list_id"`
// Case blueprint UUID; defaults to the application's default blueprint.
Blueprint string `json:"blueprint"`
// Whether repeat matches join one case per applicant or one per rule+applicant.
Grouping TransactionRuleActionGrouping `json:"grouping"`
// Attach the matched transaction to the case.
AttachMatchedTransaction bool `json:"attach_matched_transaction"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleAction: One rule action. A rule can carry several; all are applied together when it matches. Rules in TEST mode record what they would have done without applying any action.
func (*TransactionRuleAction) UnmarshalJSON ¶
func (r *TransactionRuleAction) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleAction leniently.
type TransactionRuleActionGrouping ¶
type TransactionRuleActionGrouping string
TransactionRuleActionGrouping: Whether repeat matches join one case per applicant or one per rule+applicant.
TransactionRuleActionGrouping is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleActionGroupingByApplicant TransactionRuleActionGrouping = "by_applicant" TransactionRuleActionGroupingByRuleAndApplicant TransactionRuleActionGrouping = "by_rule_and_applicant" )
Known values of TransactionRuleActionGrouping.
type TransactionRuleActionParam ¶
type TransactionRuleActionParam struct {
// Required.
Type TransactionRuleActionType `json:"type"`
// Points added to the transaction's risk score. May be negative.
Value Opt[any] `json:"value"`
// REQUIRED when value is AWAITING_USER: the verification workflow the subject
// is asked to complete. Alias key: remediation_workflow_id. Didit creates a
// hosted remediation session for the subject when the rule fires.
WorkflowID Opt[string] `json:"workflow_id"`
// Existing application tag to attach.
TagUUID Opt[string] `json:"tag_uuid"`
// Tag name to attach; created on first use (stored uppercased). Provide
// tag_uuid or tag_name.
TagName Opt[string] `json:"tag_name"`
// Hex color used when tag_name creates a new tag, e.g. #007AFE.
TagColor Opt[string] `json:"tag_color"`
// Note text attached to the transaction (author: Rule Engine). Alias key:
// value.
Note Opt[string] `json:"note"`
// List to add the subject's vendor_data to.
ListID Opt[string] `json:"list_id"`
// Case blueprint UUID; defaults to the application's default blueprint.
Blueprint Opt[string] `json:"blueprint"`
// Whether repeat matches join one case per applicant or one per rule+applicant.
Grouping Opt[TransactionRuleActionGrouping] `json:"grouping"`
// Attach the matched transaction to the case.
AttachMatchedTransaction Opt[bool] `json:"attach_matched_transaction"`
}
TransactionRuleActionParam: One rule action. A rule can carry several; all are applied together when it matches. Rules in TEST mode record what they would have done without applying any action.
func (TransactionRuleActionParam) MarshalJSON ¶
func (r TransactionRuleActionParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleActionType ¶
type TransactionRuleActionType string
TransactionRuleActionType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleActionTypeAddScore TransactionRuleActionType = "add_score" TransactionRuleActionTypeChangeStatus TransactionRuleActionType = "change_status" TransactionRuleActionTypeAddTags TransactionRuleActionType = "add_tags" TransactionRuleActionTypeAddNote TransactionRuleActionType = "add_note" TransactionRuleActionTypeAddToList TransactionRuleActionType = "add_to_list" TransactionRuleActionTypeOpenCase TransactionRuleActionType = "open_case" )
Known values of TransactionRuleActionType.
type TransactionRuleAggregation ¶
type TransactionRuleAggregation struct {
// How the matching historical transactions are aggregated. unique_count is
// accepted as an alias of distinct_count.
Metric TransactionRuleAggregationMetric `json:"metric"`
// Field aggregated by sum/max/min/avg/distinct_count. Ignored for count.
Field string `json:"field"`
// Comparison applied to the computed metric.
Operator TransactionRuleAggregationOperator `json:"operator"`
// Threshold the computed metric is compared against.
Value float64 `json:"value"`
// Look-back window ending at the transaction's txn_date: <N>m (MINUTES, not
// months), <N>h (hours) or <N>d (days), e.g. 30m, 24h, 7d, 30d.
Window string `json:"window"`
// Narrows which historical transactions are aggregated. Keys are field paths
// from the condition field catalog; a value of "__current__" resolves to the
// same field's value on the transaction being evaluated (e.g.
// {"subject_vendor_data": "__current__"} scopes the window to the same
// subject), and a list value means membership. Filters compare by equality or
// membership ONLY - there is no lt/gte filter, so a range such as "historical
// transactions under 10,000" cannot be expressed here. Put the range on the
// metric instead (metric max with operator lt keeps every transaction in the
// window below the threshold).
Filters map[string]any `json:"filters"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleAggregation: Velocity check over the application's historical transactions inside the window. Every aggregation entry must match for the rule to match, regardless of evaluation_mode. An aggregation constrains only the window; the transaction being evaluated is constrained by scope and conditions, so repeat direction, currency or transaction_type on both halves when the rule promises them.
func (*TransactionRuleAggregation) UnmarshalJSON ¶
func (r *TransactionRuleAggregation) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleAggregation leniently.
type TransactionRuleAggregationMetric ¶
type TransactionRuleAggregationMetric string
TransactionRuleAggregationMetric: How the matching historical transactions are aggregated. unique_count is accepted as an alias of distinct_count.
TransactionRuleAggregationMetric is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleAggregationMetricCount TransactionRuleAggregationMetric = "count" TransactionRuleAggregationMetricSum TransactionRuleAggregationMetric = "sum" TransactionRuleAggregationMetricMax TransactionRuleAggregationMetric = "max" TransactionRuleAggregationMetricMin TransactionRuleAggregationMetric = "min" TransactionRuleAggregationMetricAvg TransactionRuleAggregationMetric = "avg" TransactionRuleAggregationMetricDistinctCount TransactionRuleAggregationMetric = "distinct_count" )
Known values of TransactionRuleAggregationMetric.
type TransactionRuleAggregationOperator ¶
type TransactionRuleAggregationOperator string
TransactionRuleAggregationOperator: Comparison applied to the computed metric.
TransactionRuleAggregationOperator is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleAggregationOperatorEq TransactionRuleAggregationOperator = "eq" TransactionRuleAggregationOperatorNe TransactionRuleAggregationOperator = "ne" TransactionRuleAggregationOperatorGt TransactionRuleAggregationOperator = "gt" TransactionRuleAggregationOperatorGte TransactionRuleAggregationOperator = "gte" TransactionRuleAggregationOperatorLt TransactionRuleAggregationOperator = "lt" TransactionRuleAggregationOperatorLte TransactionRuleAggregationOperator = "lte" )
Known values of TransactionRuleAggregationOperator.
type TransactionRuleAggregationParam ¶
type TransactionRuleAggregationParam struct {
// How the matching historical transactions are aggregated. unique_count is
// accepted as an alias of distinct_count.
Metric Opt[TransactionRuleAggregationMetric] `json:"metric"`
// Field aggregated by sum/max/min/avg/distinct_count. Ignored for count.
Field Opt[string] `json:"field"`
// Comparison applied to the computed metric.
Operator Opt[TransactionRuleAggregationOperator] `json:"operator"`
// Threshold the computed metric is compared against. Required.
Value float64 `json:"value"`
// Look-back window ending at the transaction's txn_date: <N>m (MINUTES, not
// months), <N>h (hours) or <N>d (days), e.g. 30m, 24h, 7d, 30d.
Window Opt[string] `json:"window"`
// Narrows which historical transactions are aggregated. Keys are field paths
// from the condition field catalog; a value of "__current__" resolves to the
// same field's value on the transaction being evaluated (e.g.
// {"subject_vendor_data": "__current__"} scopes the window to the same
// subject), and a list value means membership. Filters compare by equality or
// membership ONLY - there is no lt/gte filter, so a range such as "historical
// transactions under 10,000" cannot be expressed here. Put the range on the
// metric instead (metric max with operator lt keeps every transaction in the
// window below the threshold).
Filters Opt[map[string]any] `json:"filters"`
}
TransactionRuleAggregationParam: Velocity check over the application's historical transactions inside the window. Every aggregation entry must match for the rule to match, regardless of evaluation_mode. An aggregation constrains only the window; the transaction being evaluated is constrained by scope and conditions, so repeat direction, currency or transaction_type on both halves when the rule promises them.
func (TransactionRuleAggregationParam) MarshalJSON ¶
func (r TransactionRuleAggregationParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleBacktestRequest ¶
type TransactionRuleBacktestRequest struct {
Conditions Opt[[]TransactionRuleConditionParam] `json:"conditions"`
Aggregation Opt[[]TransactionRuleAggregationParam] `json:"aggregation"`
EvaluationMode Opt[TransactionRuleBacktestRequestEvaluationMode] `json:"evaluation_mode"`
Scope Opt[TransactionRuleScopeParam] `json:"scope"`
PeriodDays Opt[int64] `json:"period_days"`
}
TransactionRuleBacktestRequest: Hypothetical rule configuration to evaluate against recent transactions. Read-only and free: nothing is created or modified. Send the same conditions, aggregation, evaluation_mode AND scope as the rule you intend to activate. Omitted conditions, aggregation and scope add no constraints of their own; dropping scope can include directions or transaction types the saved rule skips. Omitted evaluation_mode defaults to ALL (which can reduce matches for an ANY rule), and omitted period_days defaults to 90 days, not unlimited history.
func (TransactionRuleBacktestRequest) MarshalJSON ¶
func (r TransactionRuleBacktestRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleBacktestRequestEvaluationMode ¶
type TransactionRuleBacktestRequestEvaluationMode string
TransactionRuleBacktestRequestEvaluationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleBacktestRequestEvaluationModeAll TransactionRuleBacktestRequestEvaluationMode = "ALL" TransactionRuleBacktestRequestEvaluationModeAny TransactionRuleBacktestRequestEvaluationMode = "ANY" )
Known values of TransactionRuleBacktestRequestEvaluationMode.
type TransactionRuleBacktestResult ¶
type TransactionRuleBacktestResult struct {
// Transactions evaluated (most recent first, capped).
Evaluated int64 `json:"evaluated"`
// Transactions the configuration would have matched.
Matched int64 `json:"matched"`
// Distinct subjects (by vendor_data) among the matches.
AffectedEntities int64 `json:"affected_entities"`
PeriodDays int64 `json:"period_days"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleBacktestResult is a response object.
func (*TransactionRuleBacktestResult) UnmarshalJSON ¶
func (r *TransactionRuleBacktestResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleBacktestResult leniently.
type TransactionRuleCondition ¶
type TransactionRuleCondition struct {
// Transaction field path to evaluate. Core fields: amount, currency, direction,
// action_type, score, severity, transaction_type, payment_details,
// preferred_currency_amount (falls back to amount_in_default_currency),
// default_currency_code, subject_country, counterparty_country,
// subject_vendor_data, counterparty_vendor_data, subject_device_fingerprint,
// counterparty_device_fingerprint, subject_browser_family,
// subject_browser_version, subject_platform, subject_accept_language,
// subject_session_age_ms, subject_ip_country, counterparty_ip_country,
// subject_ip_address, counterparty_ip_address, subject_payment_method_type,
// subject_payment_method_country, subject_payment_method_fingerprint,
// subject_payment_method_account_id (and the counterparty_payment_method_*
// equivalents), travel_rule_status, travel_rule_required,
// travel_rule_obligations_count, counterparty_dd_status (your decision on the
// Travel Rule counterparty: APPROVED, RESTRICTED or BLOCKED, an entity
// following its brand's), counterparty_risk_level (LOW, MEDIUM or HIGH; HIGH
// while your own counterparty screening is flagged), counterparty_jurisdiction
// (the counterparty VASP's country), counterparty_responsiveness (RESPONSIVE,
// UNRESPONSIVE or UNKNOWN), subject_days_since_previous_transaction, tags, and
// custom_values.<key> for any key submitted in custom_properties on transaction
// create. Country-code fields accept ISO-2 or ISO-3; both sides are normalized
// to ISO-3 before comparison.
Field string `json:"field"`
// Comparison operator. in/not_in test membership (value may be a list or a
// single scalar). contains/not_contains are case-insensitive substring checks
// against a string value. contains_any takes a list of strings and matches when
// any is a case-insensitive substring of the field value. regex matches the
// value pattern against the field. fuzzy_match compares against the value
// string with the required `score` threshold (0-100). gt/gte/lt/lte never match
// when either side is missing. exists/is_not_empty/is_not_null (aliases) and
// not_exists/is_empty/is_null (aliases) are presence checks that ignore
// `value`.
Operator TransactionRuleConditionOperator `json:"operator"`
// Comparison value. Its shape depends on the operator and value_type; omit for
// the presence-check operators.
Value any `json:"value"`
// Optional value interpretation. `list`: value is a List UUID and the list's
// entries become the comparison value. `field`: value is another field path,
// compared field-to-field. `relative_date`: value is a relative-date object,
// e.g. {"direction": "past", "unit": "days", "amount": 30}.
ValueType TransactionRuleConditionValueType `json:"value_type"`
// Required when operator is fuzzy_match: the 0-100 similarity threshold.
Score float64 `json:"score"`
// Optional grouped logic. When any condition carries group_index, conditions
// sharing an index form a group and grouped evaluation replaces
// evaluation_mode.
GroupIndex int64 `json:"group_index"`
// How conditions combine WITHIN a group.
GroupLogic TransactionRuleConditionGroupLogic `json:"group_logic"`
// How group outcomes combine ACROSS groups. Read from the first condition.
GroupsLogic TransactionRuleConditionGroupsLogic `json:"groups_logic"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleCondition: A condition reads only the transaction being evaluated - it never filters the aggregation window.
func (*TransactionRuleCondition) UnmarshalJSON ¶
func (r *TransactionRuleCondition) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleCondition leniently.
type TransactionRuleConditionGroupLogic ¶
type TransactionRuleConditionGroupLogic string
TransactionRuleConditionGroupLogic: How conditions combine WITHIN a group.
TransactionRuleConditionGroupLogic is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleConditionGroupLogicAnd TransactionRuleConditionGroupLogic = "AND" TransactionRuleConditionGroupLogicOr TransactionRuleConditionGroupLogic = "OR" )
Known values of TransactionRuleConditionGroupLogic.
type TransactionRuleConditionGroupsLogic ¶
type TransactionRuleConditionGroupsLogic string
TransactionRuleConditionGroupsLogic: How group outcomes combine ACROSS groups. Read from the first condition.
TransactionRuleConditionGroupsLogic is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleConditionGroupsLogicAnd TransactionRuleConditionGroupsLogic = "AND" TransactionRuleConditionGroupsLogicOr TransactionRuleConditionGroupsLogic = "OR" )
Known values of TransactionRuleConditionGroupsLogic.
type TransactionRuleConditionOperator ¶
type TransactionRuleConditionOperator string
TransactionRuleConditionOperator: Comparison operator. in/not_in test membership (value may be a list or a single scalar). contains/not_contains are case-insensitive substring checks against a string value. contains_any takes a list of strings and matches when any is a case-insensitive substring of the field value. regex matches the value pattern against the field. fuzzy_match compares against the value string with the required `score` threshold (0-100). gt/gte/lt/lte never match when either side is missing. exists/is_not_empty/is_not_null (aliases) and not_exists/is_empty/is_null (aliases) are presence checks that ignore `value`.
TransactionRuleConditionOperator is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleConditionOperatorEq TransactionRuleConditionOperator = "eq" TransactionRuleConditionOperatorNe TransactionRuleConditionOperator = "ne" TransactionRuleConditionOperatorGt TransactionRuleConditionOperator = "gt" TransactionRuleConditionOperatorGte TransactionRuleConditionOperator = "gte" TransactionRuleConditionOperatorLt TransactionRuleConditionOperator = "lt" TransactionRuleConditionOperatorLte TransactionRuleConditionOperator = "lte" TransactionRuleConditionOperatorIn TransactionRuleConditionOperator = "in" TransactionRuleConditionOperatorNotIn TransactionRuleConditionOperator = "not_in" TransactionRuleConditionOperatorContains TransactionRuleConditionOperator = "contains" TransactionRuleConditionOperatorNotContains TransactionRuleConditionOperator = "not_contains" TransactionRuleConditionOperatorContainsAny TransactionRuleConditionOperator = "contains_any" TransactionRuleConditionOperatorRegex TransactionRuleConditionOperator = "regex" TransactionRuleConditionOperatorFuzzyMatch TransactionRuleConditionOperator = "fuzzy_match" TransactionRuleConditionOperatorExists TransactionRuleConditionOperator = "exists" TransactionRuleConditionOperatorIsNotEmpty TransactionRuleConditionOperator = "is_not_empty" TransactionRuleConditionOperatorIsNotNull TransactionRuleConditionOperator = "is_not_null" TransactionRuleConditionOperatorNotExists TransactionRuleConditionOperator = "not_exists" TransactionRuleConditionOperatorIsEmpty TransactionRuleConditionOperator = "is_empty" TransactionRuleConditionOperatorIsNull TransactionRuleConditionOperator = "is_null" )
Known values of TransactionRuleConditionOperator.
type TransactionRuleConditionParam ¶
type TransactionRuleConditionParam struct {
// Transaction field path to evaluate. Core fields: amount, currency, direction,
// action_type, score, severity, transaction_type, payment_details,
// preferred_currency_amount (falls back to amount_in_default_currency),
// default_currency_code, subject_country, counterparty_country,
// subject_vendor_data, counterparty_vendor_data, subject_device_fingerprint,
// counterparty_device_fingerprint, subject_browser_family,
// subject_browser_version, subject_platform, subject_accept_language,
// subject_session_age_ms, subject_ip_country, counterparty_ip_country,
// subject_ip_address, counterparty_ip_address, subject_payment_method_type,
// subject_payment_method_country, subject_payment_method_fingerprint,
// subject_payment_method_account_id (and the counterparty_payment_method_*
// equivalents), travel_rule_status, travel_rule_required,
// travel_rule_obligations_count, counterparty_dd_status (your decision on the
// Travel Rule counterparty: APPROVED, RESTRICTED or BLOCKED, an entity
// following its brand's), counterparty_risk_level (LOW, MEDIUM or HIGH; HIGH
// while your own counterparty screening is flagged), counterparty_jurisdiction
// (the counterparty VASP's country), counterparty_responsiveness (RESPONSIVE,
// UNRESPONSIVE or UNKNOWN), subject_days_since_previous_transaction, tags, and
// custom_values.<key> for any key submitted in custom_properties on transaction
// create. Country-code fields accept ISO-2 or ISO-3; both sides are normalized
// to ISO-3 before comparison. Required.
Field string `json:"field"`
// Comparison operator. in/not_in test membership (value may be a list or a
// single scalar). contains/not_contains are case-insensitive substring checks
// against a string value. contains_any takes a list of strings and matches when
// any is a case-insensitive substring of the field value. regex matches the
// value pattern against the field. fuzzy_match compares against the value
// string with the required `score` threshold (0-100). gt/gte/lt/lte never match
// when either side is missing. exists/is_not_empty/is_not_null (aliases) and
// not_exists/is_empty/is_null (aliases) are presence checks that ignore
// `value`. Required.
Operator TransactionRuleConditionOperator `json:"operator"`
// Comparison value. Its shape depends on the operator and value_type; omit for
// the presence-check operators.
Value Opt[any] `json:"value"`
// Optional value interpretation. `list`: value is a List UUID and the list's
// entries become the comparison value. `field`: value is another field path,
// compared field-to-field. `relative_date`: value is a relative-date object,
// e.g. {"direction": "past", "unit": "days", "amount": 30}.
ValueType Opt[TransactionRuleConditionValueType] `json:"value_type"`
// Required when operator is fuzzy_match: the 0-100 similarity threshold.
Score Opt[float64] `json:"score"`
// Optional grouped logic. When any condition carries group_index, conditions
// sharing an index form a group and grouped evaluation replaces
// evaluation_mode.
GroupIndex Opt[int64] `json:"group_index"`
// How conditions combine WITHIN a group.
GroupLogic Opt[TransactionRuleConditionGroupLogic] `json:"group_logic"`
// How group outcomes combine ACROSS groups. Read from the first condition.
GroupsLogic Opt[TransactionRuleConditionGroupsLogic] `json:"groups_logic"`
}
TransactionRuleConditionParam: A condition reads only the transaction being evaluated - it never filters the aggregation window.
func (TransactionRuleConditionParam) MarshalJSON ¶
func (r TransactionRuleConditionParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleConditionValueType ¶
type TransactionRuleConditionValueType string
TransactionRuleConditionValueType: Optional value interpretation. `list`: value is a List UUID and the list's entries become the comparison value. `field`: value is another field path, compared field-to-field. `relative_date`: value is a relative-date object, e.g. {"direction": "past", "unit": "days", "amount": 30}.
TransactionRuleConditionValueType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleConditionValueTypeList TransactionRuleConditionValueType = "list" TransactionRuleConditionValueTypeField TransactionRuleConditionValueType = "field" TransactionRuleConditionValueTypeRelativeDate TransactionRuleConditionValueType = "relative_date" )
Known values of TransactionRuleConditionValueType.
type TransactionRuleCreateRequest ¶
type TransactionRuleCreateRequest struct {
// Rule name. Unique per application among non-deleted rules; duplicates return
// 400. Required.
Title string `json:"title"`
Description Opt[string] `json:"description"`
// Risk theme used for grouping and reporting, e.g. finance, aml_ctf,
// anomaly_detection, fatf, device_intelligence, crypto_monitoring, travel_rule,
// responsible_gaming, e_commerce. Required.
Category string `json:"category"`
// ACTIVE evaluates live. TEST evaluates and records rule runs but never touches
// score or status - the recommended starting mode. DISABLED is skipped.
// Required.
Mode TransactionRuleCreateRequestMode `json:"mode"`
// Whether every condition must match (ALL) or at least one (ANY). Ignored when
// conditions use group_index.
EvaluationMode Opt[TransactionRuleCreateRequestEvaluationMode] `json:"evaluation_mode"`
Scope Opt[TransactionRuleScopeParam] `json:"scope"`
Conditions Opt[[]TransactionRuleConditionParam] `json:"conditions"`
Aggregation Opt[[]TransactionRuleAggregationParam] `json:"aggregation"`
Actions Opt[[]TransactionRuleActionParam] `json:"actions"`
// Free-form metadata stored on the rule.
Metadata Opt[map[string]any] `json:"metadata"`
}
TransactionRuleCreateRequest: Creates a CUSTOM rule. Rules in ACTIVE mode take effect immediately for new transactions - create in TEST mode and backtest first.
func (TransactionRuleCreateRequest) MarshalJSON ¶
func (r TransactionRuleCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleCreateRequestEvaluationMode ¶
type TransactionRuleCreateRequestEvaluationMode string
TransactionRuleCreateRequestEvaluationMode: Whether every condition must match (ALL) or at least one (ANY). Ignored when conditions use group_index.
TransactionRuleCreateRequestEvaluationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleCreateRequestEvaluationModeAll TransactionRuleCreateRequestEvaluationMode = "ALL" TransactionRuleCreateRequestEvaluationModeAny TransactionRuleCreateRequestEvaluationMode = "ANY" )
Known values of TransactionRuleCreateRequestEvaluationMode.
type TransactionRuleCreateRequestMode ¶
type TransactionRuleCreateRequestMode string
TransactionRuleCreateRequestMode: ACTIVE evaluates live. TEST evaluates and records rule runs but never touches score or status - the recommended starting mode. DISABLED is skipped.
TransactionRuleCreateRequestMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleCreateRequestModeActive TransactionRuleCreateRequestMode = "ACTIVE" TransactionRuleCreateRequestModeDisabled TransactionRuleCreateRequestMode = "DISABLED" TransactionRuleCreateRequestModeTest TransactionRuleCreateRequestMode = "TEST" )
Known values of TransactionRuleCreateRequestMode.
type TransactionRuleDetail ¶
type TransactionRuleDetail struct {
UUID string `json:"uuid"`
// Rule name. Unique per application among non-deleted rules; duplicates return
// 400.
Title string `json:"title"`
Description string `json:"description"`
// Risk theme used for grouping and reporting, e.g. finance, aml_ctf,
// anomaly_detection, fatf, device_intelligence, crypto_monitoring, travel_rule,
// responsible_gaming, e_commerce.
Category string `json:"category"`
// ACTIVE evaluates live. TEST evaluates and records rule runs but never touches
// score or status - the recommended starting mode. DISABLED is skipped.
Mode TransactionRuleDetailMode `json:"mode"`
// Whether every condition must match (ALL) or at least one (ANY). Ignored when
// conditions use group_index.
EvaluationMode TransactionRuleDetailEvaluationMode `json:"evaluation_mode"`
Scope TransactionRuleScope `json:"scope"`
Conditions []TransactionRuleCondition `json:"conditions"`
Aggregation []TransactionRuleAggregation `json:"aggregation"`
Actions []TransactionRuleAction `json:"actions"`
// Free-form metadata stored on the rule.
Metadata map[string]any `json:"metadata"`
// Informational severity carried by library rules; not settable on custom
// rules.
Severity TransactionRuleDetailSeverity `json:"severity"`
// PRESET rules come from the library (install/uninstall, mode-only edits);
// CUSTOM rules are fully yours.
Source TransactionRuleDetailSource `json:"source"`
// Stable library identifier; null for custom rules.
LibraryKey string `json:"library_key"`
LatestTriggeredAt time.Time `json:"latest_triggered_at"`
// How many transactions matched this rule.
RunCount int64 `json:"run_count"`
ApprovedCount int64 `json:"approved_count"`
ReviewedCount int64 `json:"reviewed_count"`
DeclinedCount int64 `json:"declined_count"`
AwaitingUserCount int64 `json:"awaiting_user_count"`
ApprovedPct float64 `json:"approved_pct"`
ReviewedPct float64 `json:"reviewed_pct"`
DeclinedPct float64 `json:"declined_pct"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleDetail is a response object.
func (*TransactionRuleDetail) UnmarshalJSON ¶
func (r *TransactionRuleDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleDetail leniently.
type TransactionRuleDetailEvaluationMode ¶
type TransactionRuleDetailEvaluationMode string
TransactionRuleDetailEvaluationMode: Whether every condition must match (ALL) or at least one (ANY). Ignored when conditions use group_index.
TransactionRuleDetailEvaluationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleDetailEvaluationModeAll TransactionRuleDetailEvaluationMode = "ALL" TransactionRuleDetailEvaluationModeAny TransactionRuleDetailEvaluationMode = "ANY" )
Known values of TransactionRuleDetailEvaluationMode.
type TransactionRuleDetailMode ¶
type TransactionRuleDetailMode string
TransactionRuleDetailMode: ACTIVE evaluates live. TEST evaluates and records rule runs but never touches score or status - the recommended starting mode. DISABLED is skipped.
TransactionRuleDetailMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleDetailModeActive TransactionRuleDetailMode = "ACTIVE" TransactionRuleDetailModeDisabled TransactionRuleDetailMode = "DISABLED" TransactionRuleDetailModeTest TransactionRuleDetailMode = "TEST" )
Known values of TransactionRuleDetailMode.
type TransactionRuleDetailSeverity ¶
type TransactionRuleDetailSeverity string
TransactionRuleDetailSeverity: Informational severity carried by library rules; not settable on custom rules.
TransactionRuleDetailSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleDetailSeverityUnknown TransactionRuleDetailSeverity = "UNKNOWN" TransactionRuleDetailSeverityLow TransactionRuleDetailSeverity = "LOW" TransactionRuleDetailSeverityMedium TransactionRuleDetailSeverity = "MEDIUM" TransactionRuleDetailSeverityHigh TransactionRuleDetailSeverity = "HIGH" TransactionRuleDetailSeverityCritical TransactionRuleDetailSeverity = "CRITICAL" )
Known values of TransactionRuleDetailSeverity.
type TransactionRuleDetailSource ¶
type TransactionRuleDetailSource string
TransactionRuleDetailSource: PRESET rules come from the library (install/uninstall, mode-only edits); CUSTOM rules are fully yours.
TransactionRuleDetailSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleDetailSourcePreset TransactionRuleDetailSource = "PRESET" TransactionRuleDetailSourceCustom TransactionRuleDetailSource = "CUSTOM" )
Known values of TransactionRuleDetailSource.
type TransactionRuleInstallRequest ¶
type TransactionRuleInstallRequest struct {
// Specific presets to install or uninstall.
LibraryKeys Opt[[]string] `json:"library_keys"`
// Install or uninstall every preset in this bundle instead.
Bundle Opt[string] `json:"bundle"`
}
TransactionRuleInstallRequest: Provide library_keys OR bundle.
func (TransactionRuleInstallRequest) MarshalJSON ¶
func (r TransactionRuleInstallRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleInstallResult ¶
type TransactionRuleInstallResult struct {
// POST (install) only: presets installed by this call.
InstalledLibraryKeys []string `json:"installed_library_keys"`
// POST (install) only.
InstalledCount int64 `json:"installed_count"`
// DELETE (uninstall) only: presets removed by this call.
UninstalledCount int64 `json:"uninstalled_count"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleInstallResult is a response object.
func (*TransactionRuleInstallResult) UnmarshalJSON ¶
func (r *TransactionRuleInstallResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleInstallResult leniently.
type TransactionRuleLibraryEntry ¶
type TransactionRuleLibraryEntry struct {
LibraryKey string `json:"library_key"`
Title string `json:"title"`
Description string `json:"description"`
Category string `json:"category"`
EvaluationMode TransactionRuleLibraryEntryEvaluationMode `json:"evaluation_mode"`
Scope TransactionRuleScope `json:"scope"`
Conditions []TransactionRuleCondition `json:"conditions"`
Aggregation []TransactionRuleAggregation `json:"aggregation"`
Actions []TransactionRuleAction `json:"actions"`
Metadata map[string]any `json:"metadata"`
// Functional family, e.g. finance, aml_ctf, crypto_monitoring, travel_rule,
// responsible_gaming.
Bundle string `json:"bundle"`
Tags []string `json:"tags"`
Industries []string `json:"industries"`
Source string `json:"source"`
// Whether this preset is currently installed on the application.
IsInstalled bool `json:"is_installed"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleLibraryEntry is a response object.
func (*TransactionRuleLibraryEntry) UnmarshalJSON ¶
func (r *TransactionRuleLibraryEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleLibraryEntry leniently.
type TransactionRuleLibraryEntryEvaluationMode ¶
type TransactionRuleLibraryEntryEvaluationMode string
TransactionRuleLibraryEntryEvaluationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleLibraryEntryEvaluationModeAll TransactionRuleLibraryEntryEvaluationMode = "ALL" TransactionRuleLibraryEntryEvaluationModeAny TransactionRuleLibraryEntryEvaluationMode = "ANY" )
Known values of TransactionRuleLibraryEntryEvaluationMode.
type TransactionRuleScope ¶
type TransactionRuleScope struct {
// Restrict to transaction types, e.g. finance, kyc, travel_rule, user_event.
// Empty or missing = no restriction.
TransactionTypes []string `json:"transaction_types"`
// Restrict to transaction directions (case-insensitive on write).
Directions []TransactionRuleScopeDirections `json:"directions"`
// Restrict to your action_type values, e.g. withdrawal, deposit.
ActionTypes []string `json:"action_types"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionRuleScope: Which transactions the rule applies to. Only these three keys are accepted.
func (*TransactionRuleScope) UnmarshalJSON ¶
func (r *TransactionRuleScope) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionRuleScope leniently.
type TransactionRuleScopeDirections ¶
type TransactionRuleScopeDirections string
TransactionRuleScopeDirections is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleScopeDirectionsInbound TransactionRuleScopeDirections = "INBOUND" TransactionRuleScopeDirectionsOutbound TransactionRuleScopeDirections = "OUTBOUND" )
Known values of TransactionRuleScopeDirections.
type TransactionRuleScopeParam ¶
type TransactionRuleScopeParam struct {
// Restrict to transaction types, e.g. finance, kyc, travel_rule, user_event.
// Empty or missing = no restriction.
TransactionTypes Opt[[]string] `json:"transaction_types"`
// Restrict to transaction directions (case-insensitive on write).
Directions Opt[[]TransactionRuleScopeDirections] `json:"directions"`
// Restrict to your action_type values, e.g. withdrawal, deposit.
ActionTypes Opt[[]string] `json:"action_types"`
}
TransactionRuleScopeParam: Which transactions the rule applies to. Only these three keys are accepted.
func (TransactionRuleScopeParam) MarshalJSON ¶
func (r TransactionRuleScopeParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleUpdateRequest ¶
type TransactionRuleUpdateRequest struct {
// Rule name. Unique per application among non-deleted rules; duplicates return
// 400.
Title Opt[string] `json:"title"`
Description Opt[string] `json:"description"`
// Risk theme used for grouping and reporting, e.g. finance, aml_ctf,
// anomaly_detection, fatf, device_intelligence, crypto_monitoring, travel_rule,
// responsible_gaming, e_commerce.
Category Opt[string] `json:"category"`
// ACTIVE evaluates live. TEST evaluates and records rule runs but never touches
// score or status - the recommended starting mode. DISABLED is skipped.
Mode Opt[TransactionRuleUpdateRequestMode] `json:"mode"`
// Whether every condition must match (ALL) or at least one (ANY). Ignored when
// conditions use group_index.
EvaluationMode Opt[TransactionRuleUpdateRequestEvaluationMode] `json:"evaluation_mode"`
Scope Opt[TransactionRuleScopeParam] `json:"scope"`
Conditions Opt[[]TransactionRuleConditionParam] `json:"conditions"`
Aggregation Opt[[]TransactionRuleAggregationParam] `json:"aggregation"`
Actions Opt[[]TransactionRuleActionParam] `json:"actions"`
// Free-form metadata stored on the rule.
Metadata Opt[map[string]any] `json:"metadata"`
}
TransactionRuleUpdateRequest: Partial update. Custom rules accept every field; library (PRESET) rules accept only mode - anything else returns 400.
func (TransactionRuleUpdateRequest) MarshalJSON ¶
func (r TransactionRuleUpdateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionRuleUpdateRequestEvaluationMode ¶
type TransactionRuleUpdateRequestEvaluationMode string
TransactionRuleUpdateRequestEvaluationMode: Whether every condition must match (ALL) or at least one (ANY). Ignored when conditions use group_index.
TransactionRuleUpdateRequestEvaluationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleUpdateRequestEvaluationModeAll TransactionRuleUpdateRequestEvaluationMode = "ALL" TransactionRuleUpdateRequestEvaluationModeAny TransactionRuleUpdateRequestEvaluationMode = "ANY" )
Known values of TransactionRuleUpdateRequestEvaluationMode.
type TransactionRuleUpdateRequestMode ¶
type TransactionRuleUpdateRequestMode string
TransactionRuleUpdateRequestMode: ACTIVE evaluates live. TEST evaluates and records rule runs but never touches score or status - the recommended starting mode. DISABLED is skipped.
TransactionRuleUpdateRequestMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionRuleUpdateRequestModeActive TransactionRuleUpdateRequestMode = "ACTIVE" TransactionRuleUpdateRequestModeDisabled TransactionRuleUpdateRequestMode = "DISABLED" TransactionRuleUpdateRequestModeTest TransactionRuleUpdateRequestMode = "TEST" )
Known values of TransactionRuleUpdateRequestMode.
type TransactionSummary ¶
type TransactionSummary struct {
// Didit transaction UUID. Use it as `{transaction_id}` on the transaction
// endpoints.
UUID string `json:"uuid"`
// Application-scoped sequential number shown in the Console.
TransactionNumber int64 `json:"transaction_number"`
// Your own identifier from the create call. Unique per application.
TxnID string `json:"txn_id"`
// Category as stored: `finance`, `kyc`, `travelRule`, `userPlatformEvent`,
// `gamblingBet`, `gamblingLimitChange`, `gamblingBonusChange` or
// `auditTrailEvent`.
TransactionType string `json:"transaction_type"`
// Sub-type within the category, for example `withdrawal`.
ActionType string `json:"action_type"`
// Current monitoring verdict.
Status TransactionSummaryStatus `json:"status"`
// `LIVE` for transactions submitted for monitoring, `IMPORTED` for historical
// imports.
Source TransactionSummarySource `json:"source"`
// Direction relative to the subject.
Direction TransactionSummaryDirection `json:"direction"`
// Amount as a decimal string with trailing zeros removed (up to 18 decimal
// places).
Amount string `json:"amount"`
// Currency code or crypto asset symbol of `amount`.
Currency string `json:"currency"`
// `fiat` or `crypto` when known.
CurrencyType string `json:"currency_type"`
// `amount` converted to the application's preferred currency, when a rate was
// available.
PreferredCurrencyAmount string `json:"preferred_currency_amount"`
// Currency of `preferred_currency_amount`.
PreferredCurrencyCode string `json:"preferred_currency_code"`
// Free-text payment reference.
PaymentDetails string `json:"payment_details"`
// When the transaction occurred.
TxnDate time.Time `json:"txn_date"`
// When Didit recorded it.
CreatedAt time.Time `json:"created_at"`
// Risk score. Higher is riskier.
Score int64 `json:"score"`
// Risk severity, `null` until something sets it.
Severity TransactionSummarySeverity `json:"severity"`
// Machine-readable reason for the current `status`.
DecisionReasonCode string `json:"decision_reason_code"`
// Human-readable label for `decision_reason_code`.
DecisionReasonLabel string `json:"decision_reason_label"`
// Tags on the transaction.
Tags []TransactionSummaryTags `json:"tags"`
// Full name of the `APPLICANT` party.
SubjectName string `json:"subject_name"`
// Your `vendor_data` for the applicant.
SubjectVendorData string `json:"subject_vendor_data"`
// Whether the applicant is linked to a Didit user or business; `null` when it
// is linked to neither.
SubjectType TransactionSummarySubjectType `json:"subject_type"`
// UUID of the Didit user or business the applicant is linked to.
SubjectUUID string `json:"subject_uuid"`
// Country code of the applicant.
SubjectCountry string `json:"subject_country"`
// Full name of the `COUNTERPARTY` party, if any.
CounterpartyName string `json:"counterparty_name"`
// Your `vendor_data` for the counterparty.
CounterpartyVendorData string `json:"counterparty_vendor_data"`
// Country code of the counterparty.
CounterpartyCountry string `json:"counterparty_country"`
// Name of the Console reviewer assigned to the transaction.
AssignedToName string `json:"assigned_to_name"`
// Status of the transaction's Travel Rule transfer, or `null` when it has none.
TravelRuleStatus string `json:"travel_rule_status"`
// Application that owns the transaction.
ApplicationID string `json:"application_id"`
// Name of that application.
ApplicationName string `json:"application_name"`
// Organization that owns the application.
OrganizationID string `json:"organization_id"`
// Name of that organization.
OrganizationName string `json:"organization_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionSummary: Summary of a monitored transaction, the shape `GET /v3/transactions/` lists. Call `GET /v3/transactions/{transaction_id}/` with `uuid` for parties, alerts and rule runs.
func (*TransactionSummary) UnmarshalJSON ¶
func (r *TransactionSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionSummary leniently.
type TransactionSummaryDirection ¶
type TransactionSummaryDirection string
TransactionSummaryDirection: Direction relative to the subject.
TransactionSummaryDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummaryDirectionInbound TransactionSummaryDirection = "INBOUND" TransactionSummaryDirectionOutbound TransactionSummaryDirection = "OUTBOUND" )
Known values of TransactionSummaryDirection.
type TransactionSummarySeverity ¶
type TransactionSummarySeverity string
TransactionSummarySeverity: Risk severity, `null` until something sets it.
TransactionSummarySeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummarySeverityUnknown TransactionSummarySeverity = "UNKNOWN" TransactionSummarySeverityLow TransactionSummarySeverity = "LOW" TransactionSummarySeverityMedium TransactionSummarySeverity = "MEDIUM" TransactionSummarySeverityHigh TransactionSummarySeverity = "HIGH" TransactionSummarySeverityCritical TransactionSummarySeverity = "CRITICAL" )
Known values of TransactionSummarySeverity.
type TransactionSummarySource ¶
type TransactionSummarySource string
TransactionSummarySource: `LIVE` for transactions submitted for monitoring, `IMPORTED` for historical imports.
TransactionSummarySource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummarySourceLive TransactionSummarySource = "LIVE" TransactionSummarySourceImported TransactionSummarySource = "IMPORTED" )
Known values of TransactionSummarySource.
type TransactionSummaryStatus ¶
type TransactionSummaryStatus string
TransactionSummaryStatus: Current monitoring verdict.
TransactionSummaryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummaryStatusApproved TransactionSummaryStatus = "APPROVED" TransactionSummaryStatusInReview TransactionSummaryStatus = "IN_REVIEW" TransactionSummaryStatusDeclined TransactionSummaryStatus = "DECLINED" TransactionSummaryStatusAwaitingUser TransactionSummaryStatus = "AWAITING_USER" )
Known values of TransactionSummaryStatus.
type TransactionSummarySubjectType ¶
type TransactionSummarySubjectType string
TransactionSummarySubjectType: Whether the applicant is linked to a Didit user or business; `null` when it is linked to neither.
TransactionSummarySubjectType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummarySubjectTypeUser TransactionSummarySubjectType = "user" TransactionSummarySubjectTypeBusiness TransactionSummarySubjectType = "business" )
Known values of TransactionSummarySubjectType.
type TransactionSummaryTags ¶
type TransactionSummaryTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
// Hex color, for example `#F59E0B`.
Color string `json:"color"`
Description string `json:"description"`
// Didit preset or custom tag.
Source TransactionSummaryTagsSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionSummaryTags is a response object.
func (*TransactionSummaryTags) UnmarshalJSON ¶
func (r *TransactionSummaryTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionSummaryTags leniently.
type TransactionSummaryTagsSource ¶
type TransactionSummaryTagsSource string
TransactionSummaryTagsSource: Didit preset or custom tag.
TransactionSummaryTagsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionSummaryTagsSourceDidit TransactionSummaryTagsSource = "didit" TransactionSummaryTagsSourceCustom TransactionSummaryTagsSource = "custom" )
Known values of TransactionSummaryTagsSource.
type TransactionTravelRule ¶
type TransactionTravelRule struct {
UUID string `json:"uuid"`
Status string `json:"status"`
Protocol string `json:"protocol"`
Required bool `json:"required"`
ObligationsCount int64 `json:"obligations_count"`
// Originator party. For an inbound transfer the counterparty's values are
// masked until ownership is confirmed.
OriginatorData map[string]any `json:"originator_data"`
// Beneficiary party. For an inbound transfer the counterparty's values are
// masked until ownership is confirmed.
BeneficiaryData map[string]any `json:"beneficiary_data"`
// The name comparison that decided the transfer (score and strictness). Null
// until one ran. The compared names are masked together with the parties.
NameMatch map[string]any `json:"name_match"`
DataMatch TravelRuleDataMatch `json:"data_match"`
// Shortcut for `data_match.mismatched_fields`. Empty when nothing differs.
MismatchedFields []string `json:"mismatched_fields"`
DataUnmasked TravelRuleDataUnmasked `json:"data_unmasked"`
// True while the counterparty's personal data is masked in this response.
DataMasked bool `json:"data_masked"`
Metadata map[string]any `json:"metadata"`
// Which side of the exchange this transfer is.
Direction TransactionTravelRuleDirection `json:"direction"`
// The rail the transfer went over: `INTERNAL`, `TRP`, `GTR`, `TRUST`,
// `VERIFYVASP`, `SYGNA` or `EMAIL` (`TEST_VASP` on a sandbox application, when
// the Didit Test VASP answered), or `null` until a rail is chosen.
Rail string `json:"rail"`
// The counterparty's directory entry, or `null` when the transfer links none.
CounterpartyVASP TransactionTravelRuleCounterpartyVASP `json:"counterparty_vasp"`
// The newest message the transfer owes another party. `null` when it has owed
// none, for example below `threshold_amount` or for a declared self-hosted
// wallet.
Delivery TravelRuleDelivery `json:"delivery"`
// How Didit looked for the counterparty, one entry per step that ran. Empty
// when no discovery ran, for example on an inbound transfer.
Discovery []TravelRuleDiscoveryStep `json:"discovery"`
// Why a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`
// transfer is stuck; `""` for any other status. A failed delivery decides it
// first, on `COUNTERPARTY_VASP_NOT_REACHABLE` only: `email_undeliverable` (the
// mail provider refused the compliance email and no address is left to try:
// when it was sent, on a reminder, or as a permanent bounce reported later) or
// `delivery_failed` (the rail that was delivering failed for good: a network
// rail refused the message or ran out of retries, a `TRP` identity host did not
// answer, or the counterparty's `TRP` host did not accept the inquiry).
// Otherwise the `discovery` trace decides it: `awaiting_end_user` (no step
// named a counterparty Didit can reach), `directory_match_no_route` (a step
// named a directory VASP that has no route),
// `picked_member_without_proven_wallet` (the end user picked a Didit customer
// that has not proven control of the wallet), or `no_directory_match` when the
// trace gives no other reason. A resend moves the transfer on, so the reason
// clears. See [Why a transfer is
// stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).
Reason string `json:"reason"`
// What moves the transfer on; `[]` for any status but
// `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`.
// `email_undeliverable` offers `update_compliance_email`, then `resend`.
// `delivery_failed` offers `resend`. A discovery reason offers
// `select_counterparty_vasp`, `declare_self_hosted`, `add_vasp_hint` and
// `resend`.
NextActions []TravelRuleNextAction `json:"next_actions"`
ChainDetails TravelRuleChainDetails `json:"chain_details"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionTravelRule: A transaction's Travel Rule transfer, as `GET /v3/transactions/{transaction_id}/`, the `201` of `POST /v3/transactions/` and each row of `GET /v3/transactions/` return it. `direction`, `rail`, `counterparty_vasp`, `delivery`, `discovery`, `reason` and `next_actions` have the same shape as on `PATCH /v3/transactions/{transaction_id}/travel-rule/`, so one read of a transaction says why its transfer is stuck and what moves it on.
func (*TransactionTravelRule) UnmarshalJSON ¶
func (r *TransactionTravelRule) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionTravelRule leniently.
type TransactionTravelRuleCounterpartyVASP ¶
type TransactionTravelRuleCounterpartyVASP struct {
Name string `json:"name"`
Lei string `json:"lei"`
// Due-diligence score from 0 to 100, where higher is better. Same scale as in
// the VASP directory.
DdScore int64 `json:"dd_score"`
// Per-component contributions to dd_score, one object per component as in the
// VASP directory (jurisdiction, verification, protocol, lei, history,
// essentials, responsiveness), each {points, max, reason, detail}. {} until the
// counterparty has been assessed.
DdScoreBreakdown map[string]TransactionTravelRuleCounterpartyVASPDdScoreBreakdown `json:"dd_score_breakdown"`
// When the due-diligence assessment last ran. Null until the counterparty has
// been assessed.
DdAssessedAt time.Time `json:"dd_assessed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionTravelRuleCounterpartyVASP: The counterparty's directory entry, or `null` when the transfer links none.
func (*TransactionTravelRuleCounterpartyVASP) UnmarshalJSON ¶
func (r *TransactionTravelRuleCounterpartyVASP) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionTravelRuleCounterpartyVASP leniently.
type TransactionTravelRuleCounterpartyVASPDdScoreBreakdown ¶
type TransactionTravelRuleCounterpartyVASPDdScoreBreakdown struct {
// Points awarded for this component.
Points float64 `json:"points"`
// Maximum points this component can award.
Max int64 `json:"max"`
// Machine-readable code of the component's verdict.
Reason string `json:"reason"`
// Human-readable reason for the awarded points.
Detail string `json:"detail"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionTravelRuleCounterpartyVASPDdScoreBreakdown is a response object.
func (*TransactionTravelRuleCounterpartyVASPDdScoreBreakdown) UnmarshalJSON ¶
func (r *TransactionTravelRuleCounterpartyVASPDdScoreBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionTravelRuleCounterpartyVASPDdScoreBreakdown leniently.
type TransactionTravelRuleDirection ¶
type TransactionTravelRuleDirection string
TransactionTravelRuleDirection: Which side of the exchange this transfer is.
TransactionTravelRuleDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionTravelRuleDirectionInbound TransactionTravelRuleDirection = "INBOUND" TransactionTravelRuleDirectionOutbound TransactionTravelRuleDirection = "OUTBOUND" )
Known values of TransactionTravelRuleDirection.
type TransactionsCreateParams ¶
type TransactionsCreateParams struct {
// Your unique identifier for this transaction (max 128 characters). Required.
TransactionID string `json:"transaction_id"`
// When the transaction occurred. Defaults to now if omitted.
TransactionAt Opt[time.Time] `json:"transaction_at"`
// IANA time zone identifier, e.g. `Europe/Madrid`.
TimeZone Opt[string] `json:"time_zone"`
// Category of the transaction. CamelCase aliases (`travelRule`,
// `userPlatformEvent`, `gamblingBet`, …) are also accepted; the stored/echoed
// value is camelCase for multi-word categories. Required.
TransactionCategory TransactionsCreateParamsTransactionCategory `json:"transaction_category"`
// Core financial details of the transaction. Required.
TransactionDetails TransactionsCreateParamsTransactionDetails `json:"transaction_details"`
// The subject (applicant) of the transaction. Required.
Subject TransactionsCreateParamsSubject `json:"subject"`
// The counterparty of the transaction (optional).
Counterparty Opt[TransactionsCreateParamsCounterparty] `json:"counterparty"`
// Arbitrary key-value pairs attached to the transaction. Each key can be
// referenced in rule conditions with the field path `custom_values.<key>`.
CustomProperties Opt[map[string]any] `json:"custom_properties"`
// Travel Rule data. When Travel Rule is enabled and transaction_category is
// travel_rule, Didit runs the exchange itself: it ignores status, protocol,
// required and obligations_count, and uses originator_data, beneficiary_data
// and metadata. Otherwise Didit stores these values as a passive Travel Rule
// record. While Travel Rule is on, an outbound transfer at or above your
// threshold must carry what its regime requires (EU TFR or FATF Recommendation
// 16), checked on the sides you send: a missing field answers 400 under
// `travel_rule_details.originator_data` or
// `travel_rule_details.beneficiary_data`, for example "EU TFR requires the
// originator name."
TravelRuleDetails Opt[TransactionsCreateParamsTravelRuleDetails] `json:"travel_rule_details"`
// Pre-computed network graph snapshot.
NetworkSnapshot Opt[TransactionsCreateParamsNetworkSnapshot] `json:"network_snapshot"`
// Per-transaction override for crypto blockchain analytics screening. When
// `true`, crypto screening is performed regardless of the application default.
// When `false`, crypto screening is skipped even if enabled in the application
// settings. When omitted or `null`, the application-level default configured in
// the Console is used. Crypto screening requires
// `transaction_details.direction`, `currency_kind: "crypto"`, a chain/currency,
// and the wallet address selected by the direction: inbound pre-transfer
// screening uses `counterparty.payment_method.account_id`, inbound
// transaction-hash screening uses `subject.payment_method.account_id`, and
// outbound screening uses `counterparty.payment_method.account_id`. When
// `transaction_details.payment_reference_id` contains a blockchain transaction
// hash, Didit performs transaction screening and returns transaction summary
// enrichment when available.
IncludeCryptoScreening Opt[bool] `json:"include_crypto_screening"`
}
TransactionsCreateParams holds the parameters of Client.Transactions.Create.
func (TransactionsCreateParams) MarshalJSON ¶
func (r TransactionsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsCounterparty ¶
type TransactionsCreateParamsCounterparty struct {
// Entity type: `individual` or `company`.
EntityType Opt[string] `json:"entity_type"`
// Your internal identifier for the counterparty.
VendorData Opt[string] `json:"vendor_data"`
// Full name of the counterparty.
FullName Opt[string] `json:"full_name"`
FirstName Opt[string] `json:"first_name"`
LastName Opt[string] `json:"last_name"`
DateOfBirth Opt[string] `json:"date_of_birth"`
// Address object with `country` (ISO 3166-1 alpha-3).
Address Opt[map[string]any] `json:"address"`
InstitutionDetails Opt[map[string]any] `json:"institution_details"`
// Device context for the counterparty. browser_family and platform must be sent
// as explicit top-level keys - they are not derived from user_agent.
DeviceContext Opt[TransactionsCreateParamsCounterpartyDeviceContext] `json:"device_context"`
// Payment method used by the counterparty. On travelRule transactions,
// `method_type: "unhosted_wallet"` declares the counterparty wallet as
// self-hosted: the transfer skips counterparty-VASP routing, is created
// directly in `UNCONFIRMED_OWNERSHIP`, and (when `auto_wallet_verification` is
// enabled) a wallet-ownership widget session is auto-minted and returned in the
// transaction's `action_required` block.
PaymentMethod Opt[TransactionsCreateParamsCounterpartyPaymentMethod] `json:"payment_method"`
}
TransactionsCreateParamsCounterparty: The counterparty of the transaction (optional).
func (TransactionsCreateParamsCounterparty) MarshalJSON ¶
func (r TransactionsCreateParamsCounterparty) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsCounterpartyDeviceContext ¶
type TransactionsCreateParamsCounterpartyDeviceContext struct {
// Unique device fingerprint.
Fingerprint Opt[string] `json:"fingerprint"`
// Stable cross-session device identifier (v2 fingerprint schema).
PersistentDeviceID Opt[string] `json:"persistent_device_id"`
// Browser or app user agent string. CamelCase alias: userAgent.
UserAgent Opt[string] `json:"user_agent"`
// Browser family (e.g. Chrome, Firefox, Safari). Must be sent explicitly - it
// is not derived from user_agent. CamelCase alias: browserFamily.
BrowserFamily Opt[string] `json:"browser_family"`
// Browser version string. Must be sent explicitly. CamelCase alias:
// browserVersion.
BrowserVersion Opt[string] `json:"browser_version"`
// Platform identifier (web, ios, android, macos, windows, linux). Must be sent
// explicitly - it is not derived from user_agent.
Platform Opt[string] `json:"platform"`
// Operating system family (e.g. iOS, Android, Windows). CamelCase alias:
// osFamily.
OsFamily Opt[string] `json:"os_family"`
// Operating system version string. CamelCase alias: osVersion.
OsVersion Opt[string] `json:"os_version"`
// Accept-Language header value. CamelCase alias: acceptLang.
AcceptLanguage Opt[string] `json:"accept_language"`
// Session identifier for the counterparty session. Stored in metadata.
// CamelCase alias: sessionId.
SessionID Opt[string] `json:"session_id"`
// Age of the user session in milliseconds at transaction time. CamelCase alias:
// sessionAgeMs.
SessionAgeMs Opt[float64] `json:"session_age_ms"`
// Network context with IP address and geo-location. A top-level ipInfo block is
// also folded into this object.
NetworkContext Opt[TransactionsCreateParamsCounterpartyDeviceContextNetworkContext] `json:"network_context"`
}
TransactionsCreateParamsCounterpartyDeviceContext: Device context for the counterparty. browser_family and platform must be sent as explicit top-level keys - they are not derived from user_agent.
func (TransactionsCreateParamsCounterpartyDeviceContext) MarshalJSON ¶
func (r TransactionsCreateParamsCounterpartyDeviceContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsCounterpartyDeviceContextNetworkContext ¶
type TransactionsCreateParamsCounterpartyDeviceContextNetworkContext struct {
// Client IP address. CamelCase alias: ip.
IPAddress Opt[string] `json:"ip_address"`
// Geo-resolved country of the IP (ISO 3166-1 alpha-3). CamelCase alias:
// countryCode3.
IPCountryCode Opt[string] `json:"ip_country_code"`
// Geographic latitude of the IP. CamelCase alias: lat.
Latitude Opt[float64] `json:"latitude"`
// Geographic longitude of the IP. CamelCase alias: lon.
Longitude Opt[float64] `json:"longitude"`
}
TransactionsCreateParamsCounterpartyDeviceContextNetworkContext: Network context with IP address and geo-location. A top-level ipInfo block is also folded into this object.
func (TransactionsCreateParamsCounterpartyDeviceContextNetworkContext) MarshalJSON ¶
func (r TransactionsCreateParamsCounterpartyDeviceContextNetworkContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsCounterpartyPaymentMethod ¶
type TransactionsCreateParamsCounterpartyPaymentMethod struct {
// Type of payment method: `bank_card`, `bank_account`, `crypto_wallet`,
// `ewallet`, `unhosted_wallet`, `other`. Use `unhosted_wallet` to declare a
// self-hosted wallet for the Travel Rule.
MethodType Opt[string] `json:"method_type"`
// Account identifier (e.g. IBAN or wallet address). On a crypto transfer on
// bitcoin or Lightning it may be a Lightning payment request (BOLT11 invoice,
// BOLT12 offer, LNURL) or a Lightning Address: Didit stores the payee it names
// as the account ("" when it names none) and what the request says on the
// Travel Rule transfer's `chain_details.lightning`. At most 255 characters once
// stored. On a crypto transfer on bitcoin or Lightning it may be a Lightning
// payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address:
// Didit stores the payee it names as the account ("" when it names none) and
// what the request says on the Travel Rule transfer's
// `chain_details.lightning`. At most 255 characters once stored.
AccountID Opt[string] `json:"account_id"`
// The destination tag or memo that is part of the wallet on a memo network
// (XRP, XLM, EOS, ATOM, HBAR). On one shared exchange address each memo is its
// own payment method. XRP: a destination tag, a whole number from 0 to
// 4294967295 (a JSON number is accepted). XLM: a text memo of up to 28 bytes, a
// 64-bit id or a 32-byte hash in hex. EOS: up to 256 bytes. ATOM: up to 256
// characters. HBAR: up to 100 bytes. Bitcoin, EVM, Solana, Tron, Litecoin,
// Bitcoin Cash, Dogecoin and Lightning wallets take no memo: one there is a
// `400`. Alias: `destinationTag` or `destination_tag`.
Memo Opt[string] `json:"memo"`
IssuingCountry Opt[string] `json:"issuing_country"`
}
TransactionsCreateParamsCounterpartyPaymentMethod: Payment method used by the counterparty. On travelRule transactions, `method_type: "unhosted_wallet"` declares the counterparty wallet as self-hosted: the transfer skips counterparty-VASP routing, is created directly in `UNCONFIRMED_OWNERSHIP`, and (when `auto_wallet_verification` is enabled) a wallet-ownership widget session is auto-minted and returned in the transaction's `action_required` block.
func (TransactionsCreateParamsCounterpartyPaymentMethod) MarshalJSON ¶
func (r TransactionsCreateParamsCounterpartyPaymentMethod) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsNetworkSnapshot ¶
type TransactionsCreateParamsNetworkSnapshot struct {
Nodes Opt[[]map[string]any] `json:"nodes"`
Edges Opt[[]map[string]any] `json:"edges"`
Metrics Opt[map[string]any] `json:"metrics"`
}
TransactionsCreateParamsNetworkSnapshot: Pre-computed network graph snapshot.
func (TransactionsCreateParamsNetworkSnapshot) MarshalJSON ¶
func (r TransactionsCreateParamsNetworkSnapshot) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubject ¶
type TransactionsCreateParamsSubject struct {
// Entity type: `individual` or `company`.
EntityType Opt[string] `json:"entity_type"`
// Your internal user/business identifier. Required.
VendorData string `json:"vendor_data"`
// Full name of the subject. Required.
FullName string `json:"full_name"`
// First name of the subject.
FirstName Opt[string] `json:"first_name"`
// Last name of the subject.
LastName Opt[string] `json:"last_name"`
// Date of birth (YYYY-MM-DD).
DateOfBirth Opt[string] `json:"date_of_birth"`
// Address object.
Address Opt[TransactionsCreateParamsSubjectAddress] `json:"address"`
// Institution details (for institutional subjects).
InstitutionDetails Opt[TransactionsCreateParamsSubjectInstitutionDetails] `json:"institution_details"`
// Device context captured at transaction time. browser_family and platform must
// be sent as explicit top-level keys - they are not derived from user_agent.
// The camelCase alias device is also accepted on the request.
DeviceContext Opt[TransactionsCreateParamsSubjectDeviceContext] `json:"device_context"`
// Payment method used by the subject.
PaymentMethod Opt[TransactionsCreateParamsSubjectPaymentMethod] `json:"payment_method"`
}
TransactionsCreateParamsSubject: The subject (applicant) of the transaction.
func (TransactionsCreateParamsSubject) MarshalJSON ¶
func (r TransactionsCreateParamsSubject) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubjectAddress ¶
type TransactionsCreateParamsSubjectAddress struct {
// Country code (ISO 3166-1 alpha-3 recommended). Copied to the party's
// `country_code`.
Country Opt[string] `json:"country"`
Town Opt[string] `json:"town"`
State Opt[string] `json:"state"`
Street Opt[string] `json:"street"`
PostCode Opt[string] `json:"post_code"`
}
TransactionsCreateParamsSubjectAddress: Address object.
func (TransactionsCreateParamsSubjectAddress) MarshalJSON ¶
func (r TransactionsCreateParamsSubjectAddress) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubjectDeviceContext ¶
type TransactionsCreateParamsSubjectDeviceContext struct {
// Unique device fingerprint.
Fingerprint Opt[string] `json:"fingerprint"`
// Stable cross-session device identifier (v2 fingerprint schema).
PersistentDeviceID Opt[string] `json:"persistent_device_id"`
// Browser or app user agent string. CamelCase alias: userAgent.
UserAgent Opt[string] `json:"user_agent"`
// Browser family (e.g. Chrome, Firefox, Safari). Must be sent explicitly - it
// is not derived from user_agent. CamelCase alias: browserFamily.
BrowserFamily Opt[string] `json:"browser_family"`
// Browser version string. Must be sent explicitly. CamelCase alias:
// browserVersion.
BrowserVersion Opt[string] `json:"browser_version"`
// Platform identifier (web, ios, android, macos, windows, linux). Must be sent
// explicitly - it is not derived from user_agent.
Platform Opt[string] `json:"platform"`
// Operating system family (e.g. iOS, Android, Windows). CamelCase alias:
// osFamily.
OsFamily Opt[string] `json:"os_family"`
// Operating system version string. CamelCase alias: osVersion.
OsVersion Opt[string] `json:"os_version"`
// Accept-Language header value. CamelCase alias: acceptLang.
AcceptLanguage Opt[string] `json:"accept_language"`
// Session identifier of the user current session. Stored in metadata. CamelCase
// alias: sessionId.
SessionID Opt[string] `json:"session_id"`
// Age of the user session in milliseconds at transaction time. CamelCase alias:
// sessionAgeMs.
SessionAgeMs Opt[float64] `json:"session_age_ms"`
// Network context with IP address and geo-location. A top-level ipInfo block is
// also folded into this object.
NetworkContext Opt[TransactionsCreateParamsSubjectDeviceContextNetworkContext] `json:"network_context"`
}
TransactionsCreateParamsSubjectDeviceContext: Device context captured at transaction time. browser_family and platform must be sent as explicit top-level keys - they are not derived from user_agent. The camelCase alias device is also accepted on the request.
func (TransactionsCreateParamsSubjectDeviceContext) MarshalJSON ¶
func (r TransactionsCreateParamsSubjectDeviceContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubjectDeviceContextNetworkContext ¶
type TransactionsCreateParamsSubjectDeviceContextNetworkContext struct {
// Client IP address. CamelCase alias: ip.
IPAddress Opt[string] `json:"ip_address"`
// Geo-resolved country of the IP (ISO 3166-1 alpha-3). CamelCase alias:
// countryCode3.
IPCountryCode Opt[string] `json:"ip_country_code"`
// Geographic latitude of the IP. CamelCase alias: lat.
Latitude Opt[float64] `json:"latitude"`
// Geographic longitude of the IP. CamelCase alias: lon.
Longitude Opt[float64] `json:"longitude"`
}
TransactionsCreateParamsSubjectDeviceContextNetworkContext: Network context with IP address and geo-location. A top-level ipInfo block is also folded into this object.
func (TransactionsCreateParamsSubjectDeviceContextNetworkContext) MarshalJSON ¶
func (r TransactionsCreateParamsSubjectDeviceContextNetworkContext) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubjectInstitutionDetails ¶
type TransactionsCreateParamsSubjectInstitutionDetails struct {
Name Opt[string] `json:"name"`
Code Opt[string] `json:"code"`
Address Opt[map[string]any] `json:"address"`
}
TransactionsCreateParamsSubjectInstitutionDetails: Institution details (for institutional subjects).
func (TransactionsCreateParamsSubjectInstitutionDetails) MarshalJSON ¶
func (r TransactionsCreateParamsSubjectInstitutionDetails) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsSubjectPaymentMethod ¶
type TransactionsCreateParamsSubjectPaymentMethod struct {
// Type of payment method: `bank_card`, `bank_account`, `crypto_wallet`,
// `ewallet`, `unhosted_wallet`, `other`.
MethodType Opt[string] `json:"method_type"`
// Account identifier (e.g. IBAN, wallet address). For crypto screening, this
// should contain the wallet address for this participant. Inbound
// transaction-hash screening requires the service/customer deposit address on
// the subject. Outbound screening uses the destination wallet on the
// counterparty. On a crypto transfer on bitcoin or Lightning it may be a
// Lightning payment request (BOLT11 invoice, BOLT12 offer, LNURL) or a
// Lightning Address: Didit stores the payee it names as the account ("" when it
// names none) and what the request says on the Travel Rule transfer's
// `chain_details.lightning`. At most 255 characters once stored. On a crypto
// transfer on bitcoin or Lightning it may be a Lightning payment request
// (BOLT11 invoice, BOLT12 offer, LNURL) or a Lightning Address: Didit stores
// the payee it names as the account ("" when it names none) and what the
// request says on the Travel Rule transfer's `chain_details.lightning`. At most
// 255 characters once stored.
AccountID Opt[string] `json:"account_id"`
// The destination tag or memo that is part of the wallet on a memo network
// (XRP, XLM, EOS, ATOM, HBAR). On one shared exchange address each memo is its
// own payment method. XRP: a destination tag, a whole number from 0 to
// 4294967295 (a JSON number is accepted). XLM: a text memo of up to 28 bytes, a
// 64-bit id or a 32-byte hash in hex. EOS: up to 256 bytes. ATOM: up to 256
// characters. HBAR: up to 100 bytes. Bitcoin, EVM, Solana, Tron, Litecoin,
// Bitcoin Cash, Dogecoin and Lightning wallets take no memo: one there is a
// `400`. Alias: `destinationTag` or `destination_tag`.
Memo Opt[string] `json:"memo"`
// ISO 3166-1 alpha-3 country code of the issuer.
IssuingCountry Opt[string] `json:"issuing_country"`
}
TransactionsCreateParamsSubjectPaymentMethod: Payment method used by the subject.
func (TransactionsCreateParamsSubjectPaymentMethod) MarshalJSON ¶
func (r TransactionsCreateParamsSubjectPaymentMethod) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsTransactionCategory ¶
type TransactionsCreateParamsTransactionCategory string
TransactionsCreateParamsTransactionCategory: Category of the transaction. CamelCase aliases (`travelRule`, `userPlatformEvent`, `gamblingBet`, …) are also accepted; the stored/echoed value is camelCase for multi-word categories.
TransactionsCreateParamsTransactionCategory is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsCreateParamsTransactionCategoryFinance TransactionsCreateParamsTransactionCategory = "finance" TransactionsCreateParamsTransactionCategoryKYC TransactionsCreateParamsTransactionCategory = "kyc" TransactionsCreateParamsTransactionCategoryTravelRule TransactionsCreateParamsTransactionCategory = "travel_rule" TransactionsCreateParamsTransactionCategoryUserEvent TransactionsCreateParamsTransactionCategory = "user_event" TransactionsCreateParamsTransactionCategoryAuditTrailEvent TransactionsCreateParamsTransactionCategory = "audit_trail_event" TransactionsCreateParamsTransactionCategoryGamblingBet TransactionsCreateParamsTransactionCategory = "gambling_bet" TransactionsCreateParamsTransactionCategoryGamblingLimitChange TransactionsCreateParamsTransactionCategory = "gambling_limit_change" TransactionsCreateParamsTransactionCategoryGamblingBonusChange TransactionsCreateParamsTransactionCategory = "gambling_bonus_change" TransactionsCreateParamsTransactionCategoryTravelRule2 TransactionsCreateParamsTransactionCategory = "travelRule" )
Known values of TransactionsCreateParamsTransactionCategory.
type TransactionsCreateParamsTransactionDetails ¶
type TransactionsCreateParamsTransactionDetails struct {
// Direction of the transaction relative to the subject. Case-insensitive;
// `in`/`out` are accepted as aliases. Echoed back uppercase
// (`INBOUND`/`OUTBOUND`). Required.
Direction TransactionsCreateParamsTransactionDetailsDirection `json:"direction"`
// Transaction amount (up to 18 decimal places). Send it as a decimal string
// (e.g. `"0.123456789012345678"`) when exact precision matters: a JSON number
// is parsed as a binary float first, so digits beyond about 15 significant
// digits are rounded before the amount is stored. Required.
Amount float64 `json:"amount"`
// Currency code. Any ISO 4217 alphabetic code is accepted (e.g. `EUR`, `USD`,
// `NGN`), as is a crypto asset symbol (e.g. `BTC`). Prefer a
// currently-circulating code. Not every accepted code has an exchange rate:
// when none is available for the code (for example the ISO accounting unit
// `XSU`, or a crypto symbol Didit does not price), automatic conversion fails
// and `preferred_currency_amount` is returned null unless the request supplied
// a pre-converted `amount_in_default_currency`. Required.
Currency string `json:"currency"`
// Whether the currency is `fiat` or `crypto`.
CurrencyKind Opt[string] `json:"currency_kind"`
// Pre-converted amount in the default currency. If omitted, automatic FX
// conversion is attempted.
AmountInDefaultCurrency Opt[float64] `json:"amount_in_default_currency"`
// The default currency code for the converted amount. Any currently-circulating
// ISO 4217 code.
DefaultCurrency Opt[string] `json:"default_currency"`
// Free-text payment reference or memo.
PaymentDetails Opt[string] `json:"payment_details"`
// External payment system reference. For crypto AML transaction-hash screening,
// send the blockchain transaction hash and also provide
// `subject.payment_method.account_id` with the related address.
PaymentReferenceID Opt[string] `json:"payment_reference_id"`
// Sub-type of the transaction, e.g. `deposit`, `withdrawal`, `transfer`.
ActionType Opt[string] `json:"action_type"`
// Crypto network selection, separate from currency (the asset symbol).
// Recording a custom token symbol does not guarantee transaction-hash coverage
// for its contract.
CryptoParams Opt[TransactionsCreateParamsTransactionDetailsCryptoParams] `json:"crypto_params"`
}
TransactionsCreateParamsTransactionDetails: Core financial details of the transaction.
func (TransactionsCreateParamsTransactionDetails) MarshalJSON ¶
func (r TransactionsCreateParamsTransactionDetails) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsTransactionDetailsCryptoParams ¶
type TransactionsCreateParamsTransactionDetailsCryptoParams struct {
// Actual network used for screening. Managed screening supports BTC, ETH, LTC,
// XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism) and ARB
// (Arbitrum One). Always specify this for multi-network tokens. When it is
// missing for USDT, USDC or ETH sent with a 0x transaction hash, Didit looks
// the hash up on Ethereum, BNB Chain, Polygon, Base, Arbitrum and Optimism and
// screens it on the network where it is found; if no network has it, the
// transaction is not screened and custom_values.aml_screening_status is FAILED
// with the reason in custom_values.aml_screening_error. When it is missing for
// USDT or USDC screened by wallet (no transaction hash), a Tron address is
// screened on Tron, a Solana address on Solana, and a 0x address on the first
// of those six networks where it has sent a transaction or holds the token, or
// on Ethereum when it is active on none of them. Connected-provider coverage
// varies; LIGHTNING requires a supported connected provider.
CryptoChain Opt[string] `json:"crypto_chain"`
}
TransactionsCreateParamsTransactionDetailsCryptoParams: Crypto network selection, separate from currency (the asset symbol). Recording a custom token symbol does not guarantee transaction-hash coverage for its contract.
func (TransactionsCreateParamsTransactionDetailsCryptoParams) MarshalJSON ¶
func (r TransactionsCreateParamsTransactionDetailsCryptoParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateParamsTransactionDetailsDirection ¶
type TransactionsCreateParamsTransactionDetailsDirection string
TransactionsCreateParamsTransactionDetailsDirection: Direction of the transaction relative to the subject. Case-insensitive; `in`/`out` are accepted as aliases. Echoed back uppercase (`INBOUND`/`OUTBOUND`).
TransactionsCreateParamsTransactionDetailsDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsCreateParamsTransactionDetailsDirectionInbound TransactionsCreateParamsTransactionDetailsDirection = "inbound" TransactionsCreateParamsTransactionDetailsDirectionOutbound TransactionsCreateParamsTransactionDetailsDirection = "outbound" TransactionsCreateParamsTransactionDetailsDirectionIn TransactionsCreateParamsTransactionDetailsDirection = "in" TransactionsCreateParamsTransactionDetailsDirectionOut TransactionsCreateParamsTransactionDetailsDirection = "out" )
Known values of TransactionsCreateParamsTransactionDetailsDirection.
type TransactionsCreateParamsTravelRuleDetails ¶
type TransactionsCreateParamsTravelRuleDetails struct {
// Required whenever you send travel_rule_details. One of the Travel Rule
// transfer statuses (for example AWAITING_COUNTERPARTY, COMPLETED,
// NOT_APPLICABLE); lowercase and camelCase spellings and the legacy values
// UNKNOWN, COMPLIANT, PENDING_ACTION, PENDING_COUNTERPARTY, FAILED and EXEMPT
// are also accepted and mapped. Any other value returns 400. Required.
Status string `json:"status"`
Protocol Opt[string] `json:"protocol"`
Required Opt[bool] `json:"required"`
ObligationsCount Opt[int64] `json:"obligations_count"`
// Originator party, as flat fields or one IVMS 101 person. For your user with
// an approved KYC verification, Didit replaces the fields the verification
// holds with the verified values (see `metadata.originator_provenance`). It
// must be an object: anything else is a `400`. On a memo network a `memo` key
// names the originator wallet's memo or tag.
OriginatorData Opt[map[string]any] `json:"originator_data"`
// Beneficiary party, as flat fields or one IVMS 101 person. It must be an
// object: anything else is a `400`. To route the transfer, Didit reads
// `wallet_address` (an empty one is filled from
// `counterparty.payment_method.account_id`), `chain` (filled from
// `transaction_details.crypto_params.crypto_chain` or the `currency` when that
// names a supported chain), `name` (falling back to `counterparty.full_name`),
// `travel_address`, `counterparty_vasp_name`, `counterparty_vasp_lei` and
// `counterparty_vasp_email`. On a memo network `memo` names the beneficiary
// wallet's memo or tag; `wallet_address` and `memo` win over the counterparty's
// payment method.
BeneficiaryData Opt[map[string]any] `json:"beneficiary_data"`
Metadata Opt[map[string]any] `json:"metadata"`
// Optional, UTXO chains only (BTC, LTC, BCH, DOGE). The transaction's inputs
// and outputs, from which Didit infers the originator wallet and the
// beneficiary output when you do not declare them.
Utxo Opt[TravelRuleUtxo] `json:"utxo"`
// An IVMS 101 originator block: `originatorPersons` (one `naturalPerson` or
// `legalPerson`; a legal person makes the party a company) and `accountNumber`
// (wallet addresses). Used for `originator_data` when that object is empty. A
// malformed block answers 400 keyed by its path, for example
// `originator.originatorPersons`.
Originator Opt[map[string]any] `json:"originator"`
// An IVMS 101 beneficiary block: `beneficiaryPersons` (one `naturalPerson` or
// `legalPerson`; a legal person makes the party a company) and `accountNumber`
// (wallet addresses). Used for `beneficiary_data` when that object is empty. A
// malformed block answers 400 keyed by its path, for example
// `beneficiary.beneficiaryPersons`.
Beneficiary Opt[map[string]any] `json:"beneficiary"`
// The `originator` and `beneficiary` blocks wrapped in one IVMS 101 object
// (`IVMS101` is accepted too). Top-level blocks win over the wrapper's.
Ivms101 Opt[map[string]any] `json:"ivms101"`
}
TransactionsCreateParamsTravelRuleDetails: Travel Rule data. When Travel Rule is enabled and transaction_category is travel_rule, Didit runs the exchange itself: it ignores status, protocol, required and obligations_count, and uses originator_data, beneficiary_data and metadata. Otherwise Didit stores these values as a passive Travel Rule record. While Travel Rule is on, an outbound transfer at or above your threshold must carry what its regime requires (EU TFR or FATF Recommendation 16), checked on the sides you send: a missing field answers 400 under `travel_rule_details.originator_data` or `travel_rule_details.beneficiary_data`, for example "EU TFR requires the originator name."
func (TransactionsCreateParamsTravelRuleDetails) MarshalJSON ¶
func (r TransactionsCreateParamsTravelRuleDetails) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateSDKTokenParams ¶
type TransactionsCreateSDKTokenParams struct {
// Your internal identifier for the end user this token is scoped to. Enforced
// as the subject identity of every transaction submitted with the token.
// Required.
VendorData string `json:"vendor_data"`
// Token lifetime in seconds. Defaults to 900 (15 minutes); maximum 86400 (24
// hours).
TTLSeconds Opt[int64] `json:"ttl_seconds"`
// Maximum number of successful submissions allowed with this token. Omit or
// null for unlimited uses within the TTL.
MaxUses Opt[int64] `json:"max_uses"`
}
TransactionsCreateSDKTokenParams holds the parameters of Client.Transactions.CreateSDKToken.
func (TransactionsCreateSDKTokenParams) MarshalJSON ¶
func (r TransactionsCreateSDKTokenParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsCreateSDKTokenResponse ¶
type TransactionsCreateSDKTokenResponse struct {
// The scoped transaction token to pass to the SDK.
SDKToken string `json:"sdk_token"`
// When the token stops being accepted.
ExpiresAt time.Time `json:"expires_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionsCreateSDKTokenResponse is a response object.
func (*TransactionsCreateSDKTokenResponse) UnmarshalJSON ¶
func (r *TransactionsCreateSDKTokenResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionsCreateSDKTokenResponse leniently.
type TransactionsListParams ¶
type TransactionsListParams struct {
// Page size. Defaults to 50 when omitted. There is no enforced maximum, but
// keep pages small for latency.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record to return. Prefer following the `next`
// URL from the previous page.
Offset Opt[int64] `json:"-" query:"offset"`
// Return only transactions whose Travel Rule transfer is in this exact status
// (for example `ON_HOLD` or `AWAITING_COUNTERPARTY`). `count` follows this
// filter; `total_transactions` still counts every transaction in the
// application.
TravelRuleStatus Opt[string] `json:"-" query:"travel_rule_status"`
}
TransactionsListParams holds the parameters of Client.Transactions.List.
func (TransactionsListParams) MarshalJSON ¶
func (r TransactionsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsListRelatedParams ¶
type TransactionsListRelatedParams struct {
// Number of transactions per page. Defaults to 50. A value that is not a
// positive integer falls back to 50; a value above 1000000 returns `400`.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based position of the first transaction to return. Prefer following
// `next`. A value that is not a whole number falls back to 0; a value above
// 1000000 returns `400`.
Offset Opt[int64] `json:"-" query:"offset"`
}
TransactionsListRelatedParams holds the parameters of Client.Transactions.ListRelated.
func (TransactionsListRelatedParams) MarshalJSON ¶
func (r TransactionsListRelatedParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsListResponseResults ¶
type TransactionsListResponseResults struct {
// Stable Didit transaction identifier. Use as `{transaction_id}` in
// detail/notes/related calls.
UUID string `json:"uuid"`
// Application-scoped sequential transaction number shown in Console (e.g.
// `4123`).
TransactionNumber int64 `json:"transaction_number"`
// Customer-provided identifier from the create call (max 128 chars). Unique per
// application.
TxnID string `json:"txn_id"`
// Top-level category as stored: `finance`, `kyc`, `travelRule`,
// `userPlatformEvent`, `gamblingBet`, `gamblingLimitChange`,
// `gamblingBonusChange`, `auditTrailEvent`. Note multi-word values are echoed
// back in camelCase even when submitted in snake_case.
TransactionType string `json:"transaction_type"`
// Sub-type within the category (e.g. `deposit`, `withdrawal`, `transfer`).
ActionType string `json:"action_type"`
// Current monitoring verdict.
Status TransactionsListResponseResultsStatus `json:"status"`
// Direction relative to the subject. Stored uppercase regardless of the casing
// submitted.
Direction TransactionsListResponseResultsDirection `json:"direction"`
// Transaction amount as a decimal string with trailing zeros stripped (e.g.
// `"1500"`, `"0.5"`, `"0.123456789012345678"`). Up to 18 decimal places.
Amount string `json:"amount"`
// Currency code of `amount`. Any ISO 4217 alphabetic code is accepted (e.g.
// `EUR`, `USD`, `NGN`), as is a crypto asset symbol (e.g. `BTC`). Prefer a
// currently-circulating code. Not every accepted code has an exchange rate:
// when none is available for the code (for example the ISO accounting unit
// `XSU`, or a crypto symbol Didit does not price), automatic conversion fails
// and `preferred_currency_amount` is returned null unless the request supplied
// a pre-converted `amount_in_default_currency`.
Currency string `json:"currency"`
// `amount` converted to the application's preferred currency, when available.
PreferredCurrencyAmount string `json:"preferred_currency_amount"`
// Preferred currency code used for `preferred_currency_amount` - the
// application's base currency, any currently-circulating ISO 4217 code. A code
// with no available exchange rate leaves `preferred_currency_amount` null
// unless the request supplied a pre-converted `amount_in_default_currency`.
PreferredCurrencyCode string `json:"preferred_currency_code"`
// Free-text payment reference or memo from the submission.
PaymentDetails string `json:"payment_details"`
// Risk score (typically 0-100). Higher = riskier.
Score int64 `json:"score"`
// Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`,
// `HIGH`, `CRITICAL`). `null` until something sets it.
Severity TransactionsListResponseResultsSeverity `json:"severity"`
// Full name of the `APPLICANT` party.
SubjectName string `json:"subject_name"`
// Your internal user/business identifier for the applicant.
SubjectVendorData string `json:"subject_vendor_data"`
// Country code of the applicant, from the submitted `address.country`
// (typically ISO 3166-1 alpha-3).
SubjectCountry string `json:"subject_country"`
// Full name of the `COUNTERPARTY` party, if any.
CounterpartyName string `json:"counterparty_name"`
// Your internal identifier for the counterparty.
CounterpartyVendorData string `json:"counterparty_vendor_data"`
// Country code of the counterparty, from the submitted `address.country`.
CounterpartyCountry string `json:"counterparty_country"`
// Tags attached to the transaction (manually or by rules).
Tags []TransactionsListResponseResultsTags `json:"tags"`
// When the transaction occurred (from `transaction_at` at create time).
TxnDate time.Time `json:"txn_date"`
// When Didit recorded the submission.
CreatedAt time.Time `json:"created_at"`
// Machine-readable reason for the current `status` (e.g. `WALLET_HIGH_RISK`).
DecisionReasonCode string `json:"decision_reason_code"`
// Human-readable label for `decision_reason_code`.
DecisionReasonLabel string `json:"decision_reason_label"`
// Display name of the Console reviewer assigned to this transaction.
AssignedToName string `json:"assigned_to_name"`
// Status of the transaction's Travel Rule transfer (for example `COMPLETED`),
// or `null` when it has none.
TravelRuleStatus string `json:"travel_rule_status"`
// The transaction's Travel Rule transfer, the same block as `travel_rule` on
// `GET /v3/transactions/{transaction_id}/`, or `null` when the transaction has
// none.
TravelRule TransactionTravelRule `json:"travel_rule"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionsListResponseResults is a response object.
func (*TransactionsListResponseResults) UnmarshalJSON ¶
func (r *TransactionsListResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionsListResponseResults leniently.
type TransactionsListResponseResultsDirection ¶
type TransactionsListResponseResultsDirection string
TransactionsListResponseResultsDirection: Direction relative to the subject. Stored uppercase regardless of the casing submitted.
TransactionsListResponseResultsDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsListResponseResultsDirectionInbound TransactionsListResponseResultsDirection = "INBOUND" TransactionsListResponseResultsDirectionOutbound TransactionsListResponseResultsDirection = "OUTBOUND" )
Known values of TransactionsListResponseResultsDirection.
type TransactionsListResponseResultsSeverity ¶
type TransactionsListResponseResultsSeverity string
TransactionsListResponseResultsSeverity: Categorical risk severity set by rules/providers (`UNKNOWN`, `LOW`, `MEDIUM`, `HIGH`, `CRITICAL`). `null` until something sets it.
TransactionsListResponseResultsSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsListResponseResultsSeverityUnknown TransactionsListResponseResultsSeverity = "UNKNOWN" TransactionsListResponseResultsSeverityLow TransactionsListResponseResultsSeverity = "LOW" TransactionsListResponseResultsSeverityMedium TransactionsListResponseResultsSeverity = "MEDIUM" TransactionsListResponseResultsSeverityHigh TransactionsListResponseResultsSeverity = "HIGH" TransactionsListResponseResultsSeverityCritical TransactionsListResponseResultsSeverity = "CRITICAL" )
Known values of TransactionsListResponseResultsSeverity.
type TransactionsListResponseResultsStatus ¶
type TransactionsListResponseResultsStatus string
TransactionsListResponseResultsStatus: Current monitoring verdict.
TransactionsListResponseResultsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsListResponseResultsStatusApproved TransactionsListResponseResultsStatus = "APPROVED" TransactionsListResponseResultsStatusInReview TransactionsListResponseResultsStatus = "IN_REVIEW" TransactionsListResponseResultsStatusDeclined TransactionsListResponseResultsStatus = "DECLINED" TransactionsListResponseResultsStatusAwaitingUser TransactionsListResponseResultsStatus = "AWAITING_USER" )
Known values of TransactionsListResponseResultsStatus.
type TransactionsListResponseResultsTags ¶
type TransactionsListResponseResultsTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description"`
// Whether the tag is a Didit preset or a custom tag.
Source TransactionsListResponseResultsTagsSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TransactionsListResponseResultsTags is a response object.
func (*TransactionsListResponseResultsTags) UnmarshalJSON ¶
func (r *TransactionsListResponseResultsTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TransactionsListResponseResultsTags leniently.
type TransactionsListResponseResultsTagsSource ¶
type TransactionsListResponseResultsTagsSource string
TransactionsListResponseResultsTagsSource: Whether the tag is a Didit preset or a custom tag.
TransactionsListResponseResultsTagsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsListResponseResultsTagsSourceDidit TransactionsListResponseResultsTagsSource = "didit" TransactionsListResponseResultsTagsSourceCustom TransactionsListResponseResultsTagsSource = "custom" )
Known values of TransactionsListResponseResultsTagsSource.
type TransactionsNotesCreateParams ¶
type TransactionsNotesCreateParams struct {
// Plain-text note. Leading and trailing whitespace is trimmed and a blank note
// is rejected. No length limit. Required.
Note string `json:"note"`
// Emails of members of your organization to mention. Each must be a valid email
// of an organization member.
MentionedEmails Opt[[]string] `json:"mentioned_emails"`
}
TransactionsNotesCreateParams holds the parameters of Client.Transactions.Notes.Create.
func (TransactionsNotesCreateParams) MarshalJSON ¶
func (r TransactionsNotesCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsNotesListParams ¶
type TransactionsNotesListParams struct {
// Number of notes per page. Defaults to 50. A value that is not a positive
// integer falls back to 50; a value above 1000000 returns `400`.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based position of the first note to return. Prefer following `next`. A
// value that is not a whole number falls back to 0; a value above 1000000
// returns `400`.
Offset Opt[int64] `json:"-" query:"offset"`
}
TransactionsNotesListParams holds the parameters of Client.Transactions.Notes.List.
func (TransactionsNotesListParams) MarshalJSON ¶
func (r TransactionsNotesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsNotesService ¶
type TransactionsNotesService struct {
// contains filtered or unexported fields
}
TransactionsNotesService holds the transactions notes operations. Use it through Client.Transactions.Notes.
func (*TransactionsNotesService) Create ¶
func (r *TransactionsNotesService) Create(ctx context.Context, transactionID string, params TransactionsNotesCreateParams, opts ...option.RequestOption) (*TransactionNote, error)
Create: Create transaction note.
Add a plain-text note to a monitored transaction's review timeline, where Console reviewers see it. A note is context, not a decision: the transaction's `status`, `score` and alerts do not change, no webhook is sent, and nothing is billed. The transaction's `activities` gain a `TRANSACTION_NOTE_ADDED` entry.
Notes created with an API key have no author: `actor_email` and `actor_name` are `null`, so put the author in the text if you need it. Every address in `mentioned_emails` must belong to a member of your organization, otherwise the whole request fails with `400`; mentions are stored lower-cased and de-duplicated, and this endpoint does not notify the mentioned members.
Each call creates a new note, so retrying a timed-out request can add it twice: list the notes before retrying. There is no API endpoint to edit or remove a note. A scoped API key needs `transactions: write`; a key limited to some workflows or to approved sessions cannot call this endpoint.
POST /v3/transactions/{transaction_id}/notes/
func (*TransactionsNotesService) List ¶
func (r *TransactionsNotesService) List(ctx context.Context, transactionID string, params TransactionsNotesListParams, opts ...option.RequestOption) (*Page[TransactionNote], error)
List: List transaction notes.
List the notes on one monitored transaction, newest first (`created_at` descending): notes you add through the API, notes and status changes reviewers make in the Console, and notes Didit adds automatically (a rule's `add_note` action, or a problem creating the user-action verification session), which carry `actor_name` `Rule Engine`. `metadata` tells the note types apart.
Paginated with `limit` and `offset`. `count` is exact up to 100 and capped at 100 above that, so follow `next` until it is `null` instead of computing pages from `count`. This is a read with no side effects.
A scoped API key needs `transactions: read`; a key limited to some workflows or to approved sessions cannot call this endpoint. Reviewers see the same list under **Notes** on the [transaction detail](https://docs.didit.me/transaction-monitoring/console#transaction-detail).
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/transactions/{transaction_id}/notes/
func (*TransactionsNotesService) ListAutoPaging ¶
func (r *TransactionsNotesService) ListAutoPaging(ctx context.Context, transactionID string, params TransactionsNotesListParams, opts ...option.RequestOption) *PageIterator[TransactionNote]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type TransactionsRulesListLibraryParams ¶
type TransactionsRulesListLibraryParams struct {
// Filter by bundle, e.g. finance, aml_ctf, crypto_monitoring, travel_rule
Bundle Opt[string] `json:"-" query:"bundle"`
// Filter by category
Category Opt[string] `json:"-" query:"category"`
// Case-insensitive match against title and description
Search Opt[string] `json:"-" query:"search"`
// Page size
Limit Opt[int64] `json:"-" query:"limit"`
// Page offset
Offset Opt[int64] `json:"-" query:"offset"`
}
TransactionsRulesListLibraryParams holds the parameters of Client.Transactions.Rules.ListLibrary.
func (TransactionsRulesListLibraryParams) MarshalJSON ¶
func (r TransactionsRulesListLibraryParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsRulesListParams ¶
type TransactionsRulesListParams struct {
// PRESET or CUSTOM
Source Opt[TransactionsRulesListParamsSource] `json:"-" query:"source"`
// Filter by rule category
Category Opt[string] `json:"-" query:"category"`
// ACTIVE, DISABLED or TEST
Mode Opt[TransactionsRulesListParamsMode] `json:"-" query:"mode"`
// Filter presets by bundle
Bundle Opt[string] `json:"-" query:"bundle"`
// Case-insensitive match against title and description
Search Opt[string] `json:"-" query:"search"`
// Comma-separated ordering fields, default source,-run_count
Ordering Opt[string] `json:"-" query:"ordering"`
// Page size
Limit Opt[int64] `json:"-" query:"limit"`
// Page offset
Offset Opt[int64] `json:"-" query:"offset"`
}
TransactionsRulesListParams holds the parameters of Client.Transactions.Rules.List.
func (TransactionsRulesListParams) MarshalJSON ¶
func (r TransactionsRulesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TransactionsRulesListParamsMode ¶
type TransactionsRulesListParamsMode string
TransactionsRulesListParamsMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsRulesListParamsModeActive TransactionsRulesListParamsMode = "ACTIVE" TransactionsRulesListParamsModeDisabled TransactionsRulesListParamsMode = "DISABLED" TransactionsRulesListParamsModeTest TransactionsRulesListParamsMode = "TEST" )
Known values of TransactionsRulesListParamsMode.
type TransactionsRulesListParamsSource ¶
type TransactionsRulesListParamsSource string
TransactionsRulesListParamsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TransactionsRulesListParamsSourcePreset TransactionsRulesListParamsSource = "PRESET" TransactionsRulesListParamsSourceCustom TransactionsRulesListParamsSource = "CUSTOM" )
Known values of TransactionsRulesListParamsSource.
type TransactionsRulesService ¶
type TransactionsRulesService struct {
// contains filtered or unexported fields
}
TransactionsRulesService holds the transactions rules operations. Use it through Client.Transactions.Rules.
func (*TransactionsRulesService) Backtest ¶
func (r *TransactionsRulesService) Backtest(ctx context.Context, params TransactionRuleBacktestRequest, opts ...option.RequestOption) (*TransactionRuleBacktestResult, error)
Backtest: Backtest rule configuration.
Evaluate a hypothetical rule configuration against your recent transactions (most recent first, up to the backtest cap) without creating a rule or touching any transaction. Use it before activating a rule to see how often it would have matched and how many subjects it would have affected.
POST /v3/transactions/rules/backtest/
func (*TransactionsRulesService) Create ¶
func (r *TransactionsRulesService) Create(ctx context.Context, params TransactionRuleCreateRequest, opts ...option.RequestOption) (*TransactionRuleDetail, error)
Create: Create rule.
Create a CUSTOM transaction-monitoring rule. Titles are unique per application (duplicate -> 400). A `change_status` action targeting `AWAITING_USER` must carry `workflow_id`. Rules created in ACTIVE mode apply to new transactions immediately - the recommended workflow is create in TEST mode, backtest, then switch mode to ACTIVE.
POST /v3/transactions/rules/
func (*TransactionsRulesService) Delete ¶
func (r *TransactionsRulesService) Delete(ctx context.Context, ruleUUID string, opts ...option.RequestOption) error
Delete: Delete rule.
Delete a CUSTOM rule. Deletion is immediate and permanent: the rule stops evaluating for new transactions and disappears from listings, while past rule runs on already-evaluated transactions keep their recorded results. Library rules cannot be deleted - uninstall them via the install endpoint instead (they can always be reinstalled from the library).
DELETE /v3/transactions/rules/{rule_uuid}/
func (*TransactionsRulesService) InstallLibrary ¶
func (r *TransactionsRulesService) InstallLibrary(ctx context.Context, params TransactionRuleInstallRequest, opts ...option.RequestOption) (*TransactionRuleInstallResult, error)
InstallLibrary: Install library rules.
Install one or more presets onto the application, by `library_keys` or a whole `bundle`. An installed preset is active at once while transaction monitoring is on, and disabled otherwise; already-installed keys are skipped. A library rule whose conditions read data the rules engine cannot evaluate yet is withheld until it can run. A request that names one in `library_keys` answers 400 and installs nothing ("These library rules cannot run yet: their conditions read data the rules engine cannot evaluate." followed by the keys), and a `bundle` install skips it. A withheld rule comes back on its own once its conditions can be evaluated. A `library_keys` entry that is not in the library is skipped, not refused.
POST /v3/transactions/rules/install/
func (*TransactionsRulesService) List ¶
func (r *TransactionsRulesService) List(ctx context.Context, params TransactionsRulesListParams, opts ...option.RequestOption) (*Page[TransactionRuleDetail], error)
List: List rules.
List the application's transaction-monitoring rules: your custom rules plus any library presets you have installed. Filter by source, category, mode, bundle or free-text search; order with `ordering` (run_count, approved_pct, reviewed_pct, declined_pct, latest_triggered_at, title, created_at, source, each with an optional `-` prefix).
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/transactions/rules/
func (*TransactionsRulesService) ListAutoPaging ¶
func (r *TransactionsRulesService) ListAutoPaging(ctx context.Context, params TransactionsRulesListParams, opts ...option.RequestOption) *PageIterator[TransactionRuleDetail]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*TransactionsRulesService) ListLibrary ¶
func (r *TransactionsRulesService) ListLibrary(ctx context.Context, params TransactionsRulesListLibraryParams, opts ...option.RequestOption) (*Page[TransactionRuleLibraryEntry], error)
ListLibrary: List rule library.
Browse the full preset rule library (150+ rules) with each entry's complete configuration and an `is_installed` flag for this application. Filter by bundle, category, or free-text search. A library rule whose conditions read data the rules engine cannot evaluate yet is withheld until it can run. Withheld rules are not listed.
It returns one page; ListLibraryAutoPaging iterates over every item of every page.
GET /v3/transactions/rules/library/
func (*TransactionsRulesService) ListLibraryAutoPaging ¶
func (r *TransactionsRulesService) ListLibraryAutoPaging(ctx context.Context, params TransactionsRulesListLibraryParams, opts ...option.RequestOption) *PageIterator[TransactionRuleLibraryEntry]
ListLibraryAutoPaging iterates over every item of every page of ListLibrary, fetching pages as needed.
func (*TransactionsRulesService) Retrieve ¶
func (r *TransactionsRulesService) Retrieve(ctx context.Context, ruleUUID string, opts ...option.RequestOption) (*TransactionRuleDetail, error)
Retrieve: Get rule.
Retrieve one rule with its full configuration and execution counters.
GET /v3/transactions/rules/{rule_uuid}/
func (*TransactionsRulesService) UninstallLibrary ¶
func (r *TransactionsRulesService) UninstallLibrary(ctx context.Context, params TransactionRuleInstallRequest, opts ...option.RequestOption) (*TransactionRuleInstallResult, error)
UninstallLibrary: Uninstall library rules.
Remove installed presets from the application, by `library_keys` or a whole `bundle`. Uninstalled presets stop evaluating immediately and can be reinstalled from the library at any time.
DELETE /v3/transactions/rules/install/
func (*TransactionsRulesService) Update ¶
func (r *TransactionsRulesService) Update(ctx context.Context, ruleUUID string, params TransactionRuleUpdateRequest, opts ...option.RequestOption) (*TransactionRuleDetail, error)
Update: Update rule.
Partially update a rule. Custom rules accept every configuration field. Library (PRESET) rules accept only `mode` - use it to activate, disable, or switch a preset to TEST; any other field returns 400. An installed copy of a withheld library rule is switched off: setting its `mode` to anything but `DISABLED` answers 400 ("This library rule cannot run yet: its conditions read data the rules engine cannot evaluate.").
PATCH /v3/transactions/rules/{rule_uuid}/
type TransactionsService ¶
type TransactionsService struct {
Notes *TransactionsNotesService
Rules *TransactionsRulesService
TravelRule *TransactionsTravelRuleService
// contains filtered or unexported fields
}
TransactionsService holds the transactions operations. Use it through Client.Transactions.
func (*TransactionsService) Create ¶
func (r *TransactionsService) Create(ctx context.Context, params TransactionsCreateParams, opts ...option.RequestOption) (*TransactionDetail, error)
Create: Create transaction.
Submit a transaction for synchronous AML/risk monitoring. The transaction is created `APPROVED`, then your rules (and crypto screening, when applicable) run inline and may flip the returned `status` to `IN_REVIEW` or `DECLINED`. **`transaction_id` is your idempotency key** (max 128 chars, unique per app); reusing it returns 400. A `transaction.created` webhook is dispatched on success for live applications. Sandbox applications are not billed and do not emit `transaction.created` or `transaction.status.updated` webhooks. Sandbox Travel Rule exchanges do emit `travel_rule.status.updated` webhooks with `environment: sandbox`. A Travel Rule transfer is stored and returned before any counterparty is contacted: `travel_rule.status` comes back `AWAITING_COUNTERPARTY` (or `NOT_APPLICABLE` below your threshold, `UNCONFIRMED_OWNERSHIP` for a declared self-hosted wallet, `COMPLETED` when the other wallet is your own verified wallet) and `travel_rule.protocol` is null. Didit then chooses the rail and sends the exchange, and every later status change of the transfer, including `COUNTERPARTY_VASP_NOT_FOUND` when no rail reaches the counterparty, arrives as a `travel_rule.status.updated` webhook. Your rules run again when the rail or the status changes.
POST /v3/transactions/
func (*TransactionsService) CreateSDKToken ¶
func (r *TransactionsService) CreateSDKToken(ctx context.Context, params TransactionsCreateSDKTokenParams, opts ...option.RequestOption) (*TransactionsCreateSDKTokenResponse, error)
CreateSDKToken: Mint an SDK transaction token.
Mint a short-lived scoped token your app passes to the Didit SDKs so they can submit transactions directly from the end-user's device via `POST /v1/transactions/`. The token is bound to one `vendor_data` (your user id): every transaction submitted with it has its subject identity enforced server-side from that binding, so a tampered client cannot submit on behalf of another user. Mint tokens from your backend - never ship the API key itself in an app. camelCase aliases (`vendorData`, `ttlSeconds`, `maxUses`) are also accepted.
POST /v3/transactions/sdk-token/
func (*TransactionsService) GeneratePDF ¶
func (r *TransactionsService) GeneratePDF(ctx context.Context, transactionUUID string, opts ...option.RequestOption) (*http.Response, error)
GeneratePDF: Download a transaction PDF report.
Render one monitored transaction as a PDF report: overview and verdict, parties and payment methods, custom properties, alerts and rule runs, screening and Travel Rule results, the network summary, the cost breakdown, up to 50 related transactions and the 20 most recent activity entries. The body is the PDF itself (`application/pdf`), not JSON.
The report is rendered from the transaction's current data on every call, so request it again after a status change. Nothing is stored and nothing is billed. Rendering can take a few seconds, so use a generous client timeout.
This endpoint lives on an application-scoped path: put your organization ID and the ID of the application your API key belongs to in the URL ([find your organization ID](https://docs.didit.me/getting-started/api-authentication#find-your-organization-id)). A PDF report counts as media: a scoped API key needs `media: read` and `transactions: read`, and a key limited to some workflows or to approved sessions cannot call it.
The response is a file (application/pdf). Read it from the returned response's body and close it.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/pdf/
func (*TransactionsService) List ¶
func (r *TransactionsService) List(ctx context.Context, params TransactionsListParams, opts ...option.RequestOption) (*Page[TransactionsListResponseResults], error)
List: List transactions.
Paginated list of monitored transactions, newest first (`txn_date` desc). `count` is capped at 100; use `total_transactions` for the true row count. This endpoint does not support filtering or search parameters.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/transactions/
func (*TransactionsService) ListAutoPaging ¶
func (r *TransactionsService) ListAutoPaging(ctx context.Context, params TransactionsListParams, opts ...option.RequestOption) *PageIterator[TransactionsListResponseResults]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*TransactionsService) ListNetworks ¶
func (r *TransactionsService) ListNetworks(ctx context.Context, transactionUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListNetworks: List networks for a transaction.
List the networks the transaction's backing KYC/KYB subject belongs to (resolved through the transaction's session or business session).
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/networks/
func (*TransactionsService) ListPartyNetworks ¶
func (r *TransactionsService) ListPartyNetworks(ctx context.Context, transactionUUID string, transactionPartyUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListPartyNetworks: List networks for a transaction party.
List the networks a transaction party (remitter, beneficiary, or counterparty) belongs to, resolved through the party itself rather than through the transaction's backing session.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/transactions/{transaction_uuid}/parties/{transaction_party_uuid}/networks/
func (*TransactionsService) ListRelated ¶
func (r *TransactionsService) ListRelated(ctx context.Context, transactionID string, params TransactionsListRelatedParams, opts ...option.RequestOption) (*Page[TransactionSummary], error)
ListRelated: List related transactions.
List the other transactions in your application that involve the same people or companies as this one. A transaction is related when any of its parties, in any role, has the same `vendor_data` as one of this transaction's parties. The transaction itself is never returned, and parties without `vendor_data` are ignored: when none of this transaction's parties has one, the result is always empty.
Results use the summary shape of `GET /v3/transactions/`, newest first (`txn_date`, then `created_at`). Paginated with `limit` and `offset`; `count` is exact up to 100 and capped at 100 above that, so follow `next` until it is `null`.
A scoped API key needs `transactions: read`; a key limited to some workflows or to approved sessions cannot call this endpoint. Send the same `vendor_data` for the same person or company on every [transaction](https://docs.didit.me/transaction-monitoring/transactions#subject-and-counterparty) to make this list complete.
It returns one page; ListRelatedAutoPaging iterates over every item of every page.
GET /v3/transactions/{transaction_id}/related/
func (*TransactionsService) ListRelatedAutoPaging ¶
func (r *TransactionsService) ListRelatedAutoPaging(ctx context.Context, transactionID string, params TransactionsListRelatedParams, opts ...option.RequestOption) *PageIterator[TransactionSummary]
ListRelatedAutoPaging iterates over every item of every page of ListRelated, fetching pages as needed.
func (*TransactionsService) Retrieve ¶
func (r *TransactionsService) Retrieve(ctx context.Context, transactionID string, opts ...option.RequestOption) (*TransactionDetail, error)
Retrieve: Get transaction.
Retrieve the full monitoring record for one transaction: parties, score/severity, rule runs, alerts, Travel Rule outcome, remediation session.
GET /v3/transactions/{transaction_id}/
type TransactionsTravelRuleService ¶
type TransactionsTravelRuleService struct {
// contains filtered or unexported fields
}
TransactionsTravelRuleService holds the transactions travel_rule operations. Use it through Client.Transactions.TravelRule.
func (*TransactionsTravelRuleService) ConfirmOwnership ¶
func (r *TransactionsTravelRuleService) ConfirmOwnership(ctx context.Context, transactionID string, params TravelRuleOwnershipConfirmRequest, opts ...option.RequestOption) (*TravelRuleTransferDetail, error)
ConfirmOwnership: Confirm or deny wallet ownership.
Resolve a transfer that waits on wallet ownership: call it on your own side of the transfer when it is UNCONFIRMED_OWNERSHIP, or when it is an inbound transfer in ON_HOLD. Confirming marks the matching wallet address book entry as ownership-verified (for an inbound ON_HOLD transfer with no entry, Didit creates one from beneficiary_data.wallet_address) and runs the beneficiary name match on both sides of the transfer; denying declines both sides. An inbound transfer whose deposit already settled moves on to FINISHED when the match succeeds. When the counterparty wallet was declared self-hosted (counterparty.payment_method.method_type: unhosted_wallet), confirming records that the customer verified who controls that wallet and completes the transfer (COMPLETED) in both directions, or FINISHED for an inbound deposit whose on-chain hash is already known. The wallet verified is the counterparty's: the destination of an outbound withdrawal, or the source (originator's wallet) of an inbound deposit. If it is not in your wallet address book yet, Didit adds it as ownership-verified under the counterparty's name; if the book already holds it under a different holder name, the transfer moves to COUNTERPARTY_MISMATCHED_DATA. For an inbound TRP transfer in UNCONFIRMED_OWNERSHIP, ON_HOLD or COUNTERPARTY_MISMATCHED_DATA, Didit sends your decision to the originating VASP instead: approving returns the payment address (wallet_address, or the matched entry's address) and moves the transfer to COMPLETED, and denying declines it. The same call also decides an inbound transfer that a GTR or Sygna Bridge counterparty sent and that waits for your review (`UNCONFIRMED_OWNERSHIP`, `ON_HOLD` or `COUNTERPARTY_MISMATCHED_DATA`): `confirmed: true` approves it (pass `wallet_address` when the transfer names none) and `confirmed: false` declines it, and the network is answered after the response, with retries. VerifyVASP takes its answer when it asks, so a VerifyVASP transfer that would need your review is declined at once and cannot be decided later.
POST /v3/transactions/{transaction_id}/travel-rule/ownership/
func (*TransactionsTravelRuleService) CreateMessage ¶
func (r *TransactionsTravelRuleService) CreateMessage(ctx context.Context, transactionID string, params TravelRuleMessageCreateRequest, opts ...option.RequestOption) (*TravelRuleMessage, error)
CreateMessage: Send a Travel Rule message or document request.
Sends a message or a document request to the counterparty VASP. Works on INTERNAL transfers (the other Didit customer sees it on its side of the pair) and EMAIL transfers (the counterparty is emailed and answers in the pickup portal). A transfer over TRP, GTR, TRUST, VerifyVASP or Sygna carries no messages, because those protocols have none. Limits: 100 messages per transfer, 5000 characters per body, 10 requested documents, 5 files of 10 MB each.
POST /v3/transactions/{transaction_id}/travel-rule/messages/
func (*TransactionsTravelRuleService) ListMessages ¶
func (r *TransactionsTravelRuleService) ListMessages(ctx context.Context, transactionID string, opts ...option.RequestOption) ([]TravelRuleMessage, error)
ListMessages: List Travel Rule messages.
Messages and document requests exchanged with the counterparty VASP about this transfer.
GET /v3/transactions/{transaction_id}/travel-rule/messages/
func (*TransactionsTravelRuleService) TriggerTestVASPInbound ¶
func (r *TransactionsTravelRuleService) TriggerTestVASPInbound(ctx context.Context, params TravelRuleTestVASPInboundRequest, opts ...option.RequestOption) (*TravelRuleTestVASPInboundResponse, error)
TriggerTestVASPInbound: Trigger an inbound transfer from the Didit Test VASP (sandbox).
Sandbox applications only. The Didit Test VASP sends your application an inbound Travel Rule transfer, so you can exercise the receiving side of an exchange end to end before going live. The transfer is booked and decided by the same logic a real inbound transfer from a network runs against your wallet address book, so the inbox, the decision and the wallet ownership flow behave as they do live. Nothing leaves Didit. A live application receives 400. Send the same `reference` again to get the transfer the first call booked instead of a second one.
POST /v3/travel-rule/test-vasp/inbound/
func (*TransactionsTravelRuleService) UpdateTransfer ¶
func (r *TransactionsTravelRuleService) UpdateTransfer(ctx context.Context, transactionID string, params TravelRuleTransferPatchRequest, opts ...option.RequestOption) (*TravelRuleTransferDetail, error)
UpdateTransfer: Finish, cancel, resend, or update the originator wallet of a Travel Rule transfer.
Provide `payment_txn_id` to report the on-chain hash and move an outbound COMPLETED transfer to FINISHED (its INTERNAL-rail counterpart also moves to FINISHED), `{"action": "cancel"}` to cancel a non-terminal transfer, or `{"action": "resend"}` to route an outbound transfer stuck in COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE, or NOT_ENOUGH_COUNTERPARTY_DATA again (improve the counterparty data first, e.g. add a travel_address to the destination wallet entry). resend applies to outbound transfers only. `{"action": "update_compliance_email", "compliance_email": "desk@example.com"}` replaces the compliance email of an outbound transfer in one of those three statuses, the fix for `reason: email_undeliverable`: the status does not change, and the next `resend` sends the request to that address. A resend is queued, not run inside the request: the response shows the transfer back in AWAITING_COUNTERPARTY with a `resend queued` timeline entry and a queued `delivery`, and where it went arrives as a `travel_rule.status.updated` webhook. When the transfer went over GTR, VerifyVASP or Sygna Bridge, the network learns the on-chain hash or the cancellation after the response, with retries; `delivery` shows how that message stands. `{"action": "update_originator_wallet", "wallet_address": "..."}` records the wallet the funds actually left from on an outbound transfer, for example the address a UTXO withdrawal was broadcast from rather than the main wallet you declared. It changes the record only: nothing is sent to the counterparty again and the status stays. The originator becomes `chain_details.originator` with `source: updated`, the change is added to the `timeline` with the previous and the new wallet, and the INTERNAL-rail counterpart of the transfer is updated the same way.
PATCH /v3/transactions/{transaction_id}/travel-rule/
type TravelRuleChainDetails ¶
type TravelRuleChainDetails struct {
// Canonical chain, e.g. `BTC`, `XRP`, or `LIGHTNING` for a Lightning transfer.
Chain string `json:"chain"`
Shape TravelRuleChainDetailsShape `json:"shape"`
Originator TravelRuleChainSide `json:"originator"`
Beneficiary TravelRuleChainSide `json:"beneficiary"`
// On a UTXO transfer: the inputs and outputs as stored (amounts as decimal
// strings) and which outputs Didit read as what.
Utxo TravelRuleChainDetailsUtxo `json:"utxo"`
// On a Lightning transfer: what the payment request says. Always `kind`
// (`bolt11`, `bolt12_offer`, `bolt12_invoice`, `bolt12_invoice_request`,
// `lnurl`, `lightning_address`, `node_id` or `unknown`); a BOLT11 invoice adds
// `network`, `payee_node_id`, `payment_hash`, `amount_msat`, `created_at` and
// `expires_at`; a BOLT12 string `blinded_paths` and `payee_node_id`; an LNURL
// or a Lightning Address its `domain`. Nothing is resolved over the network:
// the request is decoded only.
Lightning map[string]any `json:"lightning"`
// UTXO inconsistencies worth a look: the declared originator is not an input,
// the declared beneficiary is not an output, no single beneficiary output could
// be told apart, or the beneficiary output pays a different amount than the
// transaction states.
Warnings []TravelRuleChainDetailsWarnings `json:"warnings"`
// On an outbound Lightning transfer whose payment request names no payee: why
// the transfer is `NOT_APPLICABLE`. `LIGHTNING_NO_PAYEE_IDENTIFIER` (the
// request names no payee node, or could not be decoded),
// `LIGHTNING_BOLT12_BLINDED_PAYEE` (the offer hides its payee behind blinded
// paths), `LIGHTNING_LNURL_NAMES_NO_PAYEE` (an LNURL names a service, not a
// payee). The same code opens the transfer's last `timeline` entry.
NotApplicableReason TravelRuleChainDetailsNotApplicableReason `json:"not_applicable_reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleChainDetails: How the transfer's chain names its two wallets, when that is more than one address paying another. Empty (`{}`) for an account-chain transfer (EVM, Solana, Tron), where the two addresses are the wallets. Matching, routing and the address book read the wallets from here first.
func (*TravelRuleChainDetails) UnmarshalJSON ¶
func (r *TravelRuleChainDetails) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleChainDetails leniently.
type TravelRuleChainDetailsNotApplicableReason ¶
type TravelRuleChainDetailsNotApplicableReason string
TravelRuleChainDetailsNotApplicableReason: On an outbound Lightning transfer whose payment request names no payee: why the transfer is `NOT_APPLICABLE`. `LIGHTNING_NO_PAYEE_IDENTIFIER` (the request names no payee node, or could not be decoded), `LIGHTNING_BOLT12_BLINDED_PAYEE` (the offer hides its payee behind blinded paths), `LIGHTNING_LNURL_NAMES_NO_PAYEE` (an LNURL names a service, not a payee). The same code opens the transfer's last `timeline` entry.
TravelRuleChainDetailsNotApplicableReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleChainDetailsNotApplicableReasonLightningNoPayeeIdentifier TravelRuleChainDetailsNotApplicableReason = "LIGHTNING_NO_PAYEE_IDENTIFIER" TravelRuleChainDetailsNotApplicableReasonLightningBolt12BlindedPayee TravelRuleChainDetailsNotApplicableReason = "LIGHTNING_BOLT12_BLINDED_PAYEE" TravelRuleChainDetailsNotApplicableReasonLightningLnurlNamesNoPayee TravelRuleChainDetailsNotApplicableReason = "LIGHTNING_LNURL_NAMES_NO_PAYEE" )
Known values of TravelRuleChainDetailsNotApplicableReason.
type TravelRuleChainDetailsShape ¶
type TravelRuleChainDetailsShape string
TravelRuleChainDetailsShape is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleChainDetailsShapeUtxo TravelRuleChainDetailsShape = "utxo" TravelRuleChainDetailsShapeMemo TravelRuleChainDetailsShape = "memo" TravelRuleChainDetailsShapeLightning TravelRuleChainDetailsShape = "lightning" )
Known values of TravelRuleChainDetailsShape.
type TravelRuleChainDetailsUtxo ¶
type TravelRuleChainDetailsUtxo struct {
Inputs []TravelRuleUtxoEntry `json:"inputs"`
Outputs []TravelRuleUtxoEntry `json:"outputs"`
// Outputs that pay an input address back.
ChangeOutputIndexes []int64 `json:"change_output_indexes"`
// The output that pays the beneficiary; null when none could be told apart.
BeneficiaryOutputIndex int64 `json:"beneficiary_output_index"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleChainDetailsUtxo: On a UTXO transfer: the inputs and outputs as stored (amounts as decimal strings) and which outputs Didit read as what.
func (*TravelRuleChainDetailsUtxo) UnmarshalJSON ¶
func (r *TravelRuleChainDetailsUtxo) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleChainDetailsUtxo leniently.
type TravelRuleChainDetailsWarnings ¶
type TravelRuleChainDetailsWarnings string
TravelRuleChainDetailsWarnings is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleChainDetailsWarningsDeclaredOriginatorNotAnInput TravelRuleChainDetailsWarnings = "declared_originator_not_an_input" TravelRuleChainDetailsWarningsDeclaredBeneficiaryNotAnOutput TravelRuleChainDetailsWarnings = "declared_beneficiary_not_an_output" TravelRuleChainDetailsWarningsBeneficiaryOutputAmbiguous TravelRuleChainDetailsWarnings = "beneficiary_output_ambiguous" TravelRuleChainDetailsWarningsBeneficiaryOutputAmountDiffers TravelRuleChainDetailsWarnings = "beneficiary_output_amount_differs" )
Known values of TravelRuleChainDetailsWarnings.
type TravelRuleChainSide ¶
type TravelRuleChainSide struct {
// The wallet. On a memo network the classic address (an XRP X-address is split
// into its classic address and its tag); on Lightning the payee node id or
// Lightning Address.
Address string `json:"address"`
// The destination tag or memo that is part of the wallet; `""` for none.
Memo string `json:"memo"`
// Where the wallet came from: `declared` (your request), `x_address` (split
// from an XRP X-address), `largest_input` (the UTXO input address that
// contributed the most), `only_non_change_output` (the only UTXO output that is
// not change), `amount_match` (the one UTXO output paying the transfer amount),
// `invoice_payee` (the payee a Lightning payment request names), `updated` (set
// later with `action: update_originator_wallet`).
Source TravelRuleChainSideSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleChainSide: One side's wallet as Didit resolved it from the chain data.
func (*TravelRuleChainSide) UnmarshalJSON ¶
func (r *TravelRuleChainSide) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleChainSide leniently.
type TravelRuleChainSideSource ¶
type TravelRuleChainSideSource string
TravelRuleChainSideSource: Where the wallet came from: `declared` (your request), `x_address` (split from an XRP X-address), `largest_input` (the UTXO input address that contributed the most), `only_non_change_output` (the only UTXO output that is not change), `amount_match` (the one UTXO output paying the transfer amount), `invoice_payee` (the payee a Lightning payment request names), `updated` (set later with `action: update_originator_wallet`).
TravelRuleChainSideSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleChainSideSourceDeclared TravelRuleChainSideSource = "declared" TravelRuleChainSideSourceXAddress TravelRuleChainSideSource = "x_address" TravelRuleChainSideSourceLargestInput TravelRuleChainSideSource = "largest_input" TravelRuleChainSideSourceOnlyNonChangeOutput TravelRuleChainSideSource = "only_non_change_output" TravelRuleChainSideSourceAmountMatch TravelRuleChainSideSource = "amount_match" TravelRuleChainSideSourceInvoicePayee TravelRuleChainSideSource = "invoice_payee" TravelRuleChainSideSourceUpdated TravelRuleChainSideSource = "updated" )
Known values of TravelRuleChainSideSource.
type TravelRuleCounterpartyContact ¶
type TravelRuleCounterpartyContact struct {
UUID string `json:"uuid"`
// The directory entry's `id`, as GET /v3/travel-rule/vasps/ shows it.
Counterparty string `json:"counterparty"`
CounterpartyName string `json:"counterparty_name"`
Email string `json:"email"`
// Optional label, for example the team name.
Name string `json:"name"`
// staff: curated by Didit. learned: an address at one of the VASP's own domains
// that answered a request through its response link. application: added by your
// application.
Source TravelRuleCounterpartyContactSource `json:"source"`
// platform: curated by Didit or learned from a verified answer, used for every
// Didit customer, read-only for you. application: private to your application.
Scope TravelRuleCounterpartyContactScope `json:"scope"`
// Empty for platform contacts and for contacts an API key added.
CreatedBy string `json:"created_by"`
// When this address last answered a request through its response link.
VerifiedAt time.Time `json:"verified_at"`
// true once the address bounced or complained; the EMAIL rail skips it.
IsInvalid bool `json:"is_invalid"`
InvalidReason TravelRuleCounterpartyContactInvalidReason `json:"invalid_reason"`
// The receiving mail server's reason, when it gave one.
InvalidDetail string `json:"invalid_detail"`
InvalidAt time.Time `json:"invalid_at"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyContact: A compliance address the EMAIL rail writes to for one directory entry.
func (*TravelRuleCounterpartyContact) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyContact) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyContact leniently.
type TravelRuleCounterpartyContactCreate ¶
type TravelRuleCounterpartyContactCreate struct {
// The directory entry's `id`. Required.
Counterparty string `json:"counterparty"`
// Required.
Email string `json:"email"`
// Optional label.
Name Opt[string] `json:"name"`
}
TravelRuleCounterpartyContactCreate is a request object.
func (TravelRuleCounterpartyContactCreate) MarshalJSON ¶
func (r TravelRuleCounterpartyContactCreate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleCounterpartyContactInvalidReason ¶
type TravelRuleCounterpartyContactInvalidReason string
TravelRuleCounterpartyContactInvalidReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyContactInvalidReasonEmpty TravelRuleCounterpartyContactInvalidReason = "" TravelRuleCounterpartyContactInvalidReasonHardBounce TravelRuleCounterpartyContactInvalidReason = "hard_bounce" TravelRuleCounterpartyContactInvalidReasonSoftBounce TravelRuleCounterpartyContactInvalidReason = "soft_bounce" TravelRuleCounterpartyContactInvalidReasonSpamComplaint TravelRuleCounterpartyContactInvalidReason = "spam_complaint" TravelRuleCounterpartyContactInvalidReasonSuppressed TravelRuleCounterpartyContactInvalidReason = "suppressed" )
Known values of TravelRuleCounterpartyContactInvalidReason.
type TravelRuleCounterpartyContactScope ¶
type TravelRuleCounterpartyContactScope string
TravelRuleCounterpartyContactScope: platform: curated by Didit or learned from a verified answer, used for every Didit customer, read-only for you. application: private to your application.
TravelRuleCounterpartyContactScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyContactScopePlatform TravelRuleCounterpartyContactScope = "platform" TravelRuleCounterpartyContactScopeApplication TravelRuleCounterpartyContactScope = "application" )
Known values of TravelRuleCounterpartyContactScope.
type TravelRuleCounterpartyContactSource ¶
type TravelRuleCounterpartyContactSource string
TravelRuleCounterpartyContactSource: staff: curated by Didit. learned: an address at one of the VASP's own domains that answered a request through its response link. application: added by your application.
TravelRuleCounterpartyContactSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyContactSourceStaff TravelRuleCounterpartyContactSource = "staff" TravelRuleCounterpartyContactSourceApplication TravelRuleCounterpartyContactSource = "application" TravelRuleCounterpartyContactSourceLearned TravelRuleCounterpartyContactSource = "learned" )
Known values of TravelRuleCounterpartyContactSource.
type TravelRuleCounterpartyContactsListParams ¶
type TravelRuleCounterpartyContactsListParams struct {
// Only the contacts of this directory entry. Must be a UUID; an empty value
// means no filter.
Counterparty Opt[string] `json:"-" query:"counterparty"`
// Page size, default 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Rows to skip.
Offset Opt[int64] `json:"-" query:"offset"`
}
TravelRuleCounterpartyContactsListParams holds the parameters of Client.TravelRule.CounterpartyContacts.List.
func (TravelRuleCounterpartyContactsListParams) MarshalJSON ¶
func (r TravelRuleCounterpartyContactsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleCounterpartyContactsService ¶
type TravelRuleCounterpartyContactsService struct {
// contains filtered or unexported fields
}
TravelRuleCounterpartyContactsService holds the travel_rule counterparty_contacts operations. Use it through Client.TravelRule.CounterpartyContacts.
func (*TravelRuleCounterpartyContactsService) Create ¶
func (r *TravelRuleCounterpartyContactsService) Create(ctx context.Context, params TravelRuleCounterpartyContactCreate, opts ...option.RequestOption) (*TravelRuleCounterpartyContact, error)
Create: Add a counterparty contact.
Adds a private compliance address for one directory entry. Only your application sees and uses it, and the EMAIL rail writes to it before any platform contact. Adding an address the entry already has among your own contacts returns that contact.
POST /v3/travel-rule/counterparty-contacts/
func (*TravelRuleCounterpartyContactsService) Delete ¶
func (r *TravelRuleCounterpartyContactsService) Delete(ctx context.Context, contactUUID string, opts ...option.RequestOption) error
Delete: Delete a counterparty contact.
Deletes one of your application's own contacts. The EMAIL rail stops writing to it at once. Platform contacts cannot be deleted.
DELETE /v3/travel-rule/counterparty-contacts/{contact_uuid}/
func (*TravelRuleCounterpartyContactsService) List ¶
func (r *TravelRuleCounterpartyContactsService) List(ctx context.Context, params TravelRuleCounterpartyContactsListParams, opts ...option.RequestOption) (*Page[TravelRuleCounterpartyContact], error)
List: List counterparty contacts.
The compliance addresses the EMAIL rail may write to for your application: Didit's platform contacts plus your application's own private ones, bounced ones included, newest first. Paginated with `limit` (default 50) and `offset`; `count` stops at 100, so 100 means 100 or more.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/travel-rule/counterparty-contacts/
func (*TravelRuleCounterpartyContactsService) ListAutoPaging ¶
func (r *TravelRuleCounterpartyContactsService) ListAutoPaging(ctx context.Context, params TravelRuleCounterpartyContactsListParams, opts ...option.RequestOption) *PageIterator[TravelRuleCounterpartyContact]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type TravelRuleCounterpartyDecision ¶
type TravelRuleCounterpartyDecision struct {
// APPROVED: your team cleared the counterparty. RESTRICTED: transfers to it may
// go ahead after review. BLOCKED: your team refused it.
Decision TravelRuleCounterpartyDecisionDecision `json:"decision"`
// Free-text reason you gave, empty when none.
Reason string `json:"reason"`
// The console user who made or last changed the decision. Empty when an API key
// made it.
DecidedBy string `json:"decided_by"`
UpdatedAt time.Time `json:"updated_at"`
// The brand whose decision this entity follows because you made none on the
// entity itself. Null when the decision is the counterparty's own.
InheritedFrom TravelRuleCounterpartyDecisionInheritedFrom `json:"inherited_from"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyDecision: Your application's decision on a counterparty VASP. Private to your application: it never changes the shared directory entry and another customer never sees it. It acts only through your transaction rules (the counterparty_dd_status rule field and the travel-rule-counterparty-blocked and travel-rule-counterparty-restricted presets); it never changes how a transfer is routed.
func (*TravelRuleCounterpartyDecision) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyDecision) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyDecision leniently.
type TravelRuleCounterpartyDecisionDecision ¶
type TravelRuleCounterpartyDecisionDecision string
TravelRuleCounterpartyDecisionDecision: APPROVED: your team cleared the counterparty. RESTRICTED: transfers to it may go ahead after review. BLOCKED: your team refused it.
TravelRuleCounterpartyDecisionDecision is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyDecisionDecisionApproved TravelRuleCounterpartyDecisionDecision = "APPROVED" TravelRuleCounterpartyDecisionDecisionRestricted TravelRuleCounterpartyDecisionDecision = "RESTRICTED" TravelRuleCounterpartyDecisionDecisionBlocked TravelRuleCounterpartyDecisionDecision = "BLOCKED" )
Known values of TravelRuleCounterpartyDecisionDecision.
type TravelRuleCounterpartyDecisionInheritedFrom ¶
type TravelRuleCounterpartyDecisionInheritedFrom struct {
ID string `json:"id"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyDecisionInheritedFrom: The brand whose decision this entity follows because you made none on the entity itself. Null when the decision is the counterparty's own.
func (*TravelRuleCounterpartyDecisionInheritedFrom) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyDecisionInheritedFrom) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyDecisionInheritedFrom leniently.
type TravelRuleCounterpartyDecisionRequest ¶
type TravelRuleCounterpartyDecisionRequest struct {
// Required.
Decision TravelRuleCounterpartyDecisionRequestDecision `json:"decision"`
// Optional. Replaces the previous reason; omit it to clear it.
Reason Opt[string] `json:"reason"`
}
TravelRuleCounterpartyDecisionRequest is a request object.
func (TravelRuleCounterpartyDecisionRequest) MarshalJSON ¶
func (r TravelRuleCounterpartyDecisionRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleCounterpartyDecisionRequestDecision ¶
type TravelRuleCounterpartyDecisionRequestDecision string
TravelRuleCounterpartyDecisionRequestDecision is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyDecisionRequestDecisionApproved TravelRuleCounterpartyDecisionRequestDecision = "APPROVED" TravelRuleCounterpartyDecisionRequestDecisionRestricted TravelRuleCounterpartyDecisionRequestDecision = "RESTRICTED" TravelRuleCounterpartyDecisionRequestDecisionBlocked TravelRuleCounterpartyDecisionRequestDecision = "BLOCKED" )
Known values of TravelRuleCounterpartyDecisionRequestDecision.
type TravelRuleCounterpartyDecisionResponse ¶
type TravelRuleCounterpartyDecisionResponse struct {
// The decision that applies to the counterparty for your application: its own,
// else (for an entity of a brand) the brand's. Null when there is none.
Decision TravelRuleCounterpartyDecision `json:"decision"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyDecisionResponse is a response object.
func (*TravelRuleCounterpartyDecisionResponse) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyDecisionResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyDecisionResponse leniently.
type TravelRuleCounterpartyQuestionnaire ¶
type TravelRuleCounterpartyQuestionnaire struct {
ID string `json:"id"`
// SENT: waiting for answers. ANSWERED: the counterparty answered every
// question. EXPIRED: the answer link closed unanswered (its deadline passed, or
// a newer questionnaire replaced it), or answers passed valid_until.
Status TravelRuleCounterpartyQuestionnaireStatus `json:"status"`
// Version of Didit's standard questionnaire the answers belong to. Currently 1.
FormVersion string `json:"form_version"`
SentTo string `json:"sent_to"`
SentAt time.Time `json:"sent_at"`
// The answer-by deadline, 30 days after sending. The link stops working after
// it.
ExpiresAt time.Time `json:"expires_at"`
AnsweredAt time.Time `json:"answered_at"`
// How long the answers stay current: 365 days after answering. Null until
// answered.
ValidUntil time.Time `json:"valid_until"`
// true while the questionnaire is ANSWERED and valid_until has not passed.
Current bool `json:"current"`
// The answers keyed by question id: legal_name, licensing, jurisdictions,
// aml_program, compliance_officer, sanctions_screening, transaction_monitoring,
// travel_rule, custody, ownership, record_keeping, data_protection. Each answer
// is up to 2,000 characters. Empty until answered.
Answers map[string]string `json:"answers"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyQuestionnaire: One due-diligence questionnaire your application sent the counterparty: Didit's standard questionnaire, emailed to a compliance address on record with a single-use answer link. Private to your application.
func (*TravelRuleCounterpartyQuestionnaire) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyQuestionnaire) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyQuestionnaire leniently.
type TravelRuleCounterpartyQuestionnaireList ¶
type TravelRuleCounterpartyQuestionnaireList struct {
// Newest first.
Questionnaires []TravelRuleCounterpartyQuestionnaire `json:"questionnaires"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyQuestionnaireList is a response object.
func (*TravelRuleCounterpartyQuestionnaireList) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyQuestionnaireList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyQuestionnaireList leniently.
type TravelRuleCounterpartyQuestionnaireRequest ¶
type TravelRuleCounterpartyQuestionnaireRequest struct {
// Optional. A compliance address on record for the counterparty: for a
// directory entry its compliance address or a contact your application sees,
// for a Didit network member its confirmed compliance email. Default: the
// address a Travel Rule email to the counterparty goes to (your own contact
// first, then a platform contact, then the entry's compliance address).
SentTo Opt[string] `json:"sent_to"`
}
TravelRuleCounterpartyQuestionnaireRequest is a request object.
func (TravelRuleCounterpartyQuestionnaireRequest) MarshalJSON ¶
func (r TravelRuleCounterpartyQuestionnaireRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleCounterpartyQuestionnaireStatus ¶
type TravelRuleCounterpartyQuestionnaireStatus string
TravelRuleCounterpartyQuestionnaireStatus: SENT: waiting for answers. ANSWERED: the counterparty answered every question. EXPIRED: the answer link closed unanswered (its deadline passed, or a newer questionnaire replaced it), or answers passed valid_until.
TravelRuleCounterpartyQuestionnaireStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyQuestionnaireStatusSent TravelRuleCounterpartyQuestionnaireStatus = "SENT" TravelRuleCounterpartyQuestionnaireStatusAnswered TravelRuleCounterpartyQuestionnaireStatus = "ANSWERED" TravelRuleCounterpartyQuestionnaireStatusExpired TravelRuleCounterpartyQuestionnaireStatus = "EXPIRED" )
Known values of TravelRuleCounterpartyQuestionnaireStatus.
type TravelRuleCounterpartyScreening ¶
type TravelRuleCounterpartyScreening struct {
ID string `json:"id"`
// Approved: no possible match needs attention. In Review or Declined: a
// possible sanctions or adverse-media match.
Status TravelRuleCounterpartyScreeningStatusValue `json:"status"`
// How many possible matches the screening returned.
TotalHits int64 `json:"total_hits"`
// The highest risk score among the possible matches. Null when nothing matched.
Score float64 `json:"score"`
ScreenedAt time.Time `json:"screened_at"`
// Whether the screening is younger than fresh_days (30 days). A fresh screening
// is reused instead of billed again.
Fresh bool `json:"fresh"`
// true while the screening is fresh and its status is In Review or Declined.
// While your latest screening is flagged and counterparty screening stays on,
// counterparty_risk_level is HIGH in your rules.
Flagged bool `json:"flagged"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyScreening: One sanctions and adverse-media screening of the counterparty entity, run for and billed to your application. Private to your application: another customer never sees it.
func (*TravelRuleCounterpartyScreening) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyScreening) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyScreening leniently.
type TravelRuleCounterpartyScreeningRequest ¶
type TravelRuleCounterpartyScreeningRequest struct {
// true screens again (and bills again) even when a fresh screening exists.
Refresh Opt[bool] `json:"refresh"`
}
TravelRuleCounterpartyScreeningRequest is a request object.
func (TravelRuleCounterpartyScreeningRequest) MarshalJSON ¶
func (r TravelRuleCounterpartyScreeningRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleCounterpartyScreeningResult ¶
type TravelRuleCounterpartyScreeningResult struct {
// screened: a new screening ran and was billed (201). reused: a fresh screening
// was returned and nothing was billed (200).
Outcome TravelRuleCounterpartyScreeningResultOutcome `json:"outcome"`
Screening TravelRuleCounterpartyScreening `json:"screening"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyScreeningResult is a response object.
func (*TravelRuleCounterpartyScreeningResult) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyScreeningResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyScreeningResult leniently.
type TravelRuleCounterpartyScreeningResultOutcome ¶
type TravelRuleCounterpartyScreeningResultOutcome string
TravelRuleCounterpartyScreeningResultOutcome: screened: a new screening ran and was billed (201). reused: a fresh screening was returned and nothing was billed (200).
TravelRuleCounterpartyScreeningResultOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyScreeningResultOutcomeScreened TravelRuleCounterpartyScreeningResultOutcome = "screened" TravelRuleCounterpartyScreeningResultOutcomeReused TravelRuleCounterpartyScreeningResultOutcome = "reused" )
Known values of TravelRuleCounterpartyScreeningResultOutcome.
type TravelRuleCounterpartyScreeningStatus ¶
type TravelRuleCounterpartyScreeningStatus struct {
// Your counterparty_screening_enabled Travel Rule setting. Off by default;
// nothing is screened or billed while it is off.
Enabled bool `json:"enabled"`
// Decimal string, in USD: what one screening costs your organization, the
// Company AML Screening price.
Price string `json:"price"`
// How many days a screening stays fresh and is reused.
FreshDays int64 `json:"fresh_days"`
// Your latest screening of the counterparty. Null when you never screened it.
Screening TravelRuleCounterpartyScreening `json:"screening"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleCounterpartyScreeningStatus is a response object.
func (*TravelRuleCounterpartyScreeningStatus) UnmarshalJSON ¶
func (r *TravelRuleCounterpartyScreeningStatus) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleCounterpartyScreeningStatus leniently.
type TravelRuleCounterpartyScreeningStatusValue ¶
type TravelRuleCounterpartyScreeningStatusValue string
TravelRuleCounterpartyScreeningStatusValue: Approved: no possible match needs attention. In Review or Declined: a possible sanctions or adverse-media match.
TravelRuleCounterpartyScreeningStatusValue is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleCounterpartyScreeningStatusValueApproved TravelRuleCounterpartyScreeningStatusValue = "Approved" TravelRuleCounterpartyScreeningStatusValueInReview TravelRuleCounterpartyScreeningStatusValue = "In Review" TravelRuleCounterpartyScreeningStatusValueDeclined TravelRuleCounterpartyScreeningStatusValue = "Declined" )
Known values of TravelRuleCounterpartyScreeningStatusValue.
type TravelRuleDataMatch ¶
type TravelRuleDataMatch struct {
// True when no compared field differs.
Matched bool `json:"matched"`
// The fields that differ.
MismatchedFields []TravelRuleDataMatchMismatchedFields `json:"mismatched_fields"`
// One entry per field compared for the party's entity type (`name`,
// `date_of_birth`, `address`, `account`; a company has no `date_of_birth`).
Fields map[string]TravelRuleDataMatchFields `json:"fields"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDataMatch: Field-by-field comparison of the transfer's party data with what the other side knows about the wallet holder. It names fields and results, never values, so it stays readable while the counterparty's data is masked. Null until a comparison ran.
func (*TravelRuleDataMatch) UnmarshalJSON ¶
func (r *TravelRuleDataMatch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDataMatch leniently.
type TravelRuleDataMatchFields ¶
type TravelRuleDataMatchFields struct {
// `not_compared` when the rule is `NONE` or either side has no value for the
// field.
Result TravelRuleDataMatchFieldsResult `json:"result"`
Strictness TravelRuleDataMatchFieldsStrictness `json:"strictness"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDataMatchFields is a response object.
func (*TravelRuleDataMatchFields) UnmarshalJSON ¶
func (r *TravelRuleDataMatchFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDataMatchFields leniently.
type TravelRuleDataMatchFieldsResult ¶
type TravelRuleDataMatchFieldsResult string
TravelRuleDataMatchFieldsResult: `not_compared` when the rule is `NONE` or either side has no value for the field.
TravelRuleDataMatchFieldsResult is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataMatchFieldsResultMatched TravelRuleDataMatchFieldsResult = "matched" TravelRuleDataMatchFieldsResultMismatched TravelRuleDataMatchFieldsResult = "mismatched" TravelRuleDataMatchFieldsResultNotCompared TravelRuleDataMatchFieldsResult = "not_compared" )
Known values of TravelRuleDataMatchFieldsResult.
type TravelRuleDataMatchFieldsStrictness ¶
type TravelRuleDataMatchFieldsStrictness string
TravelRuleDataMatchFieldsStrictness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataMatchFieldsStrictnessNone TravelRuleDataMatchFieldsStrictness = "NONE" TravelRuleDataMatchFieldsStrictnessStrict TravelRuleDataMatchFieldsStrictness = "STRICT" TravelRuleDataMatchFieldsStrictnessContains TravelRuleDataMatchFieldsStrictness = "CONTAINS" TravelRuleDataMatchFieldsStrictnessDefault TravelRuleDataMatchFieldsStrictness = "DEFAULT" TravelRuleDataMatchFieldsStrictnessFuzzy TravelRuleDataMatchFieldsStrictness = "FUZZY" )
Known values of TravelRuleDataMatchFieldsStrictness.
type TravelRuleDataMatchMismatchedFields ¶
type TravelRuleDataMatchMismatchedFields string
TravelRuleDataMatchMismatchedFields is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataMatchMismatchedFieldsName TravelRuleDataMatchMismatchedFields = "name" TravelRuleDataMatchMismatchedFieldsDateOfBirth TravelRuleDataMatchMismatchedFields = "date_of_birth" TravelRuleDataMatchMismatchedFieldsAddress TravelRuleDataMatchMismatchedFields = "address" TravelRuleDataMatchMismatchedFieldsAccount TravelRuleDataMatchMismatchedFields = "account" )
Known values of TravelRuleDataMatchMismatchedFields.
type TravelRuleDataSharingFields ¶
type TravelRuleDataSharingFields struct {
// Fields shared about a natural person.
Individual []TravelRuleDataSharingFieldsIndividual `json:"individual"`
// Fields shared about a legal person.
Company []TravelRuleDataSharingFieldsCompany `json:"company"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDataSharingFields: The fields Didit sends to the counterparty VASP about your own users, per entity type. The `name` and the `wallet_address` are always sent, whatever the list says. An entity type you never chose shares every field. An empty list is a choice too: it shares the name and the wallet only.
func (*TravelRuleDataSharingFields) UnmarshalJSON ¶
func (r *TravelRuleDataSharingFields) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDataSharingFields leniently.
type TravelRuleDataSharingFieldsCompany ¶
type TravelRuleDataSharingFieldsCompany string
TravelRuleDataSharingFieldsCompany is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataSharingFieldsCompanyName TravelRuleDataSharingFieldsCompany = "name" TravelRuleDataSharingFieldsCompanyWalletAddress TravelRuleDataSharingFieldsCompany = "wallet_address" TravelRuleDataSharingFieldsCompanyAddress TravelRuleDataSharingFieldsCompany = "address" TravelRuleDataSharingFieldsCompanyNationalID TravelRuleDataSharingFieldsCompany = "national_id" TravelRuleDataSharingFieldsCompanyCustomerIdentification TravelRuleDataSharingFieldsCompany = "customer_identification" )
Known values of TravelRuleDataSharingFieldsCompany.
type TravelRuleDataSharingFieldsIndividual ¶
type TravelRuleDataSharingFieldsIndividual string
TravelRuleDataSharingFieldsIndividual is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataSharingFieldsIndividualName TravelRuleDataSharingFieldsIndividual = "name" TravelRuleDataSharingFieldsIndividualWalletAddress TravelRuleDataSharingFieldsIndividual = "wallet_address" TravelRuleDataSharingFieldsIndividualAddress TravelRuleDataSharingFieldsIndividual = "address" TravelRuleDataSharingFieldsIndividualNationalID TravelRuleDataSharingFieldsIndividual = "national_id" TravelRuleDataSharingFieldsIndividualCustomerIdentification TravelRuleDataSharingFieldsIndividual = "customer_identification" TravelRuleDataSharingFieldsIndividualDateOfBirth TravelRuleDataSharingFieldsIndividual = "date_of_birth" TravelRuleDataSharingFieldsIndividualPlaceOfBirth TravelRuleDataSharingFieldsIndividual = "place_of_birth" )
Known values of TravelRuleDataSharingFieldsIndividual.
type TravelRuleDataSharingFieldsParam ¶
type TravelRuleDataSharingFieldsParam struct {
// Fields shared about a natural person.
Individual Opt[[]TravelRuleDataSharingFieldsIndividual] `json:"individual"`
// Fields shared about a legal person.
Company Opt[[]TravelRuleDataSharingFieldsCompany] `json:"company"`
}
TravelRuleDataSharingFieldsParam: The fields Didit sends to the counterparty VASP about your own users, per entity type. The `name` and the `wallet_address` are always sent, whatever the list says. An entity type you never chose shares every field. An empty list is a choice too: it shares the name and the wallet only.
func (TravelRuleDataSharingFieldsParam) MarshalJSON ¶
func (r TravelRuleDataSharingFieldsParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleDataUnmasked ¶
type TravelRuleDataUnmasked struct {
At time.Time `json:"at"`
// What confirmed ownership: ownership_confirmed (your confirmation through the
// console or the API), wallet_proof (a wallet proof in the widget, or an
// INTERNAL inbound transfer, set when it is created), address_book_match (a
// verified address-book wallet), own_verified_wallet (your user's own verified
// wallet), inquiry_approved (your approval of an inbound TRP inquiry or a GTR
// or Sygna message), known_payment_method (a wallet your user already paid
// with) or travel_address (the per-wallet travel address named the wallet).
Reason TravelRuleDataUnmaskedReason `json:"reason"`
// Who confirmed it: the console user's email or the API key's label. Blank for
// an automatic decision.
Actor string `json:"actor"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDataUnmasked: Audit record of the moment the counterparty's data was unmasked. Null while the data is still masked, and for outbound transfers.
func (*TravelRuleDataUnmasked) UnmarshalJSON ¶
func (r *TravelRuleDataUnmasked) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDataUnmasked leniently.
type TravelRuleDataUnmaskedReason ¶
type TravelRuleDataUnmaskedReason string
TravelRuleDataUnmaskedReason: What confirmed ownership: ownership_confirmed (your confirmation through the console or the API), wallet_proof (a wallet proof in the widget, or an INTERNAL inbound transfer, set when it is created), address_book_match (a verified address-book wallet), own_verified_wallet (your user's own verified wallet), inquiry_approved (your approval of an inbound TRP inquiry or a GTR or Sygna message), known_payment_method (a wallet your user already paid with) or travel_address (the per-wallet travel address named the wallet).
TravelRuleDataUnmaskedReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDataUnmaskedReasonOwnershipConfirmed TravelRuleDataUnmaskedReason = "ownership_confirmed" TravelRuleDataUnmaskedReasonWalletProof TravelRuleDataUnmaskedReason = "wallet_proof" TravelRuleDataUnmaskedReasonAddressBookMatch TravelRuleDataUnmaskedReason = "address_book_match" TravelRuleDataUnmaskedReasonOwnVerifiedWallet TravelRuleDataUnmaskedReason = "own_verified_wallet" TravelRuleDataUnmaskedReasonInquiryApproved TravelRuleDataUnmaskedReason = "inquiry_approved" TravelRuleDataUnmaskedReasonKnownPaymentMethod TravelRuleDataUnmaskedReason = "known_payment_method" TravelRuleDataUnmaskedReasonTravelAddress TravelRuleDataUnmaskedReason = "travel_address" )
Known values of TravelRuleDataUnmaskedReason.
type TravelRuleDelivery ¶
type TravelRuleDelivery struct {
// What the message carries. `SEND`: the transfer's first message to the
// counterparty (outbound; the rail is chosen when it is sent). `ANSWER`: your
// accept or decline, owed to the network that asked (inbound). `TXID`: the
// on-chain transaction hash, after you finish the transfer. `CANCEL`: the
// cancellation, after you cancel it. `POLL`: a status query to a network that
// offers one, repeated every 5 minutes while the transfer waits on the
// counterparty.
Kind TravelRuleDeliveryKind `json:"kind"`
// `QUEUED`: waiting to be sent. `SENDING`: an attempt is running. `RETRYING`:
// an attempt failed and the next one runs at `next_attempt_at`. `DELIVERED`:
// the other side took the message. `FAILED`: the other side refused it, or the
// last attempt failed.
Status TravelRuleDeliveryStatus `json:"status"`
// The rail that carries the message. Empty until Didit has chosen one for a
// first message.
Rail TravelRuleDeliveryRail `json:"rail"`
// Attempts made so far for this message. A message that is not a status poll is
// attempted at most 6 times.
Attempts int64 `json:"attempts"`
// The kind of failure the last attempt hit, `""` when none did: for example
// `email undeliverable`, `trp identity endpoint unreachable` or `trp transfer
// inquiry delivery failed`. It never carries the counterparty's own answer,
// which stays on the transfer's `timeline`. When GTR answers with an error, its
// own status code and message are included. Response bodies are never included.
LastError string `json:"last_error"`
// When the next attempt runs while the message is `QUEUED` or `RETRYING`.
NextAttemptAt time.Time `json:"next_attempt_at"`
// When the other side took the message.
DeliveredAt time.Time `json:"delivered_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDelivery: Where the latest message the transfer owes the other side stands. Didit contacts the counterparty after the request that created or changed the transfer has returned, so this object says whether that message got through: queued, being sent, waiting to be retried after an error, delivered, or failed. A failure the network may still recover from (no answer in time, a failed connection, HTTP `408`, `429` or `5xx`) is tried again after 30 seconds, 2 minutes, 10 minutes, 30 minutes and 1 hour. When a first message (`kind: SEND`) fails for good, because the network refused it or the sixth attempt failed too, the transfer moves to `COUNTERPARTY_VASP_NOT_REACHABLE` with `last_error` in its `timeline`; any other message that fails for good is noted in the `timeline`. The transfer's `status` stays the source of truth for the exchange itself.
func (*TravelRuleDelivery) UnmarshalJSON ¶
func (r *TravelRuleDelivery) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDelivery leniently.
type TravelRuleDeliveryKind ¶
type TravelRuleDeliveryKind string
TravelRuleDeliveryKind: What the message carries. `SEND`: the transfer's first message to the counterparty (outbound; the rail is chosen when it is sent). `ANSWER`: your accept or decline, owed to the network that asked (inbound). `TXID`: the on-chain transaction hash, after you finish the transfer. `CANCEL`: the cancellation, after you cancel it. `POLL`: a status query to a network that offers one, repeated every 5 minutes while the transfer waits on the counterparty.
TravelRuleDeliveryKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDeliveryKindSend TravelRuleDeliveryKind = "SEND" TravelRuleDeliveryKindAnswer TravelRuleDeliveryKind = "ANSWER" TravelRuleDeliveryKindTxid TravelRuleDeliveryKind = "TXID" TravelRuleDeliveryKindCancel TravelRuleDeliveryKind = "CANCEL" TravelRuleDeliveryKindPoll TravelRuleDeliveryKind = "POLL" )
Known values of TravelRuleDeliveryKind.
type TravelRuleDeliveryRail ¶
type TravelRuleDeliveryRail string
TravelRuleDeliveryRail: The rail that carries the message. Empty until Didit has chosen one for a first message.
TravelRuleDeliveryRail is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDeliveryRailInternal TravelRuleDeliveryRail = "INTERNAL" TravelRuleDeliveryRailTrp TravelRuleDeliveryRail = "TRP" TravelRuleDeliveryRailGtr TravelRuleDeliveryRail = "GTR" TravelRuleDeliveryRailTrust TravelRuleDeliveryRail = "TRUST" TravelRuleDeliveryRailVerifyvasp TravelRuleDeliveryRail = "VERIFYVASP" TravelRuleDeliveryRailSygna TravelRuleDeliveryRail = "SYGNA" TravelRuleDeliveryRailEmail TravelRuleDeliveryRail = "EMAIL" TravelRuleDeliveryRailEmpty TravelRuleDeliveryRail = "" )
Known values of TravelRuleDeliveryRail.
type TravelRuleDeliveryStatus ¶
type TravelRuleDeliveryStatus string
TravelRuleDeliveryStatus: `QUEUED`: waiting to be sent. `SENDING`: an attempt is running. `RETRYING`: an attempt failed and the next one runs at `next_attempt_at`. `DELIVERED`: the other side took the message. `FAILED`: the other side refused it, or the last attempt failed.
TravelRuleDeliveryStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDeliveryStatusQueued TravelRuleDeliveryStatus = "QUEUED" TravelRuleDeliveryStatusSending TravelRuleDeliveryStatus = "SENDING" TravelRuleDeliveryStatusRetrying TravelRuleDeliveryStatus = "RETRYING" TravelRuleDeliveryStatusDelivered TravelRuleDeliveryStatus = "DELIVERED" TravelRuleDeliveryStatusFailed TravelRuleDeliveryStatus = "FAILED" )
Known values of TravelRuleDeliveryStatus.
type TravelRuleDiscoveryStep ¶
type TravelRuleDiscoveryStep struct {
// `internal_address_book`: another Didit customer that proved control of the
// destination wallet. `wallet_attribution`: the wallet's blockchain analytics
// attribution. `network_lookup`: a network that can say which VASP holds the
// address. `customer_hint`: the VASP name, LEI or jurisdiction you sent in
// `beneficiary_data`. `end_user`: the counterparty the end user (or you)
// picked, or the request to pick one.
Step TravelRuleDiscoveryStepStep `json:"step"`
// `match`: the step named a counterparty. `miss`: it ran and found none.
// `skipped`: it could not run, and `reason` says why.
Outcome TravelRuleDiscoveryStepOutcome `json:"outcome"`
// Machine-readable reason, `""` on a match: `no_proven_internal_wallet`,
// `attribution_disabled`, `already_attributed`, `no_attributed_entity`,
// `directory_match_no_route`, `gtr_address_lookup_runs_on_dispatch`,
// `no_membership`, `network_switched_off`, `no_network_address_lookup`,
// `no_directory_match`, `awaiting_end_user` or
// `picked_member_without_proven_wallet`.
Reason string `json:"reason"`
// The directory VASP the step named, when it named one.
VASP string `json:"vasp"`
// The rail that reaches that counterparty, when the step found one.
Rail string `json:"rail"`
At time.Time `json:"at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleDiscoveryStep: One step of the counterparty discovery Didit ran for an outbound transfer, in the order it ran them. The first step that names a VASP with a route ends the chain.
func (*TravelRuleDiscoveryStep) UnmarshalJSON ¶
func (r *TravelRuleDiscoveryStep) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleDiscoveryStep leniently.
type TravelRuleDiscoveryStepOutcome ¶
type TravelRuleDiscoveryStepOutcome string
TravelRuleDiscoveryStepOutcome: `match`: the step named a counterparty. `miss`: it ran and found none. `skipped`: it could not run, and `reason` says why.
TravelRuleDiscoveryStepOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDiscoveryStepOutcomeMatch TravelRuleDiscoveryStepOutcome = "match" TravelRuleDiscoveryStepOutcomeMiss TravelRuleDiscoveryStepOutcome = "miss" TravelRuleDiscoveryStepOutcomeSkipped TravelRuleDiscoveryStepOutcome = "skipped" )
Known values of TravelRuleDiscoveryStepOutcome.
type TravelRuleDiscoveryStepStep ¶
type TravelRuleDiscoveryStepStep string
TravelRuleDiscoveryStepStep: `internal_address_book`: another Didit customer that proved control of the destination wallet. `wallet_attribution`: the wallet's blockchain analytics attribution. `network_lookup`: a network that can say which VASP holds the address. `customer_hint`: the VASP name, LEI or jurisdiction you sent in `beneficiary_data`. `end_user`: the counterparty the end user (or you) picked, or the request to pick one.
TravelRuleDiscoveryStepStep is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleDiscoveryStepStepInternalAddressBook TravelRuleDiscoveryStepStep = "internal_address_book" TravelRuleDiscoveryStepStepWalletAttribution TravelRuleDiscoveryStepStep = "wallet_attribution" TravelRuleDiscoveryStepStepNetworkLookup TravelRuleDiscoveryStepStep = "network_lookup" TravelRuleDiscoveryStepStepCustomerHint TravelRuleDiscoveryStepStep = "customer_hint" TravelRuleDiscoveryStepStepEndUser TravelRuleDiscoveryStepStep = "end_user" )
Known values of TravelRuleDiscoveryStepStep.
type TravelRuleInboundRequest ¶
type TravelRuleInboundRequest struct {
// Chain the deposit settled on, for example `ETH`. Stored lowercase and
// compared case-insensitively with your wallet address book entries, so use the
// same chain token there. Required.
Chain string `json:"chain"`
// On-chain transaction hash. Deduped together with wallet_address. Required.
Txid string `json:"txid"`
// The destination wallet you received the deposit on. An XRP X-address is split
// into its classic address and tag. Required.
WalletAddress string `json:"wallet_address"`
// Deposit amount as a decimal string, zero or greater, with up to 18 decimal
// places. Required.
Amount string `json:"amount"`
// Deposit asset, e.g. "USDC". Required.
Currency string `json:"currency"`
// Originator details from the sending VASP, if known, as a flat object such as
// `{"name": "..."}`. Didit reads name (or full_name), first_name, last_name and
// vendor_data from it.
OriginatorData Opt[map[string]any] `json:"originator_data"`
// Beneficiary details (your customer), as a flat object such as `{"name":
// "..."}`. Didit matches name against the holder_name of the matched address
// book entry, and sets wallet_address and chain from the request.
BeneficiaryData Opt[map[string]any] `json:"beneficiary_data"`
// Optional description of the sending VASP. It stays on this transfer only
// (`metadata.originating_vasp`, and the transfer's originator VASP in GET
// /v3/travel-rule/transfers/); it never creates, edits or links a shared VASP
// directory entry.
OriginatingVASP Opt[TravelRuleInboundRequestOriginatingVASP] `json:"originating_vasp"`
// Optional. The deposit's destination tag or memo on a memo network: on a
// shared deposit address it is what tells your customers apart, and the
// address-book entry for that memo is matched. XRP: a destination tag, a whole
// number from 0 to 4294967295 (a JSON number is accepted). XLM: a text memo of
// up to 28 bytes, a 64-bit id or a 32-byte hash in hex. EOS: up to 256 bytes.
// ATOM: up to 256 characters. HBAR: up to 100 bytes. Bitcoin, EVM, Solana,
// Tron, Litecoin, Bitcoin Cash, Dogecoin and Lightning wallets take no memo:
// one there is a `400`. Alias: `destinationTag` or `destination_tag`.
Memo Opt[string] `json:"memo"`
// Optional, UTXO chains only. The deposit transaction's inputs and outputs: the
// sender's wallet is the declared `originator_data.wallet_address`, else the
// largest input.
Utxo Opt[TravelRuleUtxo] `json:"utxo"`
}
TravelRuleInboundRequest is a request object.
func (TravelRuleInboundRequest) MarshalJSON ¶
func (r TravelRuleInboundRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleInboundRequestOriginatingVASP ¶
type TravelRuleInboundRequestOriginatingVASP struct {
Name Opt[string] `json:"name"`
// Optional. A valid 20-character ISO 17442 LEI, or empty.
Lei Opt[string] `json:"lei"`
// The sender's travel address, recorded on this transfer.
TravelAddress Opt[string] `json:"travel_address"`
}
TravelRuleInboundRequestOriginatingVASP: Optional description of the sending VASP. It stays on this transfer only (`metadata.originating_vasp`, and the transfer's originator VASP in GET /v3/travel-rule/transfers/); it never creates, edits or links a shared VASP directory entry.
func (TravelRuleInboundRequestOriginatingVASP) MarshalJSON ¶
func (r TravelRuleInboundRequestOriginatingVASP) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleInboundResponse ¶
type TravelRuleInboundResponse struct {
// Didit transaction UUID for the inbound deposit.
TransactionID string `json:"transaction_id"`
// txn_id of the inbound transaction: Didit-generated when Didit created the
// transaction, or your own when an unclaimed deposit was reused.
TxnID string `json:"txn_id"`
// true when this call registered the transfer (HTTP 201); false when a transfer
// for the same txid and wallet_address already existed (HTTP 200).
Created bool `json:"created"`
TravelRule TravelRuleTransferDetail `json:"travel_rule"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleInboundResponse is a response object.
func (*TravelRuleInboundResponse) UnmarshalJSON ¶
func (r *TravelRuleInboundResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleInboundResponse leniently.
type TravelRuleListVASPsParams ¶
type TravelRuleListVASPsParams struct {
// A name or alias fragment (case-insensitive), an exact LEI, or a domain
// (example.com or a URL on it). Didit network members match on their legal
// name, LEI or the domain of their compliance email.
Search Opt[string] `json:"-" query:"search"`
// Only directory entries a network's member directory currently lists.
Network Opt[TravelRuleListVASPsParamsNetwork] `json:"-" query:"network"`
// ISO 3166 alpha-2 or alpha-3 country code. 400 for anything else.
Jurisdiction Opt[string] `json:"-" query:"jurisdiction"`
// true: only VASPs your application has an available route to (Didit network
// members included). false: only directory entries it cannot reach today.
Reachable Opt[bool] `json:"-" query:"reachable"`
// Only directory entries, or only Didit network members.
Kind Opt[TravelRuleListVASPsParamsKind] `json:"-" query:"kind"`
// Only directory entries whose risk_level is this band. Didit network members,
// which are not scored, never match.
Risk Opt[TravelRuleListVASPsParamsRisk] `json:"-" query:"risk"`
// Only directory entries whose responsiveness.status is this value. Didit
// network members never match.
Responsiveness Opt[TravelRuleListVASPsParamsResponsiveness] `json:"-" query:"responsiveness"`
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
TravelRuleListVASPsParams holds the parameters of Client.TravelRule.ListVASPs.
func (TravelRuleListVASPsParams) MarshalJSON ¶
func (r TravelRuleListVASPsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleListVASPsParamsKind ¶
type TravelRuleListVASPsParamsKind string
TravelRuleListVASPsParamsKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleListVASPsParamsKindDirectory TravelRuleListVASPsParamsKind = "directory" TravelRuleListVASPsParamsKindDidit TravelRuleListVASPsParamsKind = "didit" )
Known values of TravelRuleListVASPsParamsKind.
type TravelRuleListVASPsParamsNetwork ¶
type TravelRuleListVASPsParamsNetwork string
TravelRuleListVASPsParamsNetwork is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleListVASPsParamsNetworkGtr TravelRuleListVASPsParamsNetwork = "GTR" TravelRuleListVASPsParamsNetworkTrust TravelRuleListVASPsParamsNetwork = "TRUST" TravelRuleListVASPsParamsNetworkVerifyvasp TravelRuleListVASPsParamsNetwork = "VERIFYVASP" TravelRuleListVASPsParamsNetworkSygna TravelRuleListVASPsParamsNetwork = "SYGNA" TravelRuleListVASPsParamsNetworkTrisa TravelRuleListVASPsParamsNetwork = "TRISA" )
Known values of TravelRuleListVASPsParamsNetwork.
type TravelRuleListVASPsParamsResponsiveness ¶
type TravelRuleListVASPsParamsResponsiveness string
TravelRuleListVASPsParamsResponsiveness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleListVASPsParamsResponsivenessResponsive TravelRuleListVASPsParamsResponsiveness = "RESPONSIVE" TravelRuleListVASPsParamsResponsivenessUnresponsive TravelRuleListVASPsParamsResponsiveness = "UNRESPONSIVE" TravelRuleListVASPsParamsResponsivenessUnknown TravelRuleListVASPsParamsResponsiveness = "UNKNOWN" )
Known values of TravelRuleListVASPsParamsResponsiveness.
type TravelRuleListVASPsParamsRisk ¶
type TravelRuleListVASPsParamsRisk string
TravelRuleListVASPsParamsRisk is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleListVASPsParamsRiskLow TravelRuleListVASPsParamsRisk = "LOW" TravelRuleListVASPsParamsRiskMedium TravelRuleListVASPsParamsRisk = "MEDIUM" TravelRuleListVASPsParamsRiskHigh TravelRuleListVASPsParamsRisk = "HIGH" )
Known values of TravelRuleListVASPsParamsRisk.
type TravelRuleMatchingRules ¶
type TravelRuleMatchingRules struct {
// Rules for a natural person.
Individual TravelRuleMatchingRulesIndividual `json:"individual"`
// Rules for a legal person.
Company TravelRuleMatchingRulesCompany `json:"company"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMatchingRules: How strictly each field of the counterparty's data is compared with what you hold, per entity type. A field you leave out keeps its default. `NONE` skips the comparison, `STRICT` needs exactly the same words, `CONTAINS` accepts one value whose words all appear in the other, `DEFAULT` is the standard subset match, and `FUZZY` accepts close spellings (and, for dates of birth, a swapped day and month).
func (*TravelRuleMatchingRules) UnmarshalJSON ¶
func (r *TravelRuleMatchingRules) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMatchingRules leniently.
type TravelRuleMatchingRulesCompany ¶
type TravelRuleMatchingRulesCompany struct {
// Default: follows `name_matching_strictness`.
Name TravelRuleMatchingRulesCompanyName `json:"name"`
// Default `NONE`.
Address TravelRuleMatchingRulesCompanyAddress `json:"address"`
// The wallet the exchange was routed by. Default `STRICT`.
Account TravelRuleMatchingRulesCompanyAccount `json:"account"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMatchingRulesCompany: Rules for a legal person.
func (*TravelRuleMatchingRulesCompany) UnmarshalJSON ¶
func (r *TravelRuleMatchingRulesCompany) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMatchingRulesCompany leniently.
type TravelRuleMatchingRulesCompanyAccount ¶
type TravelRuleMatchingRulesCompanyAccount string
TravelRuleMatchingRulesCompanyAccount: The wallet the exchange was routed by. Default `STRICT`.
TravelRuleMatchingRulesCompanyAccount is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesCompanyAccountNone TravelRuleMatchingRulesCompanyAccount = "NONE" TravelRuleMatchingRulesCompanyAccountStrict TravelRuleMatchingRulesCompanyAccount = "STRICT" TravelRuleMatchingRulesCompanyAccountContains TravelRuleMatchingRulesCompanyAccount = "CONTAINS" TravelRuleMatchingRulesCompanyAccountDefault TravelRuleMatchingRulesCompanyAccount = "DEFAULT" TravelRuleMatchingRulesCompanyAccountFuzzy TravelRuleMatchingRulesCompanyAccount = "FUZZY" )
Known values of TravelRuleMatchingRulesCompanyAccount.
type TravelRuleMatchingRulesCompanyAddress ¶
type TravelRuleMatchingRulesCompanyAddress string
TravelRuleMatchingRulesCompanyAddress: Default `NONE`.
TravelRuleMatchingRulesCompanyAddress is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesCompanyAddressNone TravelRuleMatchingRulesCompanyAddress = "NONE" TravelRuleMatchingRulesCompanyAddressStrict TravelRuleMatchingRulesCompanyAddress = "STRICT" TravelRuleMatchingRulesCompanyAddressContains TravelRuleMatchingRulesCompanyAddress = "CONTAINS" TravelRuleMatchingRulesCompanyAddressDefault TravelRuleMatchingRulesCompanyAddress = "DEFAULT" TravelRuleMatchingRulesCompanyAddressFuzzy TravelRuleMatchingRulesCompanyAddress = "FUZZY" )
Known values of TravelRuleMatchingRulesCompanyAddress.
type TravelRuleMatchingRulesCompanyName ¶
type TravelRuleMatchingRulesCompanyName string
TravelRuleMatchingRulesCompanyName: Default: follows `name_matching_strictness`.
TravelRuleMatchingRulesCompanyName is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesCompanyNameNone TravelRuleMatchingRulesCompanyName = "NONE" TravelRuleMatchingRulesCompanyNameStrict TravelRuleMatchingRulesCompanyName = "STRICT" TravelRuleMatchingRulesCompanyNameContains TravelRuleMatchingRulesCompanyName = "CONTAINS" TravelRuleMatchingRulesCompanyNameDefault TravelRuleMatchingRulesCompanyName = "DEFAULT" TravelRuleMatchingRulesCompanyNameFuzzy TravelRuleMatchingRulesCompanyName = "FUZZY" )
Known values of TravelRuleMatchingRulesCompanyName.
type TravelRuleMatchingRulesIndividual ¶
type TravelRuleMatchingRulesIndividual struct {
// Default: follows `name_matching_strictness`.
Name TravelRuleMatchingRulesIndividualName `json:"name"`
// Default `NONE`.
DateOfBirth TravelRuleMatchingRulesIndividualDateOfBirth `json:"date_of_birth"`
// Default `NONE`.
Address TravelRuleMatchingRulesIndividualAddress `json:"address"`
// The wallet the exchange was routed by. Default `STRICT`.
Account TravelRuleMatchingRulesIndividualAccount `json:"account"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMatchingRulesIndividual: Rules for a natural person.
func (*TravelRuleMatchingRulesIndividual) UnmarshalJSON ¶
func (r *TravelRuleMatchingRulesIndividual) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMatchingRulesIndividual leniently.
type TravelRuleMatchingRulesIndividualAccount ¶
type TravelRuleMatchingRulesIndividualAccount string
TravelRuleMatchingRulesIndividualAccount: The wallet the exchange was routed by. Default `STRICT`.
TravelRuleMatchingRulesIndividualAccount is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesIndividualAccountNone TravelRuleMatchingRulesIndividualAccount = "NONE" TravelRuleMatchingRulesIndividualAccountStrict TravelRuleMatchingRulesIndividualAccount = "STRICT" TravelRuleMatchingRulesIndividualAccountContains TravelRuleMatchingRulesIndividualAccount = "CONTAINS" TravelRuleMatchingRulesIndividualAccountDefault TravelRuleMatchingRulesIndividualAccount = "DEFAULT" TravelRuleMatchingRulesIndividualAccountFuzzy TravelRuleMatchingRulesIndividualAccount = "FUZZY" )
Known values of TravelRuleMatchingRulesIndividualAccount.
type TravelRuleMatchingRulesIndividualAddress ¶
type TravelRuleMatchingRulesIndividualAddress string
TravelRuleMatchingRulesIndividualAddress: Default `NONE`.
TravelRuleMatchingRulesIndividualAddress is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesIndividualAddressNone TravelRuleMatchingRulesIndividualAddress = "NONE" TravelRuleMatchingRulesIndividualAddressStrict TravelRuleMatchingRulesIndividualAddress = "STRICT" TravelRuleMatchingRulesIndividualAddressContains TravelRuleMatchingRulesIndividualAddress = "CONTAINS" TravelRuleMatchingRulesIndividualAddressDefault TravelRuleMatchingRulesIndividualAddress = "DEFAULT" TravelRuleMatchingRulesIndividualAddressFuzzy TravelRuleMatchingRulesIndividualAddress = "FUZZY" )
Known values of TravelRuleMatchingRulesIndividualAddress.
type TravelRuleMatchingRulesIndividualDateOfBirth ¶
type TravelRuleMatchingRulesIndividualDateOfBirth string
TravelRuleMatchingRulesIndividualDateOfBirth: Default `NONE`.
TravelRuleMatchingRulesIndividualDateOfBirth is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesIndividualDateOfBirthNone TravelRuleMatchingRulesIndividualDateOfBirth = "NONE" TravelRuleMatchingRulesIndividualDateOfBirthStrict TravelRuleMatchingRulesIndividualDateOfBirth = "STRICT" TravelRuleMatchingRulesIndividualDateOfBirthContains TravelRuleMatchingRulesIndividualDateOfBirth = "CONTAINS" TravelRuleMatchingRulesIndividualDateOfBirthDefault TravelRuleMatchingRulesIndividualDateOfBirth = "DEFAULT" TravelRuleMatchingRulesIndividualDateOfBirthFuzzy TravelRuleMatchingRulesIndividualDateOfBirth = "FUZZY" )
Known values of TravelRuleMatchingRulesIndividualDateOfBirth.
type TravelRuleMatchingRulesIndividualName ¶
type TravelRuleMatchingRulesIndividualName string
TravelRuleMatchingRulesIndividualName: Default: follows `name_matching_strictness`.
TravelRuleMatchingRulesIndividualName is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMatchingRulesIndividualNameNone TravelRuleMatchingRulesIndividualName = "NONE" TravelRuleMatchingRulesIndividualNameStrict TravelRuleMatchingRulesIndividualName = "STRICT" TravelRuleMatchingRulesIndividualNameContains TravelRuleMatchingRulesIndividualName = "CONTAINS" TravelRuleMatchingRulesIndividualNameDefault TravelRuleMatchingRulesIndividualName = "DEFAULT" TravelRuleMatchingRulesIndividualNameFuzzy TravelRuleMatchingRulesIndividualName = "FUZZY" )
Known values of TravelRuleMatchingRulesIndividualName.
type TravelRuleMatchingRulesParam ¶
type TravelRuleMatchingRulesParam struct {
// Rules for a natural person.
Individual Opt[TravelRuleMatchingRulesParamIndividual] `json:"individual"`
// Rules for a legal person.
Company Opt[TravelRuleMatchingRulesParamCompany] `json:"company"`
}
TravelRuleMatchingRulesParam: How strictly each field of the counterparty's data is compared with what you hold, per entity type. A field you leave out keeps its default. `NONE` skips the comparison, `STRICT` needs exactly the same words, `CONTAINS` accepts one value whose words all appear in the other, `DEFAULT` is the standard subset match, and `FUZZY` accepts close spellings (and, for dates of birth, a swapped day and month).
func (TravelRuleMatchingRulesParam) MarshalJSON ¶
func (r TravelRuleMatchingRulesParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleMatchingRulesParamCompany ¶
type TravelRuleMatchingRulesParamCompany struct {
// Default: follows `name_matching_strictness`.
Name Opt[TravelRuleMatchingRulesCompanyName] `json:"name"`
// Default `NONE`.
Address Opt[TravelRuleMatchingRulesCompanyAddress] `json:"address"`
// The wallet the exchange was routed by. Default `STRICT`.
Account Opt[TravelRuleMatchingRulesCompanyAccount] `json:"account"`
}
TravelRuleMatchingRulesParamCompany: Rules for a legal person.
func (TravelRuleMatchingRulesParamCompany) MarshalJSON ¶
func (r TravelRuleMatchingRulesParamCompany) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleMatchingRulesParamIndividual ¶
type TravelRuleMatchingRulesParamIndividual struct {
// Default: follows `name_matching_strictness`.
Name Opt[TravelRuleMatchingRulesIndividualName] `json:"name"`
// Default `NONE`.
DateOfBirth Opt[TravelRuleMatchingRulesIndividualDateOfBirth] `json:"date_of_birth"`
// Default `NONE`.
Address Opt[TravelRuleMatchingRulesIndividualAddress] `json:"address"`
// The wallet the exchange was routed by. Default `STRICT`.
Account Opt[TravelRuleMatchingRulesIndividualAccount] `json:"account"`
}
TravelRuleMatchingRulesParamIndividual: Rules for a natural person.
func (TravelRuleMatchingRulesParamIndividual) MarshalJSON ¶
func (r TravelRuleMatchingRulesParamIndividual) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleMessage ¶
type TravelRuleMessage struct {
ID string `json:"id"`
Kind TravelRuleMessageKind `json:"kind"`
// `OUTBOUND` is what the reader's own side sent. In the pickup portal the
// direction is from the counterparty's side.
Direction TravelRuleMessageDirection `json:"direction"`
// Who wrote it on its own side: a console user's email or an API key label, or
// the other VASP's name.
Author string `json:"author"`
Body string `json:"body"`
// What a DOCUMENT_REQUEST asks for, in the requester's words.
RequestedDocuments []string `json:"requested_documents"`
ReplyTo string `json:"reply_to"`
// Set on a DOCUMENT_REQUEST once a reply to it carries a document.
FulfilledAt time.Time `json:"fulfilled_at"`
Attachment TravelRuleMessageAttachment `json:"attachment"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMessage is a response object.
func (*TravelRuleMessage) UnmarshalJSON ¶
func (r *TravelRuleMessage) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMessage leniently.
type TravelRuleMessageAttachment ¶
type TravelRuleMessageAttachment struct {
UUID string `json:"uuid"`
Label string `json:"label"`
Note string `json:"note"`
// Who attached it. In the pickup portal, a file you sent shows your VASP name,
// never the person or API key behind it.
UploadedBy string `json:"uploaded_by"`
CreatedAt time.Time `json:"created_at"`
Files []TravelRuleMessageAttachmentFiles `json:"files"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMessageAttachment: The document attached to a message, stored like any other transaction document.
func (*TravelRuleMessageAttachment) UnmarshalJSON ¶
func (r *TravelRuleMessageAttachment) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMessageAttachment leniently.
type TravelRuleMessageAttachmentFiles ¶
type TravelRuleMessageAttachmentFiles struct {
UUID string `json:"uuid"`
// Time-limited download URL.
FileURL string `json:"file_url"`
OriginalFilename string `json:"original_filename"`
FileSize int64 `json:"file_size"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleMessageAttachmentFiles is a response object.
func (*TravelRuleMessageAttachmentFiles) UnmarshalJSON ¶
func (r *TravelRuleMessageAttachmentFiles) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleMessageAttachmentFiles leniently.
type TravelRuleMessageCreateRequest ¶
type TravelRuleMessageCreateRequest struct {
Kind Opt[TravelRuleMessageCreateRequestKind] `json:"kind"`
// Required for a MESSAGE unless a file is attached.
Body Opt[string] `json:"body"`
// Required (at least one) for a DOCUMENT_REQUEST, and only allowed there.
RequestedDocuments Opt[[]string] `json:"requested_documents"`
// A message of the same transfer. A reply that carries a document fulfils the
// document request it answers.
ReplyTo Opt[string] `json:"reply_to"`
// Multipart only. Up to 5 files of 10 MB each.
Files Opt[[]File] `json:"files"`
}
TravelRuleMessageCreateRequest: Send as JSON, or as multipart/form-data with the attachments in `files`.
func (TravelRuleMessageCreateRequest) MarshalJSON ¶
func (r TravelRuleMessageCreateRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleMessageCreateRequestKind ¶
type TravelRuleMessageCreateRequestKind string
TravelRuleMessageCreateRequestKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMessageCreateRequestKindMessage TravelRuleMessageCreateRequestKind = "MESSAGE" TravelRuleMessageCreateRequestKindDocumentRequest TravelRuleMessageCreateRequestKind = "DOCUMENT_REQUEST" )
Known values of TravelRuleMessageCreateRequestKind.
type TravelRuleMessageDirection ¶
type TravelRuleMessageDirection string
TravelRuleMessageDirection: `OUTBOUND` is what the reader's own side sent. In the pickup portal the direction is from the counterparty's side.
TravelRuleMessageDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMessageDirectionInbound TravelRuleMessageDirection = "INBOUND" TravelRuleMessageDirectionOutbound TravelRuleMessageDirection = "OUTBOUND" )
Known values of TravelRuleMessageDirection.
type TravelRuleMessageKind ¶
type TravelRuleMessageKind string
TravelRuleMessageKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleMessageKindMessage TravelRuleMessageKind = "MESSAGE" TravelRuleMessageKindDocumentRequest TravelRuleMessageKind = "DOCUMENT_REQUEST" )
Known values of TravelRuleMessageKind.
type TravelRuleNameMatch ¶
type TravelRuleNameMatch struct {
// Similarity of the two full names, 0 to 100. 0 when either name is blank.
Score int64 `json:"score"`
// Whether the names satisfy `strictness`. The transfer's outcome follows
// `data_match`, which compares every field, so a transfer can be
// COUNTERPARTY_MISMATCHED_DATA while this is true.
Matched bool `json:"matched"`
// How `matched` was decided: none (`NONE`), exact_token (`STRICT`),
// token_subset (`DEFAULT`), token_containment (`CONTAINS`) or sequence_ratio
// (`FUZZY`).
Method TravelRuleNameMatchMethod `json:"method"`
Strictness TravelRuleNameMatchStrictness `json:"strictness"`
// wallet_holder: the holder recorded for the wallet. counterparty_vasp: the
// name the counterparty answered on the email response page, or the Didit Test
// VASP's answer in sandbox.
ComparedWith TravelRuleNameMatchComparedWith `json:"compared_with"`
// The name on the transfer.
TransferName string `json:"transfer_name"`
// The name it was compared with.
ComparedName string `json:"compared_name"`
// Words of `transfer_name` found in `compared_name`.
MatchedNames []string `json:"matched_names"`
// Words of `transfer_name` missing from `compared_name`, then words of
// `compared_name` missing from `transfer_name`.
MismatchedNames []string `json:"mismatched_names"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleNameMatch: The name comparison that decided the transfer, or null until one ran. While the parties are masked, and on the other customer's copy of an INTERNAL exchange, `transfer_name`, `compared_name`, `matched_names` and `mismatched_names` are hidden. `score` and `matched` can disagree: `matched` follows the strictness, `score` is the similarity of the two full names.
func (*TravelRuleNameMatch) UnmarshalJSON ¶
func (r *TravelRuleNameMatch) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleNameMatch leniently.
type TravelRuleNameMatchComparedWith ¶
type TravelRuleNameMatchComparedWith string
TravelRuleNameMatchComparedWith: wallet_holder: the holder recorded for the wallet. counterparty_vasp: the name the counterparty answered on the email response page, or the Didit Test VASP's answer in sandbox.
TravelRuleNameMatchComparedWith is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleNameMatchComparedWithWalletHolder TravelRuleNameMatchComparedWith = "wallet_holder" TravelRuleNameMatchComparedWithCounterpartyVASP TravelRuleNameMatchComparedWith = "counterparty_vasp" )
Known values of TravelRuleNameMatchComparedWith.
type TravelRuleNameMatchMethod ¶
type TravelRuleNameMatchMethod string
TravelRuleNameMatchMethod: How `matched` was decided: none (`NONE`), exact_token (`STRICT`), token_subset (`DEFAULT`), token_containment (`CONTAINS`) or sequence_ratio (`FUZZY`).
TravelRuleNameMatchMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleNameMatchMethodNone TravelRuleNameMatchMethod = "none" TravelRuleNameMatchMethodExactToken TravelRuleNameMatchMethod = "exact_token" TravelRuleNameMatchMethodTokenSubset TravelRuleNameMatchMethod = "token_subset" TravelRuleNameMatchMethodTokenContainment TravelRuleNameMatchMethod = "token_containment" TravelRuleNameMatchMethodSequenceRatio TravelRuleNameMatchMethod = "sequence_ratio" )
Known values of TravelRuleNameMatchMethod.
type TravelRuleNameMatchStrictness ¶
type TravelRuleNameMatchStrictness string
TravelRuleNameMatchStrictness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleNameMatchStrictnessNone TravelRuleNameMatchStrictness = "NONE" TravelRuleNameMatchStrictnessStrict TravelRuleNameMatchStrictness = "STRICT" TravelRuleNameMatchStrictnessContains TravelRuleNameMatchStrictness = "CONTAINS" TravelRuleNameMatchStrictnessDefault TravelRuleNameMatchStrictness = "DEFAULT" TravelRuleNameMatchStrictnessFuzzy TravelRuleNameMatchStrictness = "FUZZY" )
Known values of TravelRuleNameMatchStrictness.
type TravelRuleNextAction ¶
type TravelRuleNextAction struct {
// `select_counterparty_vasp`: the end user picks the destination VASP in the
// wallet-ownership widget. `declare_self_hosted`: the end user declares the
// wallet self-hosted in the widget. `add_vasp_hint`: tell Didit who the
// counterparty is, with a VASP name, LEI or travel address (for example a
// `travel_address` on the destination wallet's address-book entry), then
// resend. `update_compliance_email` and `resend` are `action` values of `PATCH
// /v3/transactions/{transaction_id}/travel-rule/`: give the counterparty's
// compliance email again, and re-run routing.
Action TravelRuleNextActionAction `json:"action"`
// The wallet-ownership widget link, on `select_counterparty_vasp` and
// `declare_self_hosted` while the transfer has an open widget session.
URL string `json:"url"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleNextAction: One thing that moves a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE` transfer on. See [Why a transfer is stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).
func (*TravelRuleNextAction) UnmarshalJSON ¶
func (r *TravelRuleNextAction) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleNextAction leniently.
type TravelRuleNextActionAction ¶
type TravelRuleNextActionAction string
TravelRuleNextActionAction: `select_counterparty_vasp`: the end user picks the destination VASP in the wallet-ownership widget. `declare_self_hosted`: the end user declares the wallet self-hosted in the widget. `add_vasp_hint`: tell Didit who the counterparty is, with a VASP name, LEI or travel address (for example a `travel_address` on the destination wallet's address-book entry), then resend. `update_compliance_email` and `resend` are `action` values of `PATCH /v3/transactions/{transaction_id}/travel-rule/`: give the counterparty's compliance email again, and re-run routing.
TravelRuleNextActionAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleNextActionActionSelectCounterpartyVASP TravelRuleNextActionAction = "select_counterparty_vasp" TravelRuleNextActionActionDeclareSelfHosted TravelRuleNextActionAction = "declare_self_hosted" TravelRuleNextActionActionAddVASPHint TravelRuleNextActionAction = "add_vasp_hint" TravelRuleNextActionActionUpdateComplianceEmail TravelRuleNextActionAction = "update_compliance_email" TravelRuleNextActionActionResend TravelRuleNextActionAction = "resend" )
Known values of TravelRuleNextActionAction.
type TravelRuleOwnershipConfirmRequest ¶
type TravelRuleOwnershipConfirmRequest struct {
// true to confirm ownership, false to deny it. Required.
Confirmed bool `json:"confirmed"`
// Inbound TRP transfers: the payment address Didit returns to the originating
// VASP when you approve. Defaults to the matched address book entry's address,
// then beneficiary_data.wallet_address. On a declared self-hosted wallet
// transfer that names no counterparty wallet, the wallet whose ownership you
// verified; without it the request is rejected with 400. Ignored for other
// transfers.
WalletAddress Opt[string] `json:"wallet_address"`
}
TravelRuleOwnershipConfirmRequest is a request object.
func (TravelRuleOwnershipConfirmRequest) MarshalJSON ¶
func (r TravelRuleOwnershipConfirmRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleSendComplianceEmailConfirmationResponse ¶
type TravelRuleSendComplianceEmailConfirmationResponse struct {
SentTo string `json:"sent_to"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSendComplianceEmailConfirmationResponse is a response object.
func (*TravelRuleSendComplianceEmailConfirmationResponse) UnmarshalJSON ¶
func (r *TravelRuleSendComplianceEmailConfirmationResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSendComplianceEmailConfirmationResponse leniently.
type TravelRuleService ¶
type TravelRuleService struct {
CounterpartyContacts *TravelRuleCounterpartyContactsService
Transfers *TravelRuleTransfersService
WalletAddresses *TravelRuleWalletAddressesService
Workspace *TravelRuleWorkspaceService
// contains filtered or unexported fields
}
TravelRuleService holds the travel_rule operations. Use it through Client.TravelRule.
func (*TravelRuleService) ClearVASPDecision ¶
func (r *TravelRuleService) ClearVASPDecision(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyDecisionResponse, error)
ClearVASPDecision: Clear your decision on a VASP.
Clear your application's own decision on a counterparty. The response shows the decision that applies afterwards: null, or for an entity of a brand the brand's decision, which the entity follows again.
DELETE /v3/travel-rule/vasps/{vasp_id}/decision/
func (*TravelRuleService) CreateWidgetSession ¶
func (r *TravelRuleService) CreateWidgetSession(ctx context.Context, params TravelRuleWidgetSessionCreate, opts ...option.RequestOption) (*TravelRuleWidgetSessionResponse, error)
CreateWidgetSession: Mint a wallet-ownership widget session.
Mint a hosted wallet-ownership widget URL/token. Send the customer to the returned url to prove control of a wallet (message signing, Satoshi test, screenshot, or self-declaration). The widget is web-only in this release - open the url in the system browser or a custom tab, never inside a mobile SDK webview.
POST /v3/travel-rule/widget-session/
func (*TravelRuleService) ListVASPQuestionnaires ¶
func (r *TravelRuleService) ListVASPQuestionnaires(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyQuestionnaireList, error)
ListVASPQuestionnaires: List due-diligence questionnaires with a VASP.
Every due-diligence questionnaire your application sent the counterparty, newest first, with its status and, once answered, the answers. Private to your application.
GET /v3/travel-rule/vasps/{vasp_id}/questionnaires/
func (*TravelRuleService) ListVASPs ¶
func (r *TravelRuleService) ListVASPs(ctx context.Context, params TravelRuleListVASPsParams, opts ...option.RequestOption) (*Page[VASPDirectoryEntry], error)
ListVASPs: Search the VASP directory.
Paginated, name-sorted search of the VASP directory: the shared directory entries, which Didit builds from the ESMA interim MiCA register, the public TRISA directory, the global LEI register and its own curation, plus the members of the Didit network. Each row carries the routes your application has to it today. Your own application's profile is never listed. Rows also carry the shared due-diligence assessment and your application's own decision, entity screening and questionnaires.
It returns one page; ListVASPsAutoPaging iterates over every item of every page.
GET /v3/travel-rule/vasps/
func (*TravelRuleService) ListVASPsAutoPaging ¶
func (r *TravelRuleService) ListVASPsAutoPaging(ctx context.Context, params TravelRuleListVASPsParams, opts ...option.RequestOption) *PageIterator[VASPDirectoryEntry]
ListVASPsAutoPaging iterates over every item of every page of ListVASPs, fetching pages as needed.
func (*TravelRuleService) RegisterInbound ¶
func (r *TravelRuleService) RegisterInbound(ctx context.Context, params TravelRuleInboundRequest, opts ...option.RequestOption) (*TravelRuleInboundResponse, error)
RegisterInbound: Register an after-deposit (sunrise) inbound transfer.
Register Travel Rule data for a crypto deposit that already settled on-chain before any exchange took place. Creates an inbound travelRule transaction (or reuses an unclaimed deposit) and resolves the transfer against your wallet address book. For a newly created transaction, Didit sends transaction.created first and the travel_rule.status.updated webhooks after it.
POST /v3/travel-rule/inbound/
func (*TravelRuleService) RetrieveSettings ¶
func (r *TravelRuleService) RetrieveSettings(ctx context.Context, opts ...option.RequestOption) (*TravelRuleSettingsDetail, error)
RetrieveSettings: Get Travel Rule settings.
Read the application's Travel Rule settings and VASP profile. Auto-creates a default (disabled) settings row and an empty profile on first read.
GET /v3/travel-rule/settings/
func (*TravelRuleService) RetrieveVASP ¶
func (r *TravelRuleService) RetrieveVASP(ctx context.Context, vaspID string, opts ...option.RequestOption) (*VASPDirectoryEntry, error)
RetrieveVASP: Get a VASP directory entry.
One directory entry or Didit network member by the id the search returned, with the same fields and the routes your application has to it.
GET /v3/travel-rule/vasps/{vasp_id}/
func (*TravelRuleService) RetrieveVASPDecision ¶
func (r *TravelRuleService) RetrieveVASPDecision(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyDecisionResponse, error)
RetrieveVASPDecision: Get your decision on a VASP.
Your application's decision on a counterparty (a directory entry or a Didit network member): approved, restricted or blocked. An entity of a brand with no decision of its own follows the brand's decision, named in inherited_from. Private to your application.
GET /v3/travel-rule/vasps/{vasp_id}/decision/
func (*TravelRuleService) RetrieveVASPScreening ¶
func (r *TravelRuleService) RetrieveVASPScreening(ctx context.Context, vaspID string, opts ...option.RequestOption) (*TravelRuleCounterpartyScreeningStatus, error)
RetrieveVASPScreening: Get a VASP's entity screening.
Whether counterparty screening is on for your application, what one screening costs your organization, how long a result stays fresh, and your latest sanctions and adverse-media screening of the counterparty. Reading it is free.
GET /v3/travel-rule/vasps/{vasp_id}/screening/
func (*TravelRuleService) ScreenVASP ¶
func (r *TravelRuleService) ScreenVASP(ctx context.Context, vaspID string, params TravelRuleCounterpartyScreeningRequest, opts ...option.RequestOption) (*TravelRuleCounterpartyScreeningResult, error)
ScreenVASP: Screen a VASP.
Screen the counterparty entity against sanctions and adverse media for your application. Opt-in: counterparty_screening_enabled must be on in your Travel Rule settings. Each new screening is billed at your organization's Company AML Screening price; a screening younger than 30 days is returned instead (200, not billed) unless you send refresh: true. One screening of a counterparty runs at a time per application. The result is private to your application. Sandbox applications are never screened.
POST /v3/travel-rule/vasps/{vasp_id}/screening/
func (*TravelRuleService) SendComplianceEmailConfirmation ¶
func (r *TravelRuleService) SendComplianceEmailConfirmation(ctx context.Context, opts ...option.RequestOption) (*TravelRuleSendComplianceEmailConfirmationResponse, error)
SendComplianceEmailConfirmation: Send the compliance email confirmation.
Emails a single-use confirmation link to your VASP profile's compliance_email. Opening the link and pressing its confirm button confirms the address, which the Didit network needs before it lists your profile. A new request replaces the previous link; the link stops working when the compliance email changes. One email per minute per address.
POST /v3/travel-rule/settings/compliance-email/confirmation/
func (*TravelRuleService) SendVASPQuestionnaire ¶
func (r *TravelRuleService) SendVASPQuestionnaire(ctx context.Context, vaspID string, params TravelRuleCounterpartyQuestionnaireRequest, opts ...option.RequestOption) (*TravelRuleCounterpartyQuestionnaire, error)
SendVASPQuestionnaire: Send a due-diligence questionnaire to a VASP.
Email Didit's standard due-diligence questionnaire to a compliance address on record for the counterparty, with a single-use answer link. The counterparty has 30 days to answer every question; the answers stay current for 365 days. A new send replaces your earlier unanswered questionnaire to the same counterparty, whose link stops working. One email per minute per address.
POST /v3/travel-rule/vasps/{vasp_id}/questionnaires/
func (*TravelRuleService) UpdateSettings ¶
func (r *TravelRuleService) UpdateSettings(ctx context.Context, params TravelRuleSettingsUpdate, opts ...option.RequestOption) (*TravelRuleSettingsDetail, error)
UpdateSettings: Update Travel Rule settings.
Upsert the application's Travel Rule settings and VASP profile. Partial update - only send the fields you want to change. Setting `is_enabled: true` requires a non-blank `legal_name` (already stored or included in the same request), otherwise returns 400.
PUT /v3/travel-rule/settings/
func (*TravelRuleService) UpdateVASPDecision ¶
func (r *TravelRuleService) UpdateVASPDecision(ctx context.Context, vaspID string, params TravelRuleCounterpartyDecisionRequest, opts ...option.RequestOption) (*TravelRuleCounterpartyDecisionResponse, error)
UpdateVASPDecision: Set your decision on a VASP.
Make or change your application's decision on a counterparty: APPROVED, RESTRICTED or BLOCKED, with an optional reason. It never changes the shared directory entry and acts only through your transaction rules (counterparty_dd_status). A decision on a brand also covers each of its entities that has no decision of its own.
PUT /v3/travel-rule/vasps/{vasp_id}/decision/
type TravelRuleSettingsDetail ¶
type TravelRuleSettingsDetail struct {
// Whether the managed Travel Rule negotiation flow is active for outbound
// `travelRule` transactions on this application.
IsEnabled bool `json:"is_enabled"`
// Your VASP's operating jurisdiction code. Default `"EU"`. Didit maps it to the
// regime it stamps on your Travel Rule transactions as `travel_rule_regime`
// (for example `EU` or an EU member code becomes `eu`), which transaction rules
// can key on. Other Didit customers see it as your jurisdiction in the VASP
// directory once the Didit network lists your profile.
Jurisdiction string `json:"jurisdiction"`
// How strictly beneficiary names must match before a transfer can reach
// COMPLETED. `CONTAINS` accepts one name whose words all appear in the other.
NameMatchingStrictness TravelRuleSettingsDetailNameMatchingStrictness `json:"name_matching_strictness"`
// Hours an AWAITING_COUNTERPARTY transfer may remain unconfirmed before the
// periodic sweeper expires it. Default 48.
ConfirmationTimeoutHours int64 `json:"confirmation_timeout_hours"`
// What happens to the underlying transaction when a transfer expires. Default
// HOLD. sunrise_policy and non_responsive_policy take precedence when they
// apply and are set.
TimeoutOutcome TravelRuleSettingsDetailTimeoutOutcome `json:"timeout_outcome"`
// Decimal string, in your application's default currency. Minimum transfer
// amount that triggers a managed exchange; transfers below it resolve straight
// to NOT_APPLICABLE. Didit compares the transaction amount converted to your
// default currency, or the `amount_in_default_currency` you send; when no
// converted amount is available, the threshold does not apply. Defaults to
// "0.00" (EU TFR applies no minimum amount).
ThresholdAmount string `json:"threshold_amount"`
// How much proof a wallet's ownership takes. `FULL` always needs a proof
// (signed message, test deposit or reviewed screenshot), never the end user's
// word. `SIMPLIFIED` accepts a self-declaration below
// `simplified_validation_threshold` and a proof above it. `AUTOMATED` lets the
// address book and earlier proofs answer on their own, self-declarations
// included while `allow_self_declaration` is true. Default `AUTOMATED`.
OwnershipValidationMode TravelRuleSettingsDetailOwnershipValidationMode `json:"ownership_validation_mode"`
// Decimal string, default "0.00". In `SIMPLIFIED` mode a transfer below this
// amount (in the threshold currency) accepts a self-declaration. A transfer
// with no amount in that currency counts as above it.
SimplifiedValidationThreshold string `json:"simplified_validation_threshold"`
DataSharingFields TravelRuleDataSharingFields `json:"data_sharing_fields"`
MatchingRules TravelRuleMatchingRules `json:"matching_rules"`
// Your VASP's legal name. Required (non-blank) to set is_enabled to true.
LegalName string `json:"legal_name"`
// Your Legal Entity Identifier, surfaced in the VASP directory.
Lei string `json:"lei"`
// Compliance contact email for your VASP profile. The Didit network lists your
// profile only once this address is confirmed through an emailed link (POST
// /v3/travel-rule/settings/compliance-email/confirmation/); changing it needs a
// new confirmation.
ComplianceEmail string `json:"compliance_email"`
// Whether your VASP profile can be listed in the Didit network: found in GET
// /v3/travel-rule/vasps/ by other Didit customers and reached on the INTERNAL
// rail. Listing also needs a live application, Travel Rule on, a legal name and
// a confirmed compliance email; didit_network says which are missing. Default
// true.
IsDiscoverable bool `json:"is_discoverable"`
// When true, an inbound TRP inquiry whose beneficiary wallet is a verified
// address-book entry with a matching name is approved automatically. When
// false, that inquiry waits in ON_HOLD for you to approve or deny it with the
// ownership endpoint. INTERNAL-rail and after-deposit transfers are not
// affected. Default true.
InboundAutoAccept bool `json:"inbound_auto_accept"`
// When true, the wallet-ownership widget offers self-declaration as a fallback
// proof method. Default true.
AllowSelfDeclaration bool `json:"allow_self_declaration"`
// When true, the wallet-ownership widget offers screenshot upload as an
// ownership evidence method. Default true.
AllowScreenshotProof bool `json:"allow_screenshot_proof"`
// When true, submitting an outbound Travel Rule transfer that needs end-user
// proof of wallet control auto-mints a wallet-ownership widget session bound to
// the transaction and exposes it in the transaction's action_required block.
// Default true.
AutoWalletVerification bool `json:"auto_wallet_verification"`
// When true, an outbound Travel Rule transfer that no rail can route is
// attributed through blockchain analytics: the destination wallet is resolved
// to its owning VASP, the entity is recorded on the transfer and in the VASP
// directory, and the rails are re-run once with the attributed name. Default
// true.
VASPAttributionEnabled bool `json:"vasp_attribution_enabled"`
// Opt-in sanctions and adverse-media screening of counterparty VASPs, billed
// per screening at the Company AML Screening price. When on, Didit screens the
// counterparty an outbound exchange reaches (reusing a screening younger than
// 30 days) and you can screen one with POST
// /v3/travel-rule/vasps/{vasp_id}/screening/. Default false: nothing is
// screened or billed.
CounterpartyScreeningEnabled bool `json:"counterparty_screening_enabled"`
// What an expired transfer does to its transaction when the counterparty is a
// directory entry in a jurisdiction on sunrise_jurisdictions, which does not
// enforce the Travel Rule yet: HOLD moves it to review, REJECT declines it,
// PROCEED leaves its status untouched. Empty (the default) follows
// timeout_outcome. Applies before non_responsive_policy.
SunrisePolicy TravelRuleSettingsDetailSunrisePolicy `json:"sunrise_policy"`
// Read-only. The countries (ISO 3166 alpha-2) Didit treats as in a Travel Rule
// sunrise period, where sunrise_policy applies. Currently CO, KH and VN. Any
// other jurisdiction, and an empty or unknown one, follows timeout_outcome.
SunriseJurisdictions []string `json:"sunrise_jurisdictions"`
// What an expired transfer does to its transaction when the counterparty is a
// directory entry whose responsiveness is UNRESPONSIVE: HOLD, REJECT or
// PROCEED, as for timeout_outcome. Empty (the default) follows timeout_outcome.
// sunrise_policy applies first when both fit.
NonResponsivePolicy TravelRuleSettingsDetailNonResponsivePolicy `json:"non_responsive_policy"`
// Read-only. Your VASP's own travel address - the encoded inbound TRP inquiry
// endpoint other VASPs use to reach you. Empty while `is_enabled` is false.
TravelAddress string `json:"travel_address"`
// Networks opted out of platform membership. Does not disable your connected
// own memberships or provision unavailable networks.
DisabledNetworks []TravelRuleSettingsDetailDisabledNetworks `json:"disabled_networks"`
// Effective membership configuration for each network. No network, including
// GTR, is included by default. This is not a live health or delivery check.
Networks TravelRuleSettingsDetailNetworks `json:"networks"`
// Whether the Didit network lists your VASP profile, so other Didit customers
// find it in the directory and reach it on the INTERNAL rail, and each
// condition it still misses.
DiditNetwork TravelRuleSettingsDetailDiditNetwork `json:"didit_network"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetail is a response object.
func (*TravelRuleSettingsDetail) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetail leniently.
type TravelRuleSettingsDetailDiditNetwork ¶
type TravelRuleSettingsDetailDiditNetwork struct {
Listed bool `json:"listed"`
// Empty when listed. compliance_email_unconfirmed: send the confirmation with
// POST /v3/travel-rule/settings/compliance-email/confirmation/ and open the
// emailed link. excluded_by_staff: Didit marked the application as a test, demo
// or internal one.
Missing []TravelRuleSettingsDetailDiditNetworkMissing `json:"missing"`
// Whether the current compliance_email was confirmed through the emailed link.
ComplianceEmailConfirmed bool `json:"compliance_email_confirmed"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailDiditNetwork: Whether the Didit network lists your VASP profile, so other Didit customers find it in the directory and reach it on the INTERNAL rail, and each condition it still misses.
func (*TravelRuleSettingsDetailDiditNetwork) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailDiditNetwork) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailDiditNetwork leniently.
type TravelRuleSettingsDetailDiditNetworkMissing ¶
type TravelRuleSettingsDetailDiditNetworkMissing string
TravelRuleSettingsDetailDiditNetworkMissing is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailDiditNetworkMissingTravelRuleOff TravelRuleSettingsDetailDiditNetworkMissing = "travel_rule_off" TravelRuleSettingsDetailDiditNetworkMissingSandboxApplication TravelRuleSettingsDetailDiditNetworkMissing = "sandbox_application" TravelRuleSettingsDetailDiditNetworkMissingNotDiscoverable TravelRuleSettingsDetailDiditNetworkMissing = "not_discoverable" TravelRuleSettingsDetailDiditNetworkMissingLegalNameMissing TravelRuleSettingsDetailDiditNetworkMissing = "legal_name_missing" TravelRuleSettingsDetailDiditNetworkMissingComplianceEmailMissing TravelRuleSettingsDetailDiditNetworkMissing = "compliance_email_missing" TravelRuleSettingsDetailDiditNetworkMissingComplianceEmailUnconfirmed TravelRuleSettingsDetailDiditNetworkMissing = "compliance_email_unconfirmed" TravelRuleSettingsDetailDiditNetworkMissingExcludedByStaff TravelRuleSettingsDetailDiditNetworkMissing = "excluded_by_staff" TravelRuleSettingsDetailDiditNetworkMissingInternalOrganization TravelRuleSettingsDetailDiditNetworkMissing = "internal_organization" )
Known values of TravelRuleSettingsDetailDiditNetworkMissing.
type TravelRuleSettingsDetailDisabledNetworks ¶
type TravelRuleSettingsDetailDisabledNetworks string
TravelRuleSettingsDetailDisabledNetworks is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailDisabledNetworksGtr TravelRuleSettingsDetailDisabledNetworks = "GTR" TravelRuleSettingsDetailDisabledNetworksTrust TravelRuleSettingsDetailDisabledNetworks = "TRUST" TravelRuleSettingsDetailDisabledNetworksVerifyvasp TravelRuleSettingsDetailDisabledNetworks = "VERIFYVASP" TravelRuleSettingsDetailDisabledNetworksSygna TravelRuleSettingsDetailDisabledNetworks = "SYGNA" )
Known values of TravelRuleSettingsDetailDisabledNetworks.
type TravelRuleSettingsDetailNameMatchingStrictness ¶
type TravelRuleSettingsDetailNameMatchingStrictness string
TravelRuleSettingsDetailNameMatchingStrictness: How strictly beneficiary names must match before a transfer can reach COMPLETED. `CONTAINS` accepts one name whose words all appear in the other.
TravelRuleSettingsDetailNameMatchingStrictness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNameMatchingStrictnessNone TravelRuleSettingsDetailNameMatchingStrictness = "NONE" TravelRuleSettingsDetailNameMatchingStrictnessStrict TravelRuleSettingsDetailNameMatchingStrictness = "STRICT" TravelRuleSettingsDetailNameMatchingStrictnessContains TravelRuleSettingsDetailNameMatchingStrictness = "CONTAINS" TravelRuleSettingsDetailNameMatchingStrictnessDefault TravelRuleSettingsDetailNameMatchingStrictness = "DEFAULT" TravelRuleSettingsDetailNameMatchingStrictnessFuzzy TravelRuleSettingsDetailNameMatchingStrictness = "FUZZY" )
Known values of TravelRuleSettingsDetailNameMatchingStrictness.
type TravelRuleSettingsDetailNetworks ¶
type TravelRuleSettingsDetailNetworks struct {
Gtr TravelRuleSettingsDetailNetworksGtr `json:"gtr"`
Trust TravelRuleSettingsDetailNetworksTrust `json:"trust"`
Verifyvasp TravelRuleSettingsDetailNetworksVerifyvasp `json:"verifyvasp"`
Sygna TravelRuleSettingsDetailNetworksSygna `json:"sygna"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailNetworks: Effective membership configuration for each network. No network, including GTR, is included by default. This is not a live health or delivery check.
func (*TravelRuleSettingsDetailNetworks) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailNetworks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailNetworks leniently.
type TravelRuleSettingsDetailNetworksGtr ¶
type TravelRuleSettingsDetailNetworksGtr struct {
Rail TravelRuleSettingsDetailNetworksGtrRail `json:"rail"`
// own: connected customer membership takes precedence; didit: configured
// platform membership allowed; off: platform routing disabled with no own
// membership; unavailable: neither membership available.
Mode TravelRuleSettingsDetailNetworksGtrMode `json:"mode"`
// Whether platform membership is configured; not a live health check.
PlatformAvailable bool `json:"platform_available"`
// Whether a connected customer membership exists. Credentials are validated
// locally; network validation occurs on a live exchange.
Connected bool `json:"connected"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailNetworksGtr is a response object.
func (*TravelRuleSettingsDetailNetworksGtr) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailNetworksGtr) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailNetworksGtr leniently.
type TravelRuleSettingsDetailNetworksGtrMode ¶
type TravelRuleSettingsDetailNetworksGtrMode string
TravelRuleSettingsDetailNetworksGtrMode: own: connected customer membership takes precedence; didit: configured platform membership allowed; off: platform routing disabled with no own membership; unavailable: neither membership available.
TravelRuleSettingsDetailNetworksGtrMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNetworksGtrModeOwn TravelRuleSettingsDetailNetworksGtrMode = "own" TravelRuleSettingsDetailNetworksGtrModeDidit TravelRuleSettingsDetailNetworksGtrMode = "didit" TravelRuleSettingsDetailNetworksGtrModeOff TravelRuleSettingsDetailNetworksGtrMode = "off" )
Known values of TravelRuleSettingsDetailNetworksGtrMode.
type TravelRuleSettingsDetailNetworksGtrRail ¶
type TravelRuleSettingsDetailNetworksGtrRail string
TravelRuleSettingsDetailNetworksGtrRail is a string with known values below. The set is open: other values may appear and never cause an error.
const (
TravelRuleSettingsDetailNetworksGtrRailGtr TravelRuleSettingsDetailNetworksGtrRail = "GTR"
)
Known values of TravelRuleSettingsDetailNetworksGtrRail.
type TravelRuleSettingsDetailNetworksSygna ¶
type TravelRuleSettingsDetailNetworksSygna struct {
Rail TravelRuleSettingsDetailNetworksSygnaRail `json:"rail"`
// own: connected customer membership takes precedence; didit: configured
// platform membership allowed; off: platform routing disabled with no own
// membership; unavailable: neither membership available.
Mode TravelRuleSettingsDetailNetworksSygnaMode `json:"mode"`
// Whether platform membership is configured; not a live health check.
PlatformAvailable bool `json:"platform_available"`
// Whether a connected customer membership exists. Credentials are validated
// locally; network validation occurs on a live exchange.
Connected bool `json:"connected"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailNetworksSygna is a response object.
func (*TravelRuleSettingsDetailNetworksSygna) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailNetworksSygna) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailNetworksSygna leniently.
type TravelRuleSettingsDetailNetworksSygnaMode ¶
type TravelRuleSettingsDetailNetworksSygnaMode string
TravelRuleSettingsDetailNetworksSygnaMode: own: connected customer membership takes precedence; didit: configured platform membership allowed; off: platform routing disabled with no own membership; unavailable: neither membership available.
TravelRuleSettingsDetailNetworksSygnaMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNetworksSygnaModeOwn TravelRuleSettingsDetailNetworksSygnaMode = "own" TravelRuleSettingsDetailNetworksSygnaModeDidit TravelRuleSettingsDetailNetworksSygnaMode = "didit" TravelRuleSettingsDetailNetworksSygnaModeOff TravelRuleSettingsDetailNetworksSygnaMode = "off" )
Known values of TravelRuleSettingsDetailNetworksSygnaMode.
type TravelRuleSettingsDetailNetworksSygnaRail ¶
type TravelRuleSettingsDetailNetworksSygnaRail string
TravelRuleSettingsDetailNetworksSygnaRail is a string with known values below. The set is open: other values may appear and never cause an error.
const (
TravelRuleSettingsDetailNetworksSygnaRailSygna TravelRuleSettingsDetailNetworksSygnaRail = "SYGNA"
)
Known values of TravelRuleSettingsDetailNetworksSygnaRail.
type TravelRuleSettingsDetailNetworksTrust ¶
type TravelRuleSettingsDetailNetworksTrust struct {
Rail TravelRuleSettingsDetailNetworksTrustRail `json:"rail"`
// own: connected customer membership takes precedence; didit: configured
// platform membership allowed; off: platform routing disabled with no own
// membership; unavailable: neither membership available.
Mode TravelRuleSettingsDetailNetworksTrustMode `json:"mode"`
// Whether platform membership is configured; not a live health check.
PlatformAvailable bool `json:"platform_available"`
// Whether a connected customer membership exists. Credentials are validated
// locally; network validation occurs on a live exchange.
Connected bool `json:"connected"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailNetworksTrust is a response object.
func (*TravelRuleSettingsDetailNetworksTrust) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailNetworksTrust) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailNetworksTrust leniently.
type TravelRuleSettingsDetailNetworksTrustMode ¶
type TravelRuleSettingsDetailNetworksTrustMode string
TravelRuleSettingsDetailNetworksTrustMode: own: connected customer membership takes precedence; didit: configured platform membership allowed; off: platform routing disabled with no own membership; unavailable: neither membership available.
TravelRuleSettingsDetailNetworksTrustMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNetworksTrustModeOwn TravelRuleSettingsDetailNetworksTrustMode = "own" TravelRuleSettingsDetailNetworksTrustModeDidit TravelRuleSettingsDetailNetworksTrustMode = "didit" TravelRuleSettingsDetailNetworksTrustModeOff TravelRuleSettingsDetailNetworksTrustMode = "off" )
Known values of TravelRuleSettingsDetailNetworksTrustMode.
type TravelRuleSettingsDetailNetworksTrustRail ¶
type TravelRuleSettingsDetailNetworksTrustRail string
TravelRuleSettingsDetailNetworksTrustRail is a string with known values below. The set is open: other values may appear and never cause an error.
const (
TravelRuleSettingsDetailNetworksTrustRailTrust TravelRuleSettingsDetailNetworksTrustRail = "TRUST"
)
Known values of TravelRuleSettingsDetailNetworksTrustRail.
type TravelRuleSettingsDetailNetworksVerifyvasp ¶
type TravelRuleSettingsDetailNetworksVerifyvasp struct {
Rail TravelRuleSettingsDetailNetworksVerifyvaspRail `json:"rail"`
// own: connected customer membership takes precedence; didit: configured
// platform membership allowed; off: platform routing disabled with no own
// membership; unavailable: neither membership available.
Mode TravelRuleSettingsDetailNetworksVerifyvaspMode `json:"mode"`
// Whether platform membership is configured; not a live health check.
PlatformAvailable bool `json:"platform_available"`
// Whether a connected customer membership exists. Credentials are validated
// locally; network validation occurs on a live exchange.
Connected bool `json:"connected"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleSettingsDetailNetworksVerifyvasp is a response object.
func (*TravelRuleSettingsDetailNetworksVerifyvasp) UnmarshalJSON ¶
func (r *TravelRuleSettingsDetailNetworksVerifyvasp) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleSettingsDetailNetworksVerifyvasp leniently.
type TravelRuleSettingsDetailNetworksVerifyvaspMode ¶
type TravelRuleSettingsDetailNetworksVerifyvaspMode string
TravelRuleSettingsDetailNetworksVerifyvaspMode: own: connected customer membership takes precedence; didit: configured platform membership allowed; off: platform routing disabled with no own membership; unavailable: neither membership available.
TravelRuleSettingsDetailNetworksVerifyvaspMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNetworksVerifyvaspModeOwn TravelRuleSettingsDetailNetworksVerifyvaspMode = "own" TravelRuleSettingsDetailNetworksVerifyvaspModeDidit TravelRuleSettingsDetailNetworksVerifyvaspMode = "didit" TravelRuleSettingsDetailNetworksVerifyvaspModeOff TravelRuleSettingsDetailNetworksVerifyvaspMode = "off" )
Known values of TravelRuleSettingsDetailNetworksVerifyvaspMode.
type TravelRuleSettingsDetailNetworksVerifyvaspRail ¶
type TravelRuleSettingsDetailNetworksVerifyvaspRail string
TravelRuleSettingsDetailNetworksVerifyvaspRail is a string with known values below. The set is open: other values may appear and never cause an error.
const (
TravelRuleSettingsDetailNetworksVerifyvaspRailVerifyvasp TravelRuleSettingsDetailNetworksVerifyvaspRail = "VERIFYVASP"
)
Known values of TravelRuleSettingsDetailNetworksVerifyvaspRail.
type TravelRuleSettingsDetailNonResponsivePolicy ¶
type TravelRuleSettingsDetailNonResponsivePolicy string
TravelRuleSettingsDetailNonResponsivePolicy: What an expired transfer does to its transaction when the counterparty is a directory entry whose responsiveness is UNRESPONSIVE: HOLD, REJECT or PROCEED, as for timeout_outcome. Empty (the default) follows timeout_outcome. sunrise_policy applies first when both fit.
TravelRuleSettingsDetailNonResponsivePolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailNonResponsivePolicyEmpty TravelRuleSettingsDetailNonResponsivePolicy = "" TravelRuleSettingsDetailNonResponsivePolicyHold TravelRuleSettingsDetailNonResponsivePolicy = "HOLD" TravelRuleSettingsDetailNonResponsivePolicyReject TravelRuleSettingsDetailNonResponsivePolicy = "REJECT" TravelRuleSettingsDetailNonResponsivePolicyProceed TravelRuleSettingsDetailNonResponsivePolicy = "PROCEED" )
Known values of TravelRuleSettingsDetailNonResponsivePolicy.
type TravelRuleSettingsDetailOwnershipValidationMode ¶
type TravelRuleSettingsDetailOwnershipValidationMode string
TravelRuleSettingsDetailOwnershipValidationMode: How much proof a wallet's ownership takes. `FULL` always needs a proof (signed message, test deposit or reviewed screenshot), never the end user's word. `SIMPLIFIED` accepts a self-declaration below `simplified_validation_threshold` and a proof above it. `AUTOMATED` lets the address book and earlier proofs answer on their own, self-declarations included while `allow_self_declaration` is true. Default `AUTOMATED`.
TravelRuleSettingsDetailOwnershipValidationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailOwnershipValidationModeFull TravelRuleSettingsDetailOwnershipValidationMode = "FULL" TravelRuleSettingsDetailOwnershipValidationModeSimplified TravelRuleSettingsDetailOwnershipValidationMode = "SIMPLIFIED" TravelRuleSettingsDetailOwnershipValidationModeAutomated TravelRuleSettingsDetailOwnershipValidationMode = "AUTOMATED" )
Known values of TravelRuleSettingsDetailOwnershipValidationMode.
type TravelRuleSettingsDetailSunrisePolicy ¶
type TravelRuleSettingsDetailSunrisePolicy string
TravelRuleSettingsDetailSunrisePolicy: What an expired transfer does to its transaction when the counterparty is a directory entry in a jurisdiction on sunrise_jurisdictions, which does not enforce the Travel Rule yet: HOLD moves it to review, REJECT declines it, PROCEED leaves its status untouched. Empty (the default) follows timeout_outcome. Applies before non_responsive_policy.
TravelRuleSettingsDetailSunrisePolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailSunrisePolicyEmpty TravelRuleSettingsDetailSunrisePolicy = "" TravelRuleSettingsDetailSunrisePolicyHold TravelRuleSettingsDetailSunrisePolicy = "HOLD" TravelRuleSettingsDetailSunrisePolicyReject TravelRuleSettingsDetailSunrisePolicy = "REJECT" TravelRuleSettingsDetailSunrisePolicyProceed TravelRuleSettingsDetailSunrisePolicy = "PROCEED" )
Known values of TravelRuleSettingsDetailSunrisePolicy.
type TravelRuleSettingsDetailTimeoutOutcome ¶
type TravelRuleSettingsDetailTimeoutOutcome string
TravelRuleSettingsDetailTimeoutOutcome: What happens to the underlying transaction when a transfer expires. Default HOLD. sunrise_policy and non_responsive_policy take precedence when they apply and are set.
TravelRuleSettingsDetailTimeoutOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsDetailTimeoutOutcomeHold TravelRuleSettingsDetailTimeoutOutcome = "HOLD" TravelRuleSettingsDetailTimeoutOutcomeReject TravelRuleSettingsDetailTimeoutOutcome = "REJECT" TravelRuleSettingsDetailTimeoutOutcomeProceed TravelRuleSettingsDetailTimeoutOutcome = "PROCEED" )
Known values of TravelRuleSettingsDetailTimeoutOutcome.
type TravelRuleSettingsUpdate ¶
type TravelRuleSettingsUpdate struct {
IsEnabled Opt[bool] `json:"is_enabled"`
LegalName Opt[string] `json:"legal_name"`
Lei Opt[string] `json:"lei"`
Jurisdiction Opt[string] `json:"jurisdiction"`
// `CONTAINS` accepts one name whose words all appear in the other.
NameMatchingStrictness Opt[TravelRuleSettingsUpdateNameMatchingStrictness] `json:"name_matching_strictness"`
ConfirmationTimeoutHours Opt[int64] `json:"confirmation_timeout_hours"`
TimeoutOutcome Opt[TravelRuleSettingsUpdateTimeoutOutcome] `json:"timeout_outcome"`
// Compliance contact email for your VASP profile. The Didit network lists your
// profile only once this address is confirmed through an emailed link (POST
// /v3/travel-rule/settings/compliance-email/confirmation/); changing it needs a
// new confirmation.
ComplianceEmail Opt[string] `json:"compliance_email"`
// Whether your VASP profile can be listed in the Didit network: found in GET
// /v3/travel-rule/vasps/ by other Didit customers and reached on the INTERNAL
// rail. Listing also needs a live application, Travel Rule on, a legal name and
// a confirmed compliance email; didit_network says which are missing. Default
// true.
IsDiscoverable Opt[bool] `json:"is_discoverable"`
// Decimal string, zero or greater, in your application's default currency.
// Minimum transfer amount that triggers a managed exchange.
ThresholdAmount Opt[string] `json:"threshold_amount"`
// See the response field of the same name.
OwnershipValidationMode Opt[TravelRuleSettingsUpdateOwnershipValidationMode] `json:"ownership_validation_mode"`
// Decimal string, 0 or more.
SimplifiedValidationThreshold Opt[string] `json:"simplified_validation_threshold"`
// Merged per entity type: an entity type you leave out keeps its current
// choice. A choice that cannot meet the originator obligations of your
// `jurisdiction` regime (EU TFR or FATF Recommendation 16), an empty list
// included, is refused with `400`.
DataSharingFields Opt[TravelRuleDataSharingFieldsParam] `json:"data_sharing_fields"`
// Merged per entity type, and per field inside it. A field that entity type
// does not compare (for example `date_of_birth` for `company`) is refused with
// `400`.
MatchingRules Opt[TravelRuleMatchingRulesParam] `json:"matching_rules"`
InboundAutoAccept Opt[bool] `json:"inbound_auto_accept"`
AllowSelfDeclaration Opt[bool] `json:"allow_self_declaration"`
// When true, the wallet-ownership widget offers screenshot upload as an
// ownership evidence method. Default true.
AllowScreenshotProof Opt[bool] `json:"allow_screenshot_proof"`
AutoWalletVerification Opt[bool] `json:"auto_wallet_verification"`
VASPAttributionEnabled Opt[bool] `json:"vasp_attribution_enabled"`
// Opt-in sanctions and adverse-media screening of counterparty VASPs, billed
// per screening at the Company AML Screening price. When on, Didit screens the
// counterparty an outbound exchange reaches (reusing a screening younger than
// 30 days) and you can screen one with POST
// /v3/travel-rule/vasps/{vasp_id}/screening/. Default false: nothing is
// screened or billed.
CounterpartyScreeningEnabled Opt[bool] `json:"counterparty_screening_enabled"`
// HOLD, REJECT, PROCEED, or empty to follow timeout_outcome. See the response
// field of the same name.
SunrisePolicy Opt[TravelRuleSettingsUpdateSunrisePolicy] `json:"sunrise_policy"`
// HOLD, REJECT, PROCEED, or empty to follow timeout_outcome. See the response
// field of the same name.
NonResponsivePolicy Opt[TravelRuleSettingsUpdateNonResponsivePolicy] `json:"non_responsive_policy"`
// Networks opted out of platform membership. Does not disable your connected
// own memberships or provision unavailable networks.
DisabledNetworks Opt[[]TravelRuleSettingsUpdateDisabledNetworks] `json:"disabled_networks"`
}
TravelRuleSettingsUpdate: All fields optional; PUT applies a partial update.
func (TravelRuleSettingsUpdate) MarshalJSON ¶
func (r TravelRuleSettingsUpdate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleSettingsUpdateDisabledNetworks ¶
type TravelRuleSettingsUpdateDisabledNetworks string
TravelRuleSettingsUpdateDisabledNetworks is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateDisabledNetworksGtr TravelRuleSettingsUpdateDisabledNetworks = "GTR" TravelRuleSettingsUpdateDisabledNetworksTrust TravelRuleSettingsUpdateDisabledNetworks = "TRUST" TravelRuleSettingsUpdateDisabledNetworksVerifyvasp TravelRuleSettingsUpdateDisabledNetworks = "VERIFYVASP" TravelRuleSettingsUpdateDisabledNetworksSygna TravelRuleSettingsUpdateDisabledNetworks = "SYGNA" )
Known values of TravelRuleSettingsUpdateDisabledNetworks.
type TravelRuleSettingsUpdateNameMatchingStrictness ¶
type TravelRuleSettingsUpdateNameMatchingStrictness string
TravelRuleSettingsUpdateNameMatchingStrictness: `CONTAINS` accepts one name whose words all appear in the other.
TravelRuleSettingsUpdateNameMatchingStrictness is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateNameMatchingStrictnessNone TravelRuleSettingsUpdateNameMatchingStrictness = "NONE" TravelRuleSettingsUpdateNameMatchingStrictnessStrict TravelRuleSettingsUpdateNameMatchingStrictness = "STRICT" TravelRuleSettingsUpdateNameMatchingStrictnessContains TravelRuleSettingsUpdateNameMatchingStrictness = "CONTAINS" TravelRuleSettingsUpdateNameMatchingStrictnessDefault TravelRuleSettingsUpdateNameMatchingStrictness = "DEFAULT" TravelRuleSettingsUpdateNameMatchingStrictnessFuzzy TravelRuleSettingsUpdateNameMatchingStrictness = "FUZZY" )
Known values of TravelRuleSettingsUpdateNameMatchingStrictness.
type TravelRuleSettingsUpdateNonResponsivePolicy ¶
type TravelRuleSettingsUpdateNonResponsivePolicy string
TravelRuleSettingsUpdateNonResponsivePolicy: HOLD, REJECT, PROCEED, or empty to follow timeout_outcome. See the response field of the same name.
TravelRuleSettingsUpdateNonResponsivePolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateNonResponsivePolicyEmpty TravelRuleSettingsUpdateNonResponsivePolicy = "" TravelRuleSettingsUpdateNonResponsivePolicyHold TravelRuleSettingsUpdateNonResponsivePolicy = "HOLD" TravelRuleSettingsUpdateNonResponsivePolicyReject TravelRuleSettingsUpdateNonResponsivePolicy = "REJECT" TravelRuleSettingsUpdateNonResponsivePolicyProceed TravelRuleSettingsUpdateNonResponsivePolicy = "PROCEED" )
Known values of TravelRuleSettingsUpdateNonResponsivePolicy.
type TravelRuleSettingsUpdateOwnershipValidationMode ¶
type TravelRuleSettingsUpdateOwnershipValidationMode string
TravelRuleSettingsUpdateOwnershipValidationMode: See the response field of the same name.
TravelRuleSettingsUpdateOwnershipValidationMode is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateOwnershipValidationModeFull TravelRuleSettingsUpdateOwnershipValidationMode = "FULL" TravelRuleSettingsUpdateOwnershipValidationModeSimplified TravelRuleSettingsUpdateOwnershipValidationMode = "SIMPLIFIED" TravelRuleSettingsUpdateOwnershipValidationModeAutomated TravelRuleSettingsUpdateOwnershipValidationMode = "AUTOMATED" )
Known values of TravelRuleSettingsUpdateOwnershipValidationMode.
type TravelRuleSettingsUpdateSunrisePolicy ¶
type TravelRuleSettingsUpdateSunrisePolicy string
TravelRuleSettingsUpdateSunrisePolicy: HOLD, REJECT, PROCEED, or empty to follow timeout_outcome. See the response field of the same name.
TravelRuleSettingsUpdateSunrisePolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateSunrisePolicyEmpty TravelRuleSettingsUpdateSunrisePolicy = "" TravelRuleSettingsUpdateSunrisePolicyHold TravelRuleSettingsUpdateSunrisePolicy = "HOLD" TravelRuleSettingsUpdateSunrisePolicyReject TravelRuleSettingsUpdateSunrisePolicy = "REJECT" TravelRuleSettingsUpdateSunrisePolicyProceed TravelRuleSettingsUpdateSunrisePolicy = "PROCEED" )
Known values of TravelRuleSettingsUpdateSunrisePolicy.
type TravelRuleSettingsUpdateTimeoutOutcome ¶
type TravelRuleSettingsUpdateTimeoutOutcome string
TravelRuleSettingsUpdateTimeoutOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleSettingsUpdateTimeoutOutcomeHold TravelRuleSettingsUpdateTimeoutOutcome = "HOLD" TravelRuleSettingsUpdateTimeoutOutcomeReject TravelRuleSettingsUpdateTimeoutOutcome = "REJECT" TravelRuleSettingsUpdateTimeoutOutcomeProceed TravelRuleSettingsUpdateTimeoutOutcome = "PROCEED" )
Known values of TravelRuleSettingsUpdateTimeoutOutcome.
type TravelRuleTestVASPInboundRequest ¶
type TravelRuleTestVASPInboundRequest struct {
// The destination wallet address. The Didit Test VASP sends to it, matched
// against your wallet address book on the chain of the asset. A wallet with no
// matching entry is accepted and the inbound transaction is booked ON_HOLD.
// Required.
BeneficiaryWalletAddress string `json:"beneficiary_wallet_address"`
// What the Didit Test VASP declares the beneficiary to be. `accept` declares
// the holder's own name; `name_mismatch` declares a name no holder agrees with.
// The decision itself is always yours.
Scenario Opt[TravelRuleTestVASPInboundRequestScenario] `json:"scenario"`
// Chain of the asset.
Chain Opt[string] `json:"chain"`
// Amount as a decimal string.
Amount Opt[string] `json:"amount"`
// Asset code.
Currency Opt[string] `json:"currency"`
// Optional idempotency key. A repeat with the same value returns the transfer
// the first call booked.
Reference Opt[string] `json:"reference"`
}
TravelRuleTestVASPInboundRequest is a request object.
func (TravelRuleTestVASPInboundRequest) MarshalJSON ¶
func (r TravelRuleTestVASPInboundRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleTestVASPInboundRequestScenario ¶
type TravelRuleTestVASPInboundRequestScenario string
TravelRuleTestVASPInboundRequestScenario: What the Didit Test VASP declares the beneficiary to be. `accept` declares the holder's own name; `name_mismatch` declares a name no holder agrees with. The decision itself is always yours.
TravelRuleTestVASPInboundRequestScenario is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTestVASPInboundRequestScenarioAccept TravelRuleTestVASPInboundRequestScenario = "accept" TravelRuleTestVASPInboundRequestScenarioNameMismatch TravelRuleTestVASPInboundRequestScenario = "name_mismatch" )
Known values of TravelRuleTestVASPInboundRequestScenario.
type TravelRuleTestVASPInboundResponse ¶
type TravelRuleTestVASPInboundResponse struct {
// Didit transaction UUID of the inbound transfer.
TransactionID string `json:"transaction_id"`
// Didit-generated txn_id.
TxnID string `json:"txn_id"`
// The scenario that ran.
Scenario string `json:"scenario"`
// The status your application's own decision resolved to.
TravelRuleStatus string `json:"travel_rule_status"`
// Why the transfer resolved to that status.
Detail string `json:"detail"`
// Always true: the sender was the Didit Test VASP.
TestVASP bool `json:"test_vasp"`
TravelRule TravelRuleTransferDetail `json:"travel_rule"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTestVASPInboundResponse is a response object.
func (*TravelRuleTestVASPInboundResponse) UnmarshalJSON ¶
func (r *TravelRuleTestVASPInboundResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTestVASPInboundResponse leniently.
type TravelRuleTransferDetail ¶
type TravelRuleTransferDetail struct {
UUID string `json:"uuid"`
Status TravelRuleTransferDetailStatus `json:"status"`
Direction TravelRuleTransferDetailDirection `json:"direction"`
// The rail the transfer was routed over, or null when no rail was selected (for
// example below the threshold, a self-hosted counterparty wallet, an
// after-deposit registration, or no reachable counterparty). INTERNAL means
// both sides are Didit applications; EMAIL means the counterparty was reached
// by an emailed pickup link. TEST_VASP means the Didit Test VASP answered the
// sandbox transfer. Over GTR, VERIFYVASP and SYGNA, Didit reads the
// counterparty's answer from the network's response or by polling it every 5
// minutes. TRUST only sends, so a TRUST transfer stays AWAITING_COUNTERPARTY
// until it expires. A network rail is used only when you have connected your
// own membership for that network. It is chosen after the transaction create
// returns, so it is null in that response.
Rail TravelRuleTransferDetailRail `json:"rail"`
Protocol string `json:"protocol"`
IvmsVersion string `json:"ivms_version"`
Required bool `json:"required"`
OwnershipConfirmed bool `json:"ownership_confirmed"`
DeadlineAt time.Time `json:"deadline_at"`
Timeline []TravelRuleTransferDetailTimeline `json:"timeline"`
CounterpartyVASP TravelRuleTransferDetailCounterpartyVASP `json:"counterparty_vasp"`
// Originator party. For an inbound transfer the counterparty's values are
// masked until ownership is confirmed.
OriginatorData map[string]any `json:"originator_data"`
// Beneficiary party. For an inbound transfer the counterparty's values are
// masked until ownership is confirmed.
BeneficiaryData map[string]any `json:"beneficiary_data"`
// The name comparison that decided the transfer, or null until one ran. While
// the parties are masked, and on the other customer's copy of an INTERNAL
// exchange, `transfer_name`, `compared_name`, `matched_names` and
// `mismatched_names` are hidden. `score` and `matched` can disagree: `matched`
// follows the strictness, `score` is the similarity of the two full names.
NameMatch TravelRuleNameMatch `json:"name_match"`
DataMatch TravelRuleDataMatch `json:"data_match"`
// Shortcut for `data_match.mismatched_fields`. Empty when nothing differs.
MismatchedFields []string `json:"mismatched_fields"`
DataUnmasked TravelRuleDataUnmasked `json:"data_unmasked"`
// True while the counterparty's personal data is masked in this response.
DataMasked bool `json:"data_masked"`
CreatedAt time.Time `json:"created_at"`
// Where the latest message this transfer owes the other side stands. Null when
// the transfer never owed one (for example below `threshold_amount`, a declared
// self-hosted wallet, or a sunrise registration).
Delivery TravelRuleDelivery `json:"delivery"`
// How Didit looked for the counterparty, one entry per step that ran. Empty
// when no discovery ran, for example on an inbound transfer.
Discovery []TravelRuleDiscoveryStep `json:"discovery"`
// Why a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`
// transfer is stuck; `""` for any other status. A failed delivery decides it
// first, on `COUNTERPARTY_VASP_NOT_REACHABLE` only: `email_undeliverable` (the
// mail provider refused the compliance email and no address is left to try:
// when it was sent, on a reminder, or as a permanent bounce reported later) or
// `delivery_failed` (the rail that was delivering failed for good: a network
// rail refused the message or ran out of retries, a `TRP` identity host did not
// answer, or the counterparty's `TRP` host did not accept the inquiry).
// Otherwise the `discovery` trace decides it: `awaiting_end_user` (no step
// named a counterparty Didit can reach), `directory_match_no_route` (a step
// named a directory VASP that has no route),
// `picked_member_without_proven_wallet` (the end user picked a Didit customer
// that has not proven control of the wallet), or `no_directory_match` when the
// trace gives no other reason. A resend moves the transfer on, so the reason
// clears. See [Why a transfer is
// stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).
Reason string `json:"reason"`
// What moves the transfer on; `[]` for any status but
// `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`.
// `email_undeliverable` offers `update_compliance_email`, then `resend`.
// `delivery_failed` offers `resend`. A discovery reason offers
// `select_counterparty_vasp`, `declare_self_hosted`, `add_vasp_hint` and
// `resend`.
NextActions []TravelRuleNextAction `json:"next_actions"`
ChainDetails TravelRuleChainDetails `json:"chain_details"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTransferDetail: Full transfer object returned by the ownership-confirmation and finish/cancel endpoints. While an inbound transfer's wallet ownership is unconfirmed, the counterparty's `originator_data` and `beneficiary_data` come back masked (the first letter of each word is kept; the wallet, chain and VASP routing stay readable) and `data_masked` is true.
func (*TravelRuleTransferDetail) UnmarshalJSON ¶
func (r *TravelRuleTransferDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTransferDetail leniently.
type TravelRuleTransferDetailCounterpartyVASP ¶
type TravelRuleTransferDetailCounterpartyVASP struct {
Name string `json:"name"`
Lei string `json:"lei"`
// Due-diligence score from 0 to 100, where higher is better. Same scale as in
// the VASP directory.
DdScore int64 `json:"dd_score"`
// Per-component contributions to dd_score, one object per component as in the
// VASP directory (jurisdiction, verification, protocol, lei, history,
// essentials, responsiveness), each {points, max, reason, detail}. {} until the
// counterparty has been assessed.
DdScoreBreakdown map[string]TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown `json:"dd_score_breakdown"`
// When the due-diligence assessment last ran. Null until the counterparty has
// been assessed.
DdAssessedAt time.Time `json:"dd_assessed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTransferDetailCounterpartyVASP is a response object.
func (*TravelRuleTransferDetailCounterpartyVASP) UnmarshalJSON ¶
func (r *TravelRuleTransferDetailCounterpartyVASP) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTransferDetailCounterpartyVASP leniently.
type TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown ¶
type TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown struct {
// Points awarded for this component.
Points float64 `json:"points"`
// Maximum points this component can award.
Max int64 `json:"max"`
// Machine-readable code of the component's verdict.
Reason string `json:"reason"`
// Human-readable reason for the awarded points.
Detail string `json:"detail"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown is a response object.
func (*TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown) UnmarshalJSON ¶
func (r *TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTransferDetailCounterpartyVASPDdScoreBreakdown leniently.
type TravelRuleTransferDetailDirection ¶
type TravelRuleTransferDetailDirection string
TravelRuleTransferDetailDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferDetailDirectionInbound TravelRuleTransferDetailDirection = "INBOUND" TravelRuleTransferDetailDirectionOutbound TravelRuleTransferDetailDirection = "OUTBOUND" )
Known values of TravelRuleTransferDetailDirection.
type TravelRuleTransferDetailRail ¶
type TravelRuleTransferDetailRail string
TravelRuleTransferDetailRail: The rail the transfer was routed over, or null when no rail was selected (for example below the threshold, a self-hosted counterparty wallet, an after-deposit registration, or no reachable counterparty). INTERNAL means both sides are Didit applications; EMAIL means the counterparty was reached by an emailed pickup link. TEST_VASP means the Didit Test VASP answered the sandbox transfer. Over GTR, VERIFYVASP and SYGNA, Didit reads the counterparty's answer from the network's response or by polling it every 5 minutes. TRUST only sends, so a TRUST transfer stays AWAITING_COUNTERPARTY until it expires. A network rail is used only when you have connected your own membership for that network. It is chosen after the transaction create returns, so it is null in that response.
TravelRuleTransferDetailRail is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferDetailRailInternal TravelRuleTransferDetailRail = "INTERNAL" TravelRuleTransferDetailRailTrp TravelRuleTransferDetailRail = "TRP" TravelRuleTransferDetailRailGtr TravelRuleTransferDetailRail = "GTR" TravelRuleTransferDetailRailTrust TravelRuleTransferDetailRail = "TRUST" TravelRuleTransferDetailRailVerifyvasp TravelRuleTransferDetailRail = "VERIFYVASP" TravelRuleTransferDetailRailSygna TravelRuleTransferDetailRail = "SYGNA" TravelRuleTransferDetailRailEmail TravelRuleTransferDetailRail = "EMAIL" TravelRuleTransferDetailRailTestVASP TravelRuleTransferDetailRail = "TEST_VASP" )
Known values of TravelRuleTransferDetailRail.
type TravelRuleTransferDetailStatus ¶
type TravelRuleTransferDetailStatus string
TravelRuleTransferDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferDetailStatusAwaitingCounterparty TravelRuleTransferDetailStatus = "AWAITING_COUNTERPARTY" TravelRuleTransferDetailStatusOnHold TravelRuleTransferDetailStatus = "ON_HOLD" TravelRuleTransferDetailStatusCompleted TravelRuleTransferDetailStatus = "COMPLETED" TravelRuleTransferDetailStatusFinished TravelRuleTransferDetailStatus = "FINISHED" TravelRuleTransferDetailStatusCancelled TravelRuleTransferDetailStatus = "CANCELLED" TravelRuleTransferDetailStatusExpired TravelRuleTransferDetailStatus = "EXPIRED" TravelRuleTransferDetailStatusCounterpartyMismatchedData TravelRuleTransferDetailStatus = "COUNTERPARTY_MISMATCHED_DATA" TravelRuleTransferDetailStatusCounterpartyVASPNotFound TravelRuleTransferDetailStatus = "COUNTERPARTY_VASP_NOT_FOUND" TravelRuleTransferDetailStatusCounterpartyVASPNotReachable TravelRuleTransferDetailStatus = "COUNTERPARTY_VASP_NOT_REACHABLE" TravelRuleTransferDetailStatusUnconfirmedOwnership TravelRuleTransferDetailStatus = "UNCONFIRMED_OWNERSHIP" TravelRuleTransferDetailStatusCounterpartyVASPGeneralDecline TravelRuleTransferDetailStatus = "COUNTERPARTY_VASP_GENERAL_DECLINE" TravelRuleTransferDetailStatusNotEnoughCounterpartyData TravelRuleTransferDetailStatus = "NOT_ENOUGH_COUNTERPARTY_DATA" TravelRuleTransferDetailStatusNotApplicable TravelRuleTransferDetailStatus = "NOT_APPLICABLE" )
Known values of TravelRuleTransferDetailStatus.
type TravelRuleTransferDetailTimeline ¶
type TravelRuleTransferDetailTimeline struct {
Status string `json:"status"`
At time.Time `json:"at"`
Detail string `json:"detail"`
// The name comparison this entry decided, next to `detail`. Absent on entries
// that compared no name.
NameMatch TravelRuleNameMatch `json:"name_match"`
// Present only on the entry of a transition a failed delivery caused:
// `email_undeliverable` or `delivery_failed`, the value the transfer's `reason`
// reports.
Reason string `json:"reason"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTransferDetailTimeline is a response object.
func (*TravelRuleTransferDetailTimeline) UnmarshalJSON ¶
func (r *TravelRuleTransferDetailTimeline) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTransferDetailTimeline leniently.
type TravelRuleTransferPatchRequest ¶
type TravelRuleTransferPatchRequest struct {
// The on-chain transaction hash. Requires the transfer to be an outbound
// transfer in COMPLETED status.
PaymentTxnID Opt[string] `json:"payment_txn_id"`
// "cancel" cancels a non-terminal transfer. "resend" re-runs routing for an
// outbound transfer stuck in COUNTERPARTY_VASP_NOT_FOUND,
// COUNTERPARTY_VASP_NOT_REACHABLE, or NOT_ENOUGH_COUNTERPARTY_DATA.
// "update_compliance_email" replaces the compliance email the request goes to,
// on an outbound transfer in one of those three statuses; send "resend"
// afterwards. "update_originator_wallet" records the wallet the funds actually
// left from (`wallet_address`, `memo`).
Action Opt[TravelRuleTransferPatchRequestAction] `json:"action"`
// Required with `action: update_compliance_email`. Kept as this transfer's
// `beneficiary_data.counterparty_vasp_email`: it belongs to this transfer only
// and joins no directory entry and no contact list.
ComplianceEmail Opt[string] `json:"compliance_email"`
// With `action: update_originator_wallet`: the wallet the funds left from. When
// the transfer's UTXO inputs are known it must be one of them.
WalletAddress Opt[string] `json:"wallet_address"`
// With `action: update_originator_wallet`: the wallet's memo or tag on a memo
// network. Optional.
Memo Opt[string] `json:"memo"`
}
TravelRuleTransferPatchRequest: Provide exactly one of: payment_txn_id (finish), action=cancel, action=resend, action=update_compliance_email with compliance_email, or action=update_originator_wallet with wallet_address.
func (TravelRuleTransferPatchRequest) MarshalJSON ¶
func (r TravelRuleTransferPatchRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleTransferPatchRequestAction ¶
type TravelRuleTransferPatchRequestAction string
TravelRuleTransferPatchRequestAction: "cancel" cancels a non-terminal transfer. "resend" re-runs routing for an outbound transfer stuck in COUNTERPARTY_VASP_NOT_FOUND, COUNTERPARTY_VASP_NOT_REACHABLE, or NOT_ENOUGH_COUNTERPARTY_DATA. "update_compliance_email" replaces the compliance email the request goes to, on an outbound transfer in one of those three statuses; send "resend" afterwards. "update_originator_wallet" records the wallet the funds actually left from (`wallet_address`, `memo`).
TravelRuleTransferPatchRequestAction is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferPatchRequestActionCancel TravelRuleTransferPatchRequestAction = "cancel" TravelRuleTransferPatchRequestActionResend TravelRuleTransferPatchRequestAction = "resend" TravelRuleTransferPatchRequestActionUpdateComplianceEmail TravelRuleTransferPatchRequestAction = "update_compliance_email" TravelRuleTransferPatchRequestActionUpdateOriginatorWallet TravelRuleTransferPatchRequestAction = "update_originator_wallet" )
Known values of TravelRuleTransferPatchRequestAction.
type TravelRuleTransferRow ¶
type TravelRuleTransferRow struct {
// The transfer's id.
ID string `json:"id"`
// The Didit transaction the transfer belongs to.
TransactionID string `json:"transaction_id"`
// Your own id for the transaction. Transfers Didit books for you, such as a
// Didit Test VASP inbound transfer, carry a generated one.
TxnID string `json:"txn_id"`
TxnDate time.Time `json:"txn_date"`
// withdrawal: outbound. message: an inbound transfer a rail created from a
// counterparty's message (a TRP inquiry, the INTERNAL inbound leg, or a GTR,
// VerifyVASP or Sygna Bridge message). deposit: any other inbound transfer.
Kind TravelRuleTransferRowKind `json:"kind"`
Direction TravelRuleTransferRowDirection `json:"direction"`
Status TravelRuleTransferRowStatus `json:"status"`
// Why a `COUNTERPARTY_VASP_NOT_FOUND` or `COUNTERPARTY_VASP_NOT_REACHABLE`
// transfer is stuck, the same value as the transfer's own `reason`, so the list
// tells a bounced compliance email from a counterparty with no route without
// opening each transfer. `""` for any other status. See [Why a transfer is
// stuck](/transaction-monitoring/travel-rule#why-a-transfer-is-stuck).
Reason string `json:"reason"`
Rail TravelRuleTransferRowRail `json:"rail"`
// The transaction's currency.
Asset string `json:"asset"`
// The amount as a plain decimal, for example "1.25".
Amount string `json:"amount"`
// Outbound: your VASP's legal name. Inbound: the counterparty's name, from its
// directory entry, the Didit network member, the TRP sender, the Didit Test
// VASP, or the name the transfer declared. Empty when none is known.
OriginatorVASP string `json:"originator_vasp"`
// Outbound: the counterparty's name, worked out the same way. Inbound: your
// VASP's legal name.
BeneficiaryVASP string `json:"beneficiary_vasp"`
OriginatorWallet string `json:"originator_wallet"`
BeneficiaryWallet string `json:"beneficiary_wallet"`
// Memo or destination tag, empty on chains without one.
OriginatorMemo string `json:"originator_memo"`
BeneficiaryMemo string `json:"beneficiary_memo"`
// vasp, self_hosted (declared unhosted) or own (a wallet your address book
// records as yours). Your own side is always vasp.
OriginatorWalletType TravelRuleTransferRowOriginatorWalletType `json:"originator_wallet_type"`
BeneficiaryWalletType TravelRuleTransferRowBeneficiaryWalletType `json:"beneficiary_wallet_type"`
// The other side of a deposit you matched to an announced transfer by hand.
MatchedTransactionID string `json:"matched_transaction_id"`
// When the transfer expires if it is still waiting on its counterparty. Set on
// every transfer you create with `POST /v3/transactions/` that needs an
// exchange, outbound or inbound. Null below the threshold, on a Lightning
// payment the Travel Rule does not apply to, and on inbound transfers Didit
// creates when a counterparty reaches you (an inbound TRP inquiry, a network
// message or the INTERNAL inbound leg).
DeadlineAt time.Time `json:"deadline_at"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleTransferRow: One Travel Rule transfer as the transfers list shows it: VASP names, wallets and memos only, never the originator or beneficiary person data.
func (*TravelRuleTransferRow) UnmarshalJSON ¶
func (r *TravelRuleTransferRow) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleTransferRow leniently.
type TravelRuleTransferRowBeneficiaryWalletType ¶
type TravelRuleTransferRowBeneficiaryWalletType string
TravelRuleTransferRowBeneficiaryWalletType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowBeneficiaryWalletTypeVASP TravelRuleTransferRowBeneficiaryWalletType = "vasp" TravelRuleTransferRowBeneficiaryWalletTypeSelfHosted TravelRuleTransferRowBeneficiaryWalletType = "self_hosted" TravelRuleTransferRowBeneficiaryWalletTypeOwn TravelRuleTransferRowBeneficiaryWalletType = "own" )
Known values of TravelRuleTransferRowBeneficiaryWalletType.
type TravelRuleTransferRowDirection ¶
type TravelRuleTransferRowDirection string
TravelRuleTransferRowDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowDirectionInbound TravelRuleTransferRowDirection = "INBOUND" TravelRuleTransferRowDirectionOutbound TravelRuleTransferRowDirection = "OUTBOUND" )
Known values of TravelRuleTransferRowDirection.
type TravelRuleTransferRowKind ¶
type TravelRuleTransferRowKind string
TravelRuleTransferRowKind: withdrawal: outbound. message: an inbound transfer a rail created from a counterparty's message (a TRP inquiry, the INTERNAL inbound leg, or a GTR, VerifyVASP or Sygna Bridge message). deposit: any other inbound transfer.
TravelRuleTransferRowKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowKindWithdrawal TravelRuleTransferRowKind = "withdrawal" TravelRuleTransferRowKindDeposit TravelRuleTransferRowKind = "deposit" TravelRuleTransferRowKindMessage TravelRuleTransferRowKind = "message" )
Known values of TravelRuleTransferRowKind.
type TravelRuleTransferRowOriginatorWalletType ¶
type TravelRuleTransferRowOriginatorWalletType string
TravelRuleTransferRowOriginatorWalletType: vasp, self_hosted (declared unhosted) or own (a wallet your address book records as yours). Your own side is always vasp.
TravelRuleTransferRowOriginatorWalletType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowOriginatorWalletTypeVASP TravelRuleTransferRowOriginatorWalletType = "vasp" TravelRuleTransferRowOriginatorWalletTypeSelfHosted TravelRuleTransferRowOriginatorWalletType = "self_hosted" TravelRuleTransferRowOriginatorWalletTypeOwn TravelRuleTransferRowOriginatorWalletType = "own" )
Known values of TravelRuleTransferRowOriginatorWalletType.
type TravelRuleTransferRowRail ¶
type TravelRuleTransferRowRail string
TravelRuleTransferRowRail is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowRailInternal TravelRuleTransferRowRail = "INTERNAL" TravelRuleTransferRowRailTrp TravelRuleTransferRowRail = "TRP" TravelRuleTransferRowRailGtr TravelRuleTransferRowRail = "GTR" TravelRuleTransferRowRailTrust TravelRuleTransferRowRail = "TRUST" TravelRuleTransferRowRailVerifyvasp TravelRuleTransferRowRail = "VERIFYVASP" TravelRuleTransferRowRailSygna TravelRuleTransferRowRail = "SYGNA" TravelRuleTransferRowRailEmail TravelRuleTransferRowRail = "EMAIL" TravelRuleTransferRowRailTestVASP TravelRuleTransferRowRail = "TEST_VASP" )
Known values of TravelRuleTransferRowRail.
type TravelRuleTransferRowStatus ¶
type TravelRuleTransferRowStatus string
TravelRuleTransferRowStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleTransferRowStatusAwaitingCounterparty TravelRuleTransferRowStatus = "AWAITING_COUNTERPARTY" TravelRuleTransferRowStatusOnHold TravelRuleTransferRowStatus = "ON_HOLD" TravelRuleTransferRowStatusCompleted TravelRuleTransferRowStatus = "COMPLETED" TravelRuleTransferRowStatusFinished TravelRuleTransferRowStatus = "FINISHED" TravelRuleTransferRowStatusCancelled TravelRuleTransferRowStatus = "CANCELLED" TravelRuleTransferRowStatusExpired TravelRuleTransferRowStatus = "EXPIRED" TravelRuleTransferRowStatusCounterpartyMismatchedData TravelRuleTransferRowStatus = "COUNTERPARTY_MISMATCHED_DATA" TravelRuleTransferRowStatusCounterpartyVASPNotFound TravelRuleTransferRowStatus = "COUNTERPARTY_VASP_NOT_FOUND" TravelRuleTransferRowStatusCounterpartyVASPNotReachable TravelRuleTransferRowStatus = "COUNTERPARTY_VASP_NOT_REACHABLE" TravelRuleTransferRowStatusUnconfirmedOwnership TravelRuleTransferRowStatus = "UNCONFIRMED_OWNERSHIP" TravelRuleTransferRowStatusCounterpartyVASPGeneralDecline TravelRuleTransferRowStatus = "COUNTERPARTY_VASP_GENERAL_DECLINE" TravelRuleTransferRowStatusNotEnoughCounterpartyData TravelRuleTransferRowStatus = "NOT_ENOUGH_COUNTERPARTY_DATA" TravelRuleTransferRowStatusNotApplicable TravelRuleTransferRowStatus = "NOT_APPLICABLE" )
Known values of TravelRuleTransferRowStatus.
type TravelRuleTransfersListParams ¶
type TravelRuleTransfersListParams struct {
// INBOUND, OUTBOUND, or both comma-separated. Case-sensitive.
Direction Opt[string] `json:"-" query:"direction"`
// One or more transfer statuses, comma-separated.
Status Opt[string] `json:"-" query:"status"`
// One or more of INTERNAL, TRP, GTR, TRUST, VERIFYVASP, SYGNA, EMAIL,
// TEST_VASP, comma-separated.
Rail Opt[string] `json:"-" query:"rail"`
// withdrawal, deposit or message, comma-separated.
Kind Opt[string] `json:"-" query:"kind"`
// The transaction's currency, case-insensitive.
Currency Opt[string] `json:"-" query:"currency"`
// Transfers created on or after this day (UTC), YYYY-MM-DD.
StartDate Opt[string] `json:"-" query:"start_date"`
// Transfers created on or before this day (UTC), YYYY-MM-DD.
EndDate Opt[string] `json:"-" query:"end_date"`
// The `id` of a directory entry or Didit network member from GET
// /v3/travel-rule/vasps/: your transfers with that counterparty. A value that
// is not a valid id answers 400.
Counterparty Opt[string] `json:"-" query:"counterparty"`
// Page size, default 50.
Limit Opt[int64] `json:"-" query:"limit"`
// Rows to skip.
Offset Opt[int64] `json:"-" query:"offset"`
}
TravelRuleTransfersListParams holds the parameters of Client.TravelRule.Transfers.List.
func (TravelRuleTransfersListParams) MarshalJSON ¶
func (r TravelRuleTransfersListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleTransfersService ¶
type TravelRuleTransfersService struct {
// contains filtered or unexported fields
}
TravelRuleTransfersService holds the travel_rule transfers operations. Use it through Client.TravelRule.Transfers.
func (*TravelRuleTransfersService) List ¶
func (r *TravelRuleTransfersService) List(ctx context.Context, params TravelRuleTransfersListParams, opts ...option.RequestOption) (*Page[TravelRuleTransferRow], error)
List: List Travel Rule transfers.
Your application's Travel Rule transfers, newest first, paginated with `limit` (default 50) and `offset`. Rows carry VASP names, wallets and memos only, never person data. Comma-separated values select several. An unknown value answers 400 naming the parameter, for example `{"direction": ["Unknown value(s): inbound."]}`.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/travel-rule/transfers/
func (*TravelRuleTransfersService) ListAutoPaging ¶
func (r *TravelRuleTransfersService) ListAutoPaging(ctx context.Context, params TravelRuleTransfersListParams, opts ...option.RequestOption) *PageIterator[TravelRuleTransferRow]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
type TravelRuleUtxo ¶
type TravelRuleUtxo struct {
// Optional. Without inputs no originator is inferred and no change output is
// recognised.
Inputs Opt[[]TravelRuleUtxoEntryParam] `json:"inputs"`
// Required.
Outputs []TravelRuleUtxoEntryParam `json:"outputs"`
}
TravelRuleUtxo: The inputs and outputs of a UTXO transfer (BTC, LTC, BCH, DOGE). Only accepted on those chains: on any other chain it is a `400`. From them Didit infers the originator wallet (the declared one, else the input address that contributed the most) and the beneficiary output (the declared one, else the only output that does not pay an input address back as change, else the one output paying the transfer amount). The result is on the transfer's `chain_details`.
func (TravelRuleUtxo) MarshalJSON ¶
func (r TravelRuleUtxo) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleUtxoEntry ¶
type TravelRuleUtxoEntry struct {
Address string `json:"address"`
// Decimal string in the coin's own unit (BTC, not satoshis). Optional.
Amount string `json:"amount"`
// Optional. The transaction an input spends.
Txid string `json:"txid"`
// Optional. The output index an input spends.
Vout int64 `json:"vout"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleUtxoEntry: One input or output of a UTXO transaction, as the chain recorded it.
func (*TravelRuleUtxoEntry) UnmarshalJSON ¶
func (r *TravelRuleUtxoEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleUtxoEntry leniently.
type TravelRuleUtxoEntryParam ¶
type TravelRuleUtxoEntryParam struct {
// Required.
Address string `json:"address"`
// Decimal string in the coin's own unit (BTC, not satoshis). Optional.
Amount Opt[string] `json:"amount"`
// Optional. The transaction an input spends.
Txid Opt[string] `json:"txid"`
// Optional. The output index an input spends.
Vout Opt[int64] `json:"vout"`
}
TravelRuleUtxoEntryParam: One input or output of a UTXO transaction, as the chain recorded it.
func (TravelRuleUtxoEntryParam) MarshalJSON ¶
func (r TravelRuleUtxoEntryParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWalletAddressesBulkImportParams ¶
type TravelRuleWalletAddressesBulkImportParams struct {
// Body is the JSON request body: an object or an array. Leave it nil to send
// File instead.
Body any `json:"-" body:"json"`
// A UTF-8 CSV file of at most 5 MB with a header row naming its columns (the
// row fields or their aliases). Empty cells count as not sent; columns the
// import does not read are ignored.
File Opt[File] `json:"-" form:"file"`
}
TravelRuleWalletAddressesBulkImportParams holds the parameters of Client.TravelRule.WalletAddresses.BulkImport.
func (TravelRuleWalletAddressesBulkImportParams) MarshalJSON ¶
func (r TravelRuleWalletAddressesBulkImportParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWalletAddressesListParams ¶
type TravelRuleWalletAddressesListParams struct {
Limit Opt[int64] `json:"-" query:"limit"`
Offset Opt[int64] `json:"-" query:"offset"`
}
TravelRuleWalletAddressesListParams holds the parameters of Client.TravelRule.WalletAddresses.List.
func (TravelRuleWalletAddressesListParams) MarshalJSON ¶
func (r TravelRuleWalletAddressesListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWalletAddressesService ¶
type TravelRuleWalletAddressesService struct {
// contains filtered or unexported fields
}
TravelRuleWalletAddressesService holds the travel_rule wallet_addresses operations. Use it through Client.TravelRule.WalletAddresses.
func (*TravelRuleWalletAddressesService) BulkImport ¶
func (r *TravelRuleWalletAddressesService) BulkImport(ctx context.Context, params TravelRuleWalletAddressesBulkImportParams, opts ...option.RequestOption) (*WalletAddressImportReport, error)
BulkImport: Import wallet addresses in bulk.
Add up to 10,000 wallets to your Travel Rule address book in one call, as JSON or as a CSV file. A wallet can be sent by its address, by the SHA-256 of its lowercased address (`address_hash`) to keep the address private, or both. The import is idempotent: a wallet already in the book is reported as `existing` and left untouched, so the same file can be sent again. Each row is validated on its own, so one bad row never fails the others. A wallet imported by its hash only matches transfers to that address and can be proven with the wallet-ownership widget like any other entry.
POST /v3/travel-rule/wallet-addresses/import/
func (*TravelRuleWalletAddressesService) Create ¶
func (r *TravelRuleWalletAddressesService) Create(ctx context.Context, params WalletAddressEntryCreate, opts ...option.RequestOption) (*WalletAddressEntry, error)
Create: Register a wallet address.
Add an entry to your Travel Rule wallet address book so inbound INTERNAL-rail transfers can resolve against it.
POST /v3/travel-rule/wallet-addresses/
func (*TravelRuleWalletAddressesService) Delete ¶
func (r *TravelRuleWalletAddressesService) Delete(ctx context.Context, entryUUID string, opts ...option.RequestOption) error
Delete: Delete a wallet address.
Deletes the entry together with its ownership proofs and the screenshots they stored. It stops matching new transfers immediately and the address is freed up for re-registration. Transfers that already used the wallet keep their own record of it and read the same. Deletion is irreversible.
DELETE /v3/travel-rule/wallet-addresses/{entry_uuid}/
func (*TravelRuleWalletAddressesService) List ¶
func (r *TravelRuleWalletAddressesService) List(ctx context.Context, params TravelRuleWalletAddressesListParams, opts ...option.RequestOption) (*Page[WalletAddressEntry], error)
List: List wallet address book entries.
Paginated list of your application's Travel Rule wallet address book, newest first.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/travel-rule/wallet-addresses/
func (*TravelRuleWalletAddressesService) ListAutoPaging ¶
func (r *TravelRuleWalletAddressesService) ListAutoPaging(ctx context.Context, params TravelRuleWalletAddressesListParams, opts ...option.RequestOption) *PageIterator[WalletAddressEntry]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*TravelRuleWalletAddressesService) Update ¶
func (r *TravelRuleWalletAddressesService) Update(ctx context.Context, entryUUID string, params WalletAddressEntryUpdateParam, opts ...option.RequestOption) (*WalletAddressEntryUpdate, error)
Update: Update wallet address holder metadata.
Partial update of holder_name, holder_vendor_data, entity_type, and travel_address. Setting travel_address attaches a TRP routing address to the entry; invalid values are rejected with 400. The response echoes only these four fields.
PATCH /v3/travel-rule/wallet-addresses/{entry_uuid}/
type TravelRuleWidgetSessionCreate ¶
type TravelRuleWidgetSessionCreate struct {
// The wallet address to verify. Optional; when empty, the address must be
// supplied when a proof is started.
WalletAddress Opt[string] `json:"wallet_address"`
// Chain token for the address, for example `ETH`, `BTC` or `SOL`. Use the same
// token as in your wallet address book. Message signing and the Satoshi test
// are offered only for a supported chain.
Chain Opt[string] `json:"chain"`
// Name of the wallet holder, used for the beneficiary name match.
HolderName Opt[string] `json:"holder_name"`
// Your internal identifier for the holder, carried onto the created
// address-book entry.
VendorData Opt[string] `json:"vendor_data"`
// Optional. Didit transaction UUID of a Travel Rule transfer to advance when
// the proof verifies.
TransactionID Opt[string] `json:"transaction_id"`
// Optional. A deposit address you control; supplying it enables the
// SATOSHI_TEST proof method.
SatoshiDepositAddress Opt[string] `json:"satoshi_deposit_address"`
// Optional. Absolute http(s) URL where the widget returns the customer after
// completion.
CallbackURL Opt[string] `json:"callback_url"`
// Optional. Lifetime of the minted link, in minutes. Automatically extended to
// cover the Satoshi test window when SATOSHI_TEST is offered.
ExpiresInMinutes Opt[int64] `json:"expires_in_minutes"`
}
TravelRuleWidgetSessionCreate is a request object.
func (TravelRuleWidgetSessionCreate) MarshalJSON ¶
func (r TravelRuleWidgetSessionCreate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWidgetSessionResponse ¶
type TravelRuleWidgetSessionResponse struct {
WidgetSessionID string `json:"widget_session_id"`
// Opaque session token embedded in the widget URL.
Token string `json:"token"`
// The hosted wallet-ownership widget URL. Open it verbatim in the system
// browser (never inside a mobile SDK webview).
URL string `json:"url"`
ExpiresAt time.Time `json:"expires_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWidgetSessionResponse is a response object.
func (*TravelRuleWidgetSessionResponse) UnmarshalJSON ¶
func (r *TravelRuleWidgetSessionResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWidgetSessionResponse leniently.
type TravelRuleWorkspace ¶
type TravelRuleWorkspace struct {
JoinedFree bool `json:"joined_free"`
WorkEmail string `json:"work_email"`
JoinedAt time.Time `json:"joined_at"`
Claim TravelRuleWorkspaceClaim `json:"claim"`
// Profile values taken from the directory entry: `vasp_id`, `legal_name`,
// `lei`, `jurisdiction`, `compliance_email`, `domains`. Nothing is written
// until the claim is made.
Prefill map[string]any `json:"prefill"`
Domain TravelRuleWorkspaceDomain `json:"domain"`
// Receiving Travel Rule data is free. Sending is billed only after billing is
// enabled.
BillingEnabled bool `json:"billing_enabled"`
BillingEnabledAt time.Time `json:"billing_enabled_at"`
// Whether the Didit network lists this VASP and, when not, each condition it
// still misses.
DiditNetwork map[string]any `json:"didit_network"`
Settings TravelRuleSettingsDetail `json:"settings"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWorkspace: The free Travel Rule workspace of an application that joined free.
func (*TravelRuleWorkspace) UnmarshalJSON ¶
func (r *TravelRuleWorkspace) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWorkspace leniently.
type TravelRuleWorkspaceBillingRequest ¶
type TravelRuleWorkspaceBillingRequest struct {
// Only `true` is accepted: outbound billing cannot be turned back off through
// the API.
Enabled Opt[bool] `json:"enabled"`
}
TravelRuleWorkspaceBillingRequest is a request object.
func (TravelRuleWorkspaceBillingRequest) MarshalJSON ¶
func (r TravelRuleWorkspaceBillingRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWorkspaceClaim ¶
type TravelRuleWorkspaceClaim struct {
Status TravelRuleWorkspaceClaimStatus `json:"status"`
ProvedByDomain bool `json:"proved_by_domain"`
ClaimedAt time.Time `json:"claimed_at"`
ReviewedAt time.Time `json:"reviewed_at"`
ReviewNote string `json:"review_note"`
VASPID string `json:"vasp_id"`
VASPName string `json:"vasp_name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWorkspaceClaim is a response object.
func (*TravelRuleWorkspaceClaim) UnmarshalJSON ¶
func (r *TravelRuleWorkspaceClaim) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWorkspaceClaim leniently.
type TravelRuleWorkspaceClaimRequest ¶
type TravelRuleWorkspaceClaimRequest struct {
// The directory entry this workspace is. Read ids from `GET
// /v3/travel-rule/vasps/`. Required.
VASPID string `json:"vasp_id"`
}
TravelRuleWorkspaceClaimRequest is a request object.
func (TravelRuleWorkspaceClaimRequest) MarshalJSON ¶
func (r TravelRuleWorkspaceClaimRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWorkspaceClaimStatus ¶
type TravelRuleWorkspaceClaimStatus string
TravelRuleWorkspaceClaimStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleWorkspaceClaimStatusUnclaimed TravelRuleWorkspaceClaimStatus = "unclaimed" TravelRuleWorkspaceClaimStatusPendingReview TravelRuleWorkspaceClaimStatus = "pending_review" TravelRuleWorkspaceClaimStatusClaimed TravelRuleWorkspaceClaimStatus = "claimed" TravelRuleWorkspaceClaimStatusRejected TravelRuleWorkspaceClaimStatus = "rejected" )
Known values of TravelRuleWorkspaceClaimStatus.
type TravelRuleWorkspaceDomain ¶
type TravelRuleWorkspaceDomain struct {
Domain string `json:"domain"`
Status TravelRuleWorkspaceDomainStatus `json:"status"`
VerifiedAt time.Time `json:"verified_at"`
Txt TravelRuleWorkspaceTxtRecord `json:"txt"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWorkspaceDomain is a response object.
func (*TravelRuleWorkspaceDomain) UnmarshalJSON ¶
func (r *TravelRuleWorkspaceDomain) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWorkspaceDomain leniently.
type TravelRuleWorkspaceDomainCodeResponse ¶
type TravelRuleWorkspaceDomainCodeResponse struct {
Domain string `json:"domain"`
Status TravelRuleWorkspaceDomainCodeResponseStatus `json:"status"`
Txt TravelRuleWorkspaceTxtRecord `json:"txt"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWorkspaceDomainCodeResponse is a response object.
func (*TravelRuleWorkspaceDomainCodeResponse) UnmarshalJSON ¶
func (r *TravelRuleWorkspaceDomainCodeResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWorkspaceDomainCodeResponse leniently.
type TravelRuleWorkspaceDomainCodeResponseStatus ¶
type TravelRuleWorkspaceDomainCodeResponseStatus string
TravelRuleWorkspaceDomainCodeResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleWorkspaceDomainCodeResponseStatusUnverified TravelRuleWorkspaceDomainCodeResponseStatus = "unverified" TravelRuleWorkspaceDomainCodeResponseStatusCodeSent TravelRuleWorkspaceDomainCodeResponseStatus = "code_sent" TravelRuleWorkspaceDomainCodeResponseStatusVerified TravelRuleWorkspaceDomainCodeResponseStatus = "verified" )
Known values of TravelRuleWorkspaceDomainCodeResponseStatus.
type TravelRuleWorkspaceDomainConfirmRequest ¶
type TravelRuleWorkspaceDomainConfirmRequest struct {
// Required.
Code string `json:"code"`
}
TravelRuleWorkspaceDomainConfirmRequest is a request object.
func (TravelRuleWorkspaceDomainConfirmRequest) MarshalJSON ¶
func (r TravelRuleWorkspaceDomainConfirmRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type TravelRuleWorkspaceDomainStatus ¶
type TravelRuleWorkspaceDomainStatus string
TravelRuleWorkspaceDomainStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( TravelRuleWorkspaceDomainStatusUnverified TravelRuleWorkspaceDomainStatus = "unverified" TravelRuleWorkspaceDomainStatusCodeSent TravelRuleWorkspaceDomainStatus = "code_sent" TravelRuleWorkspaceDomainStatusVerified TravelRuleWorkspaceDomainStatus = "verified" )
Known values of TravelRuleWorkspaceDomainStatus.
type TravelRuleWorkspaceService ¶
type TravelRuleWorkspaceService struct {
// contains filtered or unexported fields
}
TravelRuleWorkspaceService holds the travel_rule workspace operations. Use it through Client.TravelRule.Workspace.
func (*TravelRuleWorkspaceService) Claim ¶
func (r *TravelRuleWorkspaceService) Claim(ctx context.Context, params TravelRuleWorkspaceClaimRequest, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
Claim: Claim a directory entry.
Claims the directory entry this workspace is. When the work email is at a domain the entry lists, the claim is proved and applies at once: the VASP profile and Travel Rule settings are filled from the entry and Travel Rule is turned on, so the next transfer to it routes over the Didit network. Otherwise the claim waits for review (`pending_review`).
POST /v3/travel-rule/workspace/claim/
func (*TravelRuleWorkspaceService) ConfirmDomain ¶
func (r *TravelRuleWorkspaceService) ConfirmDomain(ctx context.Context, params TravelRuleWorkspaceDomainConfirmRequest, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
ConfirmDomain: Confirm the domain verification code.
Spends the emailed code and marks the email domain verified.
POST /v3/travel-rule/workspace/domain/confirm/
func (*TravelRuleWorkspaceService) EnableBilling ¶
func (r *TravelRuleWorkspaceService) EnableBilling(ctx context.Context, params TravelRuleWorkspaceBillingRequest, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
EnableBilling: Enable outbound billing.
Turns outbound Travel Rule billing on for the workspace. Receiving stays free. This cannot be turned back off through the API: contact Didit support.
POST /v3/travel-rule/workspace/billing/
func (*TravelRuleWorkspaceService) Get ¶
func (r *TravelRuleWorkspaceService) Get(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
Get: Get the free Travel Rule workspace.
Reads the free workspace of an application that joined free: directory claim, domain proof, billing and Didit network listing.
GET /v3/travel-rule/workspace/
func (*TravelRuleWorkspaceService) SendDomainCode ¶
func (r *TravelRuleWorkspaceService) SendDomainCode(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspaceDomainCodeResponse, error)
SendDomainCode: Email a domain verification code.
Emails a single-use code to the workspace's work address to prove it controls the email domain. Throttled, and a limited number of wrong attempts is accepted per code. Also returns the TXT record for the DNS alternative.
POST /v3/travel-rule/workspace/domain/code/
func (*TravelRuleWorkspaceService) VerifyDomainDNS ¶
func (r *TravelRuleWorkspaceService) VerifyDomainDNS(ctx context.Context, opts ...option.RequestOption) (*TravelRuleWorkspace, error)
VerifyDomainDNS: Verify the domain from its TXT record.
Checks for the `didit-tr-verify.<domain>` TXT record returned by the code endpoint and marks the domain verified when it matches. One of the two proofs, the emailed code or the TXT record, is enough.
POST /v3/travel-rule/workspace/domain/dns/
type TravelRuleWorkspaceTxtRecord ¶
type TravelRuleWorkspaceTxtRecord struct {
Host string `json:"host"`
Value string `json:"value"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
TravelRuleWorkspaceTxtRecord: The TXT record to publish for the DNS proof. Empty until a proof has been started.
func (*TravelRuleWorkspaceTxtRecord) UnmarshalJSON ¶
func (r *TravelRuleWorkspaceTxtRecord) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes TravelRuleWorkspaceTxtRecord leniently.
type UnexpectedResponseError ¶
type UnexpectedResponseError struct {
Message string
Cause error
// Response is the HTTP response, when there is one. Its body reads the
// body as received (with an echoed API key redacted), and its request's
// X-Api-Key header is redacted.
Response *http.Response
}
UnexpectedResponseError reports a response the SDK cannot use: a 2xx response that is not valid JSON, or a next page link to another origin or back to a page already fetched.
func (*UnexpectedResponseError) Error ¶
func (e *UnexpectedResponseError) Error() string
func (*UnexpectedResponseError) Unwrap ¶
func (e *UnexpectedResponseError) Unwrap() error
type UnprocessableEntityError ¶
type UnprocessableEntityError struct{ *APIStatusError }
UnprocessableEntityError is an *APIStatusError with status 422.
func (*UnprocessableEntityError) Unwrap ¶
func (e *UnprocessableEntityError) Unwrap() error
type UserDetailItem ¶
type UserDetailItem struct {
// Didit's stable internal UUID for this user.
DiditInternalID string `json:"didit_internal_id"`
// Your unique identifier for this user (passed when creating sessions). This
// can be null when no vendor identifier was supplied.
VendorData string `json:"vendor_data"`
// Custom display name set by you
DisplayName string `json:"display_name"`
// Full name extracted from verified documents
FullName string `json:"full_name"`
DateOfBirth string `json:"date_of_birth"`
// Best available name: display_name if set, otherwise full_name
EffectiveName string `json:"effective_name"`
// Lifecycle status of the user record (NOT a session status). `ACTIVE` is the
// default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents
// new sessions for this `vendor_data`.
Status UserDetailItemStatus `json:"status"`
// Presigned URL of the user's portrait photo (expires after a few hours)
PortraitImageURL string `json:"portrait_image_url"`
// Total number of verification sessions for this user
SessionCount int64 `json:"session_count"`
// Number of approved sessions
ApprovedCount int64 `json:"approved_count"`
// Number of declined sessions
DeclinedCount int64 `json:"declined_count"`
// Number of sessions in review
InReviewCount int64 `json:"in_review_count"`
// ISO 3166-1 alpha-3 codes of issuing countries seen on this user's approved ID
// documents, e.g. `["USA", "ESP"]`. Empty array when none.
IssuingStates []string `json:"issuing_states"`
// Verified email addresses collected from this user's approved sessions, e.g.
// `["john@example.com"]`.
ApprovedEmails []string `json:"approved_emails"`
// Verified phone numbers collected from this user's approved sessions, e.g.
// `["+14155551234"]`.
ApprovedPhones []string `json:"approved_phones"`
// Aggregated per-feature status across all of this user's sessions. Possible
// keys: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`,
// `QUESTIONNAIRE`, `EMAIL_VERIFICATION`, `PHONE`, `AML`, `IP_ANALYSIS`,
// `AGE_ESTIMATION`, `DATABASE_VALIDATION`. Possible values: `Approved`,
// `Declined`, `In Review`, `Not Finished`, `Resub Requested`.
Features map[string]any `json:"features"`
// Same data as `features`, as an ordered array of `{feature, status}` objects.
FeaturesList []UserDetailItemFeaturesList `json:"features_list"`
// Timestamp of the most recent session
LastSessionAt time.Time `json:"last_session_at"`
// Timestamp of the first session
FirstSessionAt time.Time `json:"first_session_at"`
// Timestamp of the most recent activity on this user (session, transaction,
// status change, data edit, etc.).
LastActivityAt time.Time `json:"last_activity_at"`
// Tags assigned to this user
Tags []UserDetailItemTags `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// Custom metadata JSON you attached to this user. Defaults to `{}`.
Metadata map[string]any `json:"metadata"`
// Activity log and comments for this user (status changes, profile edits,
// manual notes).
Comments []UserDetailItemComments `json:"comments"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserDetailItem: Full user detail. Extends UserListItem with metadata, comments, and updated_at.
func (*UserDetailItem) UnmarshalJSON ¶
func (r *UserDetailItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserDetailItem leniently.
type UserDetailItemComments ¶
type UserDetailItemComments struct {
UUID string `json:"uuid"`
CommentType UserDetailItemCommentsCommentType `json:"comment_type"`
Comment string `json:"comment"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
PreviousStatus UserDetailItemCommentsPreviousStatus `json:"previous_status"`
NewStatus UserDetailItemCommentsNewStatus `json:"new_status"`
// Previous field values for PROFILE_UPDATED entries.
PreviousValue map[string]any `json:"previous_value"`
// New field values for PROFILE_UPDATED entries.
NewValue map[string]any `json:"new_value"`
// Names of the fields changed by a PROFILE_UPDATED entry.
ChangedFields []string `json:"changed_fields"`
Metadata map[string]any `json:"metadata"`
MentionedEmails []string `json:"mentioned_emails"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserDetailItemComments is a response object.
func (*UserDetailItemComments) UnmarshalJSON ¶
func (r *UserDetailItemComments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserDetailItemComments leniently.
type UserDetailItemCommentsCommentType ¶
type UserDetailItemCommentsCommentType string
UserDetailItemCommentsCommentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserDetailItemCommentsCommentTypeComment UserDetailItemCommentsCommentType = "COMMENT" UserDetailItemCommentsCommentTypeStatusChanged UserDetailItemCommentsCommentType = "STATUS_CHANGED" UserDetailItemCommentsCommentTypeMetadataUpdated UserDetailItemCommentsCommentType = "METADATA_UPDATED" UserDetailItemCommentsCommentTypeTagAdded UserDetailItemCommentsCommentType = "TAG_ADDED" UserDetailItemCommentsCommentTypeTagRemoved UserDetailItemCommentsCommentType = "TAG_REMOVED" UserDetailItemCommentsCommentTypeProfileUpdated UserDetailItemCommentsCommentType = "PROFILE_UPDATED" )
Known values of UserDetailItemCommentsCommentType.
type UserDetailItemCommentsNewStatus ¶
type UserDetailItemCommentsNewStatus string
UserDetailItemCommentsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserDetailItemCommentsNewStatusActive UserDetailItemCommentsNewStatus = "ACTIVE" UserDetailItemCommentsNewStatusFlagged UserDetailItemCommentsNewStatus = "FLAGGED" UserDetailItemCommentsNewStatusBlocked UserDetailItemCommentsNewStatus = "BLOCKED" )
Known values of UserDetailItemCommentsNewStatus.
type UserDetailItemCommentsPreviousStatus ¶
type UserDetailItemCommentsPreviousStatus string
UserDetailItemCommentsPreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserDetailItemCommentsPreviousStatusActive UserDetailItemCommentsPreviousStatus = "ACTIVE" UserDetailItemCommentsPreviousStatusFlagged UserDetailItemCommentsPreviousStatus = "FLAGGED" UserDetailItemCommentsPreviousStatusBlocked UserDetailItemCommentsPreviousStatus = "BLOCKED" )
Known values of UserDetailItemCommentsPreviousStatus.
type UserDetailItemFeaturesList ¶
type UserDetailItemFeaturesList struct {
Feature string `json:"feature"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserDetailItemFeaturesList is a response object.
func (*UserDetailItemFeaturesList) UnmarshalJSON ¶
func (r *UserDetailItemFeaturesList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserDetailItemFeaturesList leniently.
type UserDetailItemStatus ¶
type UserDetailItemStatus string
UserDetailItemStatus: Lifecycle status of the user record (NOT a session status). `ACTIVE` is the default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents new sessions for this `vendor_data`.
UserDetailItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserDetailItemStatusActive UserDetailItemStatus = "ACTIVE" UserDetailItemStatusFlagged UserDetailItemStatus = "FLAGGED" UserDetailItemStatusBlocked UserDetailItemStatus = "BLOCKED" )
Known values of UserDetailItemStatus.
type UserDetailItemTags ¶
type UserDetailItemTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Tag UserDetailItemTagsTag `json:"tag"`
AddedByEmail string `json:"added_by_email"`
AddedByName string `json:"added_by_name"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserDetailItemTags is a response object.
func (*UserDetailItemTags) UnmarshalJSON ¶
func (r *UserDetailItemTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserDetailItemTags leniently.
type UserDetailItemTagsTag ¶
type UserDetailItemTagsTag struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description"`
Source UserDetailItemTagsTagSource `json:"source"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserDetailItemTagsTag is a response object.
func (*UserDetailItemTagsTag) UnmarshalJSON ¶
func (r *UserDetailItemTagsTag) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserDetailItemTagsTag leniently.
type UserDetailItemTagsTagSource ¶
type UserDetailItemTagsTagSource string
UserDetailItemTagsTagSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserDetailItemTagsTagSourceDidit UserDetailItemTagsTagSource = "didit" UserDetailItemTagsTagSourceCustom UserDetailItemTagsTagSource = "custom" )
Known values of UserDetailItemTagsTagSource.
type UserListItem ¶
type UserListItem struct {
// Didit's stable internal UUID for this user.
DiditInternalID string `json:"didit_internal_id"`
// Your unique identifier for this user (passed when creating sessions). This
// can be null when no vendor identifier was supplied.
VendorData string `json:"vendor_data"`
// Custom display name set by you
DisplayName string `json:"display_name"`
// Full name extracted from verified documents
FullName string `json:"full_name"`
DateOfBirth string `json:"date_of_birth"`
// Best available name: display_name if set, otherwise full_name
EffectiveName string `json:"effective_name"`
// Lifecycle status of the user record (NOT a session status). `ACTIVE` is the
// default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents
// new sessions for this `vendor_data`.
Status UserListItemStatus `json:"status"`
// Presigned URL of the user's portrait photo (expires after a few hours)
PortraitImageURL string `json:"portrait_image_url"`
// Total number of verification sessions for this user
SessionCount int64 `json:"session_count"`
// Number of approved sessions
ApprovedCount int64 `json:"approved_count"`
// Number of declined sessions
DeclinedCount int64 `json:"declined_count"`
// Number of sessions in review
InReviewCount int64 `json:"in_review_count"`
// ISO 3166-1 alpha-3 codes of issuing countries seen on this user's approved ID
// documents, e.g. `["USA", "ESP"]`. Empty array when none.
IssuingStates []string `json:"issuing_states"`
// Verified email addresses collected from this user's approved sessions, e.g.
// `["john@example.com"]`.
ApprovedEmails []string `json:"approved_emails"`
// Verified phone numbers collected from this user's approved sessions, e.g.
// `["+14155551234"]`.
ApprovedPhones []string `json:"approved_phones"`
// Aggregated per-feature status across all of this user's sessions. Possible
// keys: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`,
// `QUESTIONNAIRE`, `EMAIL_VERIFICATION`, `PHONE`, `AML`, `IP_ANALYSIS`,
// `AGE_ESTIMATION`, `DATABASE_VALIDATION`. Possible values: `Approved`,
// `Declined`, `In Review`, `Not Finished`, `Resub Requested`.
Features map[string]any `json:"features"`
// Same data as `features`, as an ordered array of `{feature, status}` objects.
FeaturesList []UserListItemFeaturesList `json:"features_list"`
// Timestamp of the most recent session
LastSessionAt time.Time `json:"last_session_at"`
// Timestamp of the first session
FirstSessionAt time.Time `json:"first_session_at"`
// Timestamp of the most recent activity on this user (session, transaction,
// status change, data edit, etc.).
LastActivityAt time.Time `json:"last_activity_at"`
// Tags assigned to this user
Tags []UserListItemTags `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserListItem: A verified user.
func (*UserListItem) UnmarshalJSON ¶
func (r *UserListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserListItem leniently.
type UserListItemFeaturesList ¶
type UserListItemFeaturesList struct {
Feature string `json:"feature"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserListItemFeaturesList is a response object.
func (*UserListItemFeaturesList) UnmarshalJSON ¶
func (r *UserListItemFeaturesList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserListItemFeaturesList leniently.
type UserListItemStatus ¶
type UserListItemStatus string
UserListItemStatus: Lifecycle status of the user record (NOT a session status). `ACTIVE` is the default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents new sessions for this `vendor_data`.
UserListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UserListItemStatusActive UserListItemStatus = "ACTIVE" UserListItemStatusFlagged UserListItemStatus = "FLAGGED" UserListItemStatusBlocked UserListItemStatus = "BLOCKED" )
Known values of UserListItemStatus.
type UserListItemTags ¶
type UserListItemTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UserListItemTags is a response object.
func (*UserListItemTags) UnmarshalJSON ¶
func (r *UserListItemTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UserListItemTags leniently.
type UsersBatchDeleteParams ¶
type UsersBatchDeleteParams struct {
// Your own identifiers to delete, matched exactly as sent.
VendorDataList Opt[[]string] `json:"vendor_data_list"`
// Didit internal user IDs to delete - the `didit_internal_id` returned by the
// create and get endpoints.
DiditInternalIDList Opt[[]string] `json:"didit_internal_id_list"`
// If `true`, deletes every user in the application.
DeleteAll Opt[bool] `json:"delete_all"`
}
UsersBatchDeleteParams holds the parameters of Client.Users.BatchDelete.
func (UsersBatchDeleteParams) MarshalJSON ¶
func (r UsersBatchDeleteParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersBatchDeleteResponse ¶
type UsersBatchDeleteResponse struct {
// Number of users deleted (excludes vendor_data values that didn't match
// anything).
Deleted int64 `json:"deleted"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersBatchDeleteResponse is a response object.
func (*UsersBatchDeleteResponse) UnmarshalJSON ¶
func (r *UsersBatchDeleteResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersBatchDeleteResponse leniently.
type UsersCreateParams ¶
type UsersCreateParams struct {
// Your unique identifier for this user (free-form string, NOT a UUID). Must be
// unique among the application's users; matched exactly as sent. Required.
VendorData string `json:"vendor_data"`
// Full legal name of the user.
FullName Opt[string] `json:"full_name"`
// Friendly display name shown in the console (takes precedence over `full_name`
// for UI display).
DisplayName Opt[string] `json:"display_name"`
// Date of birth in `YYYY-MM-DD` format.
DateOfBirth Opt[string] `json:"date_of_birth"`
// Initial lifecycle status. Defaults to `ACTIVE`.
Status Opt[UsersCreateParamsStatus] `json:"status"`
// Arbitrary JSON object you attach to the user. Defaults to `{}`.
Metadata Opt[map[string]any] `json:"metadata"`
// Pre-trusted email addresses for this user, e.g. `["john@example.com"]`.
ApprovedEmails Opt[[]string] `json:"approved_emails"`
// Pre-trusted phone numbers for this user, e.g. `["+14155551234"]`.
ApprovedPhones Opt[[]string] `json:"approved_phones"`
// Pre-recorded issuing countries (ISO 3166-1 alpha-3), e.g. `["USA"]`.
IssuingStates Opt[[]string] `json:"issuing_states"`
// Given name. When `full_name` is not sent, Didit joins `first_name` and
// `last_name` with a space into `full_name`. Not returned as a separate field.
FirstName Opt[string] `json:"first_name"`
// Family name. Joined with `first_name` into `full_name` when `full_name` is
// not sent. Not returned as a separate field.
LastName Opt[string] `json:"last_name"`
// Contact email, stored in `metadata.contact.email` (it replaces an `email` you
// send inside `metadata.contact`). Required when `send_verification_link` is
// `true`: the link is sent to this address. If `metadata.contact` is not a JSON
// object, the call answers `400` on this field.
Email Opt[string] `json:"email"`
// Contact phone number, stored in `metadata.contact.phone_number`. If
// `metadata.contact` is not a JSON object, the call answers `400` on this
// field.
PhoneNumber Opt[string] `json:"phone_number"`
// Country as an ISO 3166 code, alpha-2 or alpha-3 (`ES` or `ESP`). Stored
// uppercased in `metadata.address.country`. If `metadata.address` is not a JSON
// object, the call answers `400` on this field.
Country Opt[string] `json:"country"`
// When `true`, Didit creates a verification session for the person on
// `workflow_id` and emails them the link at `email`. Requires `email` and
// `workflow_id`. A scoped API key also needs `sessions` write.
SendVerificationLink Opt[bool] `json:"send_verification_link"`
// The workflow of the verification session. Required when
// `send_verification_link` is `true`. It must verify a person: a Business
// Verification (KYB) workflow is refused. Ignored otherwise.
WorkflowID Opt[string] `json:"workflow_id"`
// Language of the verification email, as a [supported
// language](/integration/supported-languages) code. English when omitted.
// Ignored when `send_verification_link` is not `true`.
Language Opt[string] `json:"language"`
}
UsersCreateParams holds the parameters of Client.Users.Create.
func (UsersCreateParams) MarshalJSON ¶
func (r UsersCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersCreateParamsStatus ¶
type UsersCreateParamsStatus string
UsersCreateParamsStatus: Initial lifecycle status. Defaults to `ACTIVE`.
UsersCreateParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateParamsStatusActive UsersCreateParamsStatus = "ACTIVE" UsersCreateParamsStatusFlagged UsersCreateParamsStatus = "FLAGGED" UsersCreateParamsStatusBlocked UsersCreateParamsStatus = "BLOCKED" )
Known values of UsersCreateParamsStatus.
type UsersCreateResponse ¶
type UsersCreateResponse struct {
// Didit's stable internal UUID for this user.
DiditInternalID string `json:"didit_internal_id"`
// Your unique identifier for this user (passed when creating sessions). This
// can be null when no vendor identifier was supplied.
VendorData string `json:"vendor_data"`
// Custom display name set by you
DisplayName string `json:"display_name"`
// Full name extracted from verified documents
FullName string `json:"full_name"`
DateOfBirth string `json:"date_of_birth"`
// Best available name: display_name if set, otherwise full_name
EffectiveName string `json:"effective_name"`
// Lifecycle status of the user record (NOT a session status). `ACTIVE` is the
// default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents
// new sessions for this `vendor_data`.
Status UsersCreateResponseStatus `json:"status"`
// Presigned URL of the user's portrait photo (expires after a few hours)
PortraitImageURL string `json:"portrait_image_url"`
// Total number of verification sessions for this user
SessionCount int64 `json:"session_count"`
// Number of approved sessions
ApprovedCount int64 `json:"approved_count"`
// Number of declined sessions
DeclinedCount int64 `json:"declined_count"`
// Number of sessions in review
InReviewCount int64 `json:"in_review_count"`
// ISO 3166-1 alpha-3 codes of issuing countries seen on this user's approved ID
// documents, e.g. `["USA", "ESP"]`. Empty array when none.
IssuingStates []string `json:"issuing_states"`
// Verified email addresses collected from this user's approved sessions, e.g.
// `["john@example.com"]`.
ApprovedEmails []string `json:"approved_emails"`
// Verified phone numbers collected from this user's approved sessions, e.g.
// `["+14155551234"]`.
ApprovedPhones []string `json:"approved_phones"`
// Aggregated per-feature status across all of this user's sessions. Possible
// keys: `ID_VERIFICATION`, `NFC`, `LIVENESS`, `FACE_MATCH`, `POA`,
// `QUESTIONNAIRE`, `EMAIL_VERIFICATION`, `PHONE`, `AML`, `IP_ANALYSIS`,
// `AGE_ESTIMATION`, `DATABASE_VALIDATION`. Possible values: `Approved`,
// `Declined`, `In Review`, `Not Finished`, `Resub Requested`.
Features map[string]any `json:"features"`
// Same data as `features`, as an ordered array of `{feature, status}` objects.
FeaturesList []UsersCreateResponseFeaturesList `json:"features_list"`
// Timestamp of the most recent session
LastSessionAt time.Time `json:"last_session_at"`
// Timestamp of the first session
FirstSessionAt time.Time `json:"first_session_at"`
// Timestamp of the most recent activity on this user (session, transaction,
// status change, data edit, etc.).
LastActivityAt time.Time `json:"last_activity_at"`
// Tags assigned to this user
Tags []UsersCreateResponseTags `json:"tags"`
CreatedAt time.Time `json:"created_at"`
// Custom metadata JSON you attached to this user. Defaults to `{}`.
Metadata map[string]any `json:"metadata"`
// Activity log and comments for this user (status changes, profile edits,
// manual notes).
Comments []UsersCreateResponseComments `json:"comments"`
UpdatedAt time.Time `json:"updated_at"`
// The verification session Didit created and emailed to the person. Always
// present: `null` when `send_verification_link` was not `true`.
VerificationLink UsersCreateResponseVerificationLink `json:"verification_link"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponse is a response object.
func (*UsersCreateResponse) UnmarshalJSON ¶
func (r *UsersCreateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponse leniently.
type UsersCreateResponseComments ¶
type UsersCreateResponseComments struct {
UUID string `json:"uuid"`
CommentType UsersCreateResponseCommentsCommentType `json:"comment_type"`
Comment string `json:"comment"`
ActorEmail string `json:"actor_email"`
ActorName string `json:"actor_name"`
PreviousStatus UsersCreateResponseCommentsPreviousStatus `json:"previous_status"`
NewStatus UsersCreateResponseCommentsNewStatus `json:"new_status"`
// Previous field values for PROFILE_UPDATED entries.
PreviousValue map[string]any `json:"previous_value"`
// New field values for PROFILE_UPDATED entries.
NewValue map[string]any `json:"new_value"`
// Names of the fields changed by a PROFILE_UPDATED entry.
ChangedFields []string `json:"changed_fields"`
Metadata map[string]any `json:"metadata"`
MentionedEmails []string `json:"mentioned_emails"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponseComments is a response object.
func (*UsersCreateResponseComments) UnmarshalJSON ¶
func (r *UsersCreateResponseComments) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponseComments leniently.
type UsersCreateResponseCommentsCommentType ¶
type UsersCreateResponseCommentsCommentType string
UsersCreateResponseCommentsCommentType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateResponseCommentsCommentTypeComment UsersCreateResponseCommentsCommentType = "COMMENT" UsersCreateResponseCommentsCommentTypeStatusChanged UsersCreateResponseCommentsCommentType = "STATUS_CHANGED" UsersCreateResponseCommentsCommentTypeMetadataUpdated UsersCreateResponseCommentsCommentType = "METADATA_UPDATED" UsersCreateResponseCommentsCommentTypeTagAdded UsersCreateResponseCommentsCommentType = "TAG_ADDED" UsersCreateResponseCommentsCommentTypeTagRemoved UsersCreateResponseCommentsCommentType = "TAG_REMOVED" UsersCreateResponseCommentsCommentTypeProfileUpdated UsersCreateResponseCommentsCommentType = "PROFILE_UPDATED" )
Known values of UsersCreateResponseCommentsCommentType.
type UsersCreateResponseCommentsNewStatus ¶
type UsersCreateResponseCommentsNewStatus string
UsersCreateResponseCommentsNewStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateResponseCommentsNewStatusActive UsersCreateResponseCommentsNewStatus = "ACTIVE" UsersCreateResponseCommentsNewStatusFlagged UsersCreateResponseCommentsNewStatus = "FLAGGED" UsersCreateResponseCommentsNewStatusBlocked UsersCreateResponseCommentsNewStatus = "BLOCKED" )
Known values of UsersCreateResponseCommentsNewStatus.
type UsersCreateResponseCommentsPreviousStatus ¶
type UsersCreateResponseCommentsPreviousStatus string
UsersCreateResponseCommentsPreviousStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateResponseCommentsPreviousStatusActive UsersCreateResponseCommentsPreviousStatus = "ACTIVE" UsersCreateResponseCommentsPreviousStatusFlagged UsersCreateResponseCommentsPreviousStatus = "FLAGGED" UsersCreateResponseCommentsPreviousStatusBlocked UsersCreateResponseCommentsPreviousStatus = "BLOCKED" )
Known values of UsersCreateResponseCommentsPreviousStatus.
type UsersCreateResponseFeaturesList ¶
type UsersCreateResponseFeaturesList struct {
Feature string `json:"feature"`
Status string `json:"status"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponseFeaturesList is a response object.
func (*UsersCreateResponseFeaturesList) UnmarshalJSON ¶
func (r *UsersCreateResponseFeaturesList) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponseFeaturesList leniently.
type UsersCreateResponseStatus ¶
type UsersCreateResponseStatus string
UsersCreateResponseStatus: Lifecycle status of the user record (NOT a session status). `ACTIVE` is the default, `FLAGGED` marks the user for manual attention, `BLOCKED` prevents new sessions for this `vendor_data`.
UsersCreateResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateResponseStatusActive UsersCreateResponseStatus = "ACTIVE" UsersCreateResponseStatusFlagged UsersCreateResponseStatus = "FLAGGED" UsersCreateResponseStatusBlocked UsersCreateResponseStatus = "BLOCKED" )
Known values of UsersCreateResponseStatus.
type UsersCreateResponseTags ¶
type UsersCreateResponseTags struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Tag UsersCreateResponseTagsTag `json:"tag"`
AddedByEmail string `json:"added_by_email"`
AddedByName string `json:"added_by_name"`
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponseTags is a response object.
func (*UsersCreateResponseTags) UnmarshalJSON ¶
func (r *UsersCreateResponseTags) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponseTags leniently.
type UsersCreateResponseTagsTag ¶
type UsersCreateResponseTagsTag struct {
UUID string `json:"uuid"`
Name string `json:"name"`
Color string `json:"color"`
Description string `json:"description"`
Source UsersCreateResponseTagsTagSource `json:"source"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponseTagsTag is a response object.
func (*UsersCreateResponseTagsTag) UnmarshalJSON ¶
func (r *UsersCreateResponseTagsTag) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponseTagsTag leniently.
type UsersCreateResponseTagsTagSource ¶
type UsersCreateResponseTagsTagSource string
UsersCreateResponseTagsTagSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersCreateResponseTagsTagSourceDidit UsersCreateResponseTagsTagSource = "didit" UsersCreateResponseTagsTagSourceCustom UsersCreateResponseTagsTagSource = "custom" )
Known values of UsersCreateResponseTagsTagSource.
type UsersCreateResponseVerificationLink ¶
type UsersCreateResponseVerificationLink struct {
// ID of the verification session.
SessionID string `json:"session_id"`
// Sequential number of the session inside your application.
SessionNumber int64 `json:"session_number"`
// Status of the session, `Not Started` for a session that was just created.
Status string `json:"status"`
// The verification link Didit emailed to the person.
URL string `json:"url"`
// The workflow the session runs.
WorkflowID string `json:"workflow_id"`
// The address the link was sent to.
Email string `json:"email"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersCreateResponseVerificationLink: The verification session Didit created and emailed to the person. Always present: `null` when `send_verification_link` was not `true`.
func (*UsersCreateResponseVerificationLink) UnmarshalJSON ¶
func (r *UsersCreateResponseVerificationLink) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersCreateResponseVerificationLink leniently.
type UsersListParams ¶
type UsersListParams struct {
// Page size. Defaults to 50 when omitted. There is no enforced maximum, but
// keep pages small for latency.
Limit Opt[int64] `json:"-" query:"limit"`
// Zero-based offset of the first record to return. Prefer following the `next`
// URL from the previous page over computing this by hand.
Offset Opt[int64] `json:"-" query:"offset"`
}
UsersListParams holds the parameters of Client.Users.List.
func (UsersListParams) MarshalJSON ¶
func (r UsersListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersService ¶
type UsersService struct {
// contains filtered or unexported fields
}
UsersService holds the users operations. Use it through Client.Users.
func (*UsersService) BatchDelete ¶
func (r *UsersService) BatchDelete(ctx context.Context, params UsersBatchDeleteParams, opts ...option.RequestOption) (*UsersBatchDeleteResponse, error)
BatchDelete: Batch delete users.
**Permanently delete** users: the user records are removed permanently. For everyday blocking prefer [Update User Status](#patch-/v3/users/-vendor_data-/update-status/) with `BLOCKED`. Select users with `vendor_data_list`, with `didit_internal_id_list`, or with both at once; or pass `delete_all: true`. This endpoint never narrows `delete_all` with filters. The Console's People filters are refused with a `400` (see the `400` response), so a narrowed intent does not turn into a full wipe. Two exceptions: `filter_has_approved_sessions` and `filter_has_declined_sessions` are not refused and not applied, so with `delete_all: true` they still delete every user; do not send them.
**Biometric templates:** every image-free biometric template retained for these users after session deletion (see `/v3/biometric-templates/`) is purged before the user is deleted, so the person stops matching in duplicate detection and Face Search. If a template cannot be purged because a biometric store is unavailable, the call returns `503`, no user in the request is deleted, and repeating the request finishes the job.
POST /v3/users/delete/
func (*UsersService) Create ¶
func (r *UsersService) Create(ctx context.Context, params UsersCreateParams, opts ...option.RequestOption) (*UsersCreateResponse, error)
Create: Create user.
Create a [user](/entities/users) by `vendor_data`, before or without a verification session. `vendor_data` must be unique among the application's users (a duplicate returns `400`). Not idempotent.
**Contact details:** `email` and `phone_number` are stored in `metadata.contact`, and `country` in `metadata.address`. When you send `first_name` or `last_name` without `full_name`, Didit joins them into `full_name`.
**Verification link:** with `send_verification_link: true`, Didit also creates a verification session for the person on `workflow_id` and emails them the link at `email`. The session runs the same checks as [Create Session](/sessions-api/create-session), such as the blocklist and your credit balance. The person and the session are created together or not at all: if any check fails, nothing is written and no email is sent. The response's `verification_link` describes the session, and is `null` when you don't ask for a link.
**API key access:** a scoped API key needs `users` write. With `send_verification_link: true` it also needs `sessions` write, or the call answers `403` before anything is written. Full-access keys are unaffected. See [API keys](/console/api-keys).
POST /v3/users/create/
func (*UsersService) GeneratePDF ¶
func (r *UsersService) GeneratePDF(ctx context.Context, vendorData string, opts ...option.RequestOption) (*http.Response, error)
GeneratePDF: Download the full user history PDF report.
Render and download one compliance-ready PDF containing the full verification history of the user identified by `vendor_data`. It is the same document the Console produces from **User detail → Actions → Download PDF**, so periodic compliance exports no longer need a person clicking in the Console.
**What the report contains.** A cover page with the profile summary (name, date of birth, issuing states, approved emails and phones), the latest status of every feature, the session counters and an index of the sessions included - followed by the standard report of every included session, in chronological order (oldest first). Each session report is the same document `GET /v3/session/{sessionId}/generate-pdf/` returns for that session.
**Eligible sessions.** Only User Verification (KYC) sessions in `Approved`, `Declined`, `In Review` or `Kyc Expired` are included; sessions in any other status are skipped. If the user has no session in one of those statuses the endpoint returns `403` - see below.
**Cap.** The report is capped at the **20 most recent** reportable sessions. When a user has more, the newest 20 are included and the cover page states how many older sessions were left out. Use `GET /v3/sessions/?vendor_data=…` for the complete list as JSON.
**Branding.** If your application has white-label customization, the cover and every session report are rendered with your logo and privacy-policy URL; otherwise they carry Didit branding. Reports are rendered in English - there is no language parameter.
**No caching.** Every call re-renders the PDF from the current data, so a report generated after a manual review reflects the reviewer's decision. Two calls for the same user can produce byte-different files - archive the downloaded file if you need an immutable copy.
**Latency.** Rendering is synchronous and downloads every stored image of every included session, so a user with many media-heavy sessions can take tens of seconds. Use a generous client read timeout (120 s recommended) and stream the body to disk. Generation stops at a server-side time budget instead of running until your client gives up: if that budget is reached, the response is still a valid PDF containing the most recent sessions, and the cover states how many were omitted.
**Scope.** The user is resolved inside the application that owns the API key. A key can never export a user of another application - such a user does not exist for it and the endpoint returns `404`.
**Trailing slash.** The canonical route ends with a trailing slash (`…/generate-pdf/`). A request without it is served directly with the same response - there is no `301` redirect, so no client has to follow redirects and `curl` does not need `-L`. Use the slashed URL as in the samples.
The response is a file (application/pdf). Read it from the returned response's body and close it.
GET /v3/users/{vendor_data}/generate-pdf/
func (*UsersService) List ¶
func (r *UsersService) List(ctx context.Context, params UsersListParams, opts ...option.RequestOption) (*Page[UserListItem], error)
List: List users.
List [users](/entities/users) Didit assembles from KYC sessions sharing the same `vendor_data` (free-form string, NOT a UUID), plus users created via the API. Paginated, ordered by `last_session_at` desc. This endpoint does not support filtering or search parameters - fetch pages and filter client-side.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/users/
func (*UsersService) ListAutoPaging ¶
func (r *UsersService) ListAutoPaging(ctx context.Context, params UsersListParams, opts ...option.RequestOption) *PageIterator[UserListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*UsersService) ListNetworks ¶
func (r *UsersService) ListNetworks(ctx context.Context, vendorUserUUID string, opts ...option.RequestOption) (*EntityNetworkMembershipList, error)
ListNetworks: List networks for a user.
List the networks a vendor user belongs to.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/users/{vendor_user_uuid}/networks/
func (*UsersService) Retrieve ¶
func (r *UsersService) Retrieve(ctx context.Context, vendorData string, opts ...option.RequestOption) (*UserDetailItem, error)
Retrieve: Get user.
Fetch one [user](/entities/users) by `vendor_data` (exact match). Adds `metadata`, `comments`, and `updated_at` to the list view, and switches `tags` to the detailed tag-link shape.
GET /v3/users/{vendor_data}/
func (*UsersService) RetrieveOngoingMonitoringJob ¶
func (r *UsersService) RetrieveOngoingMonitoringJob(ctx context.Context, jobID string, opts ...option.RequestOption) (*OngoingMonitoringJob, error)
RetrieveOngoingMonitoringJob: Get AML ongoing monitoring job.
Progress and per-outcome counters of a monitoring toggle job. Poll every couple of seconds while status is PENDING or PROCESSING.
The organization and application ids come from the client options.
GET /v3/organization/{organization_id}/application/{application_id}/vendor-users/toggle-ongoing-monitoring/{job_id}/
func (*UsersService) SetAMLMonitoring ¶
func (r *UsersService) SetAMLMonitoring(ctx context.Context, params UsersSetAMLMonitoringParams, opts ...option.RequestOption) (*UsersSetAMLMonitoringResponse, error)
SetAMLMonitoring: Enable or disable AML ongoing monitoring for users.
Turns AML ongoing monitoring on or off for the selected users, with the same semantics as the Business Console. Exactly one monitored AML screening is kept per user, so a profile that verified several times is monitored and billed once; disabling turns monitoring off across all of the profile's screenings. Users without any AML screening are screened first (billed as a regular AML screening) when they have the full name, date of birth and country needed; otherwise they are reported as `skipped_no_identity_data`.
Set `estimate_only: true` to preview counts and costs without writing anything. Selections of 20 profiles or fewer resolve inline and return `200` with the completed job; larger selections return `202` and run in the background - poll [Get AML monitoring job](#get-/v3/aml-monitoring/jobs/-job_id-/) with the returned `job_id`. Enabling is refused with `403` when the organization balance does not cover the estimate. Identifiers that match nothing are listed in `unmatched` and never fail the request: a selection that matches nothing completes as an empty job (`total` 0), the same convention as the batch delete endpoints.
POST /v3/users/aml-monitoring/
func (*UsersService) SetOngoingMonitoring ¶
func (r *UsersService) SetOngoingMonitoring(ctx context.Context, params OngoingMonitoringToggleRequest, opts ...option.RequestOption) (*UsersSetOngoingMonitoringResponse, error)
SetOngoingMonitoring: Toggle AML ongoing monitoring for users.
Enables or disables AML ongoing monitoring at the user level. Exactly one monitored AML screening is kept per user; users without any AML screening (for example imported users) get one created and screened first, billed as a regular AML screening. Set estimate_only to preview counts and costs without writing. Batches of 20 or fewer resolve inline (200, COMPLETED); larger batches return 202 and run asynchronously.
The organization and application ids come from the client options.
PATCH /v3/organization/{organization_id}/application/{application_id}/vendor-users/toggle-ongoing-monitoring/
func (*UsersService) Update ¶
func (r *UsersService) Update(ctx context.Context, vendorData string, params UsersUpdateParams, opts ...option.RequestOption) (*UserDetailItem, error)
Update: Update user.
Partial update of a user: `display_name`, `full_name`, `date_of_birth`, `status`, `metadata`, `approved_emails`/`approved_phones`/`issuing_states`. `metadata` fully replaces. Changing `status` here works like [Update User Status](#patch-/v3/users/-vendor_data-/update-status/): it records a `STATUS_CHANGED` activity with the optional `reason`, and `BLOCKED` adds the `vendor_data` to the system blocklist (moving away from `BLOCKED` removes that entry). Changes to `display_name`, `full_name`, `date_of_birth` or `metadata` are recorded as a `PROFILE_UPDATED` activity.
PATCH /v3/users/{vendor_data}/
func (*UsersService) UpdateStatus ¶
func (r *UsersService) UpdateStatus(ctx context.Context, vendorData string, params UsersUpdateStatusParams, opts ...option.RequestOption) (*UserDetailItem, error)
UpdateStatus: Update user status.
Flip only the lifecycle `status` of a user: `ACTIVE`, `FLAGGED` or `BLOCKED` (not session statuses). `BLOCKED` adds the `vendor_data` to the system blocklist; moving away from `BLOCKED` removes that entry. Each change is recorded as a `STATUS_CHANGED` activity on the user, with the optional `reason` as its `comment`. Sending the current status changes nothing and records no `reason`. The `user.status.updated` webhook does not carry `reason`.
PATCH /v3/users/{vendor_data}/update-status/
func (*UsersService) UploadFace ¶
func (r *UsersService) UploadFace(ctx context.Context, diditInternalID string, params UsersUploadFaceParams, opts ...option.RequestOption) (*UsersUploadFaceResponse, error)
UploadFace: Upload user face.
Attach a trusted imported face image to an existing User profile. Use this after creating or retrieving a User by `vendor_data` and reading its `didit_internal_id`. The uploaded face is stored on the User profile and indexed for duplicate detection and face search. It is not added to a face blocklist.
The organization and application ids come from the client options.
POST /v3/organization/{organization_id}/application/{application_id}/vendor-users/by-id/{didit_internal_id}/faces/upload/
type UsersSetAMLMonitoringParams ¶
type UsersSetAMLMonitoringParams struct {
// true to enable monitoring, false to disable it. Required.
IsEnabled bool `json:"is_enabled"`
// When true, returns the cost estimate and performs no writes - no screening,
// no billing, no job.
EstimateOnly Opt[bool] `json:"estimate_only"`
// Your own identifiers of the users to toggle, matched exactly as sent.
VendorDataList Opt[[]string] `json:"vendor_data_list"`
// Didit internal ids of the users to toggle - the `didit_internal_id` returned
// by the create, get and list endpoints.
DiditInternalIDList Opt[[]string] `json:"didit_internal_id_list"`
}
UsersSetAMLMonitoringParams holds the parameters of Client.Users.SetAMLMonitoring.
func (UsersSetAMLMonitoringParams) MarshalJSON ¶
func (r UsersSetAMLMonitoringParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersSetAMLMonitoringResponse ¶
type UsersSetAMLMonitoringResponse struct {
JobID string `json:"job_id"`
Status UsersSetAMLMonitoringResponseStatus `json:"status"`
// true when the job enables monitoring, false when it disables it.
IsEnabled bool `json:"is_enabled"`
// Which profile family the job toggles.
TargetType UsersSetAMLMonitoringResponseTargetType `json:"target_type"`
// Profiles the job processes.
Total int64 `json:"total"`
// Profiles processed so far.
Processed int64 `json:"processed"`
// Per-record outcome counters. Every selected profile resolves to exactly one
// counter; nothing is silently skipped.
Outcomes UsersSetAMLMonitoringResponseOutcomes `json:"outcomes"`
// One entry per processed profile, in processing order. Grows while the job
// runs; complete once status is COMPLETED. Recorded for jobs started through
// the API.
Results []UsersSetAMLMonitoringResponseResults `json:"results"`
// Generic failure message when status is FAILED; the detailed cause is kept on
// the platform side.
Error string `json:"error"`
CreatedAt time.Time `json:"created_at"`
CompletedAt time.Time `json:"completed_at"`
// Cost preview. Returned directly when estimate_only is true (nothing is
// written).
Estimate UsersSetAMLMonitoringResponseEstimate `json:"estimate"`
// Identifiers of the request that matched no profile in this application,
// exactly as sent. They are not part of the job.
Unmatched []string `json:"unmatched"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetAMLMonitoringResponse is a response object.
func (*UsersSetAMLMonitoringResponse) UnmarshalJSON ¶
func (r *UsersSetAMLMonitoringResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetAMLMonitoringResponse leniently.
type UsersSetAMLMonitoringResponseEstimate ¶
type UsersSetAMLMonitoringResponseEstimate struct {
// Profiles matched by the selection.
UsersTotal int64 `json:"users_total"`
// Profiles already monitored (nothing to do when enabling; these are what
// disabling turns off).
AlreadyEnabled int64 `json:"already_enabled"`
// Profiles whose existing AML screening will be switched to monitored (no new
// screening).
WithExistingAML int64 `json:"with_existing_aml"`
// Profiles without any AML screening that will be screened first (billed as a
// regular AML screening).
NeedingScreening int64 `json:"needing_screening"`
// Profiles that cannot be screened because identity data is missing.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Blocked users that will be skipped (always 0 for businesses).
SkippedBlocked int64 `json:"skipped_blocked"`
// One-time cost of the new screenings.
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
// Yearly monitoring cost of the profiles that will become monitored.
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
// Whether the organization balance covers the screening plus the first year of
// monitoring.
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetAMLMonitoringResponseEstimate: Cost preview. Returned directly when estimate_only is true (nothing is written).
func (*UsersSetAMLMonitoringResponseEstimate) UnmarshalJSON ¶
func (r *UsersSetAMLMonitoringResponseEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetAMLMonitoringResponseEstimate leniently.
type UsersSetAMLMonitoringResponseOutcomes ¶
type UsersSetAMLMonitoringResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled on it.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active; nothing changed and nothing was billed.
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring turned off across every AML screening of the profile.
Disabled int64 `json:"disabled"`
// Skipped: the profile lacks the full name, date of birth and country (users)
// or a name (businesses) needed to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application, no screening is created.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening could not be completed; retry later.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out while the job was running.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetAMLMonitoringResponseOutcomes: Per-record outcome counters. Every selected profile resolves to exactly one counter; nothing is silently skipped.
func (*UsersSetAMLMonitoringResponseOutcomes) UnmarshalJSON ¶
func (r *UsersSetAMLMonitoringResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetAMLMonitoringResponseOutcomes leniently.
type UsersSetAMLMonitoringResponseResults ¶
type UsersSetAMLMonitoringResponseResults struct {
// Didit internal id of the profile.
DiditInternalID string `json:"didit_internal_id"`
// Your own identifier for the profile.
VendorData string `json:"vendor_data"`
Outcome UsersSetAMLMonitoringResponseResultsOutcome `json:"outcome"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetAMLMonitoringResponseResults is a response object.
func (*UsersSetAMLMonitoringResponseResults) UnmarshalJSON ¶
func (r *UsersSetAMLMonitoringResponseResults) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetAMLMonitoringResponseResults leniently.
type UsersSetAMLMonitoringResponseResultsOutcome ¶
type UsersSetAMLMonitoringResponseResultsOutcome string
UsersSetAMLMonitoringResponseResultsOutcome is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersSetAMLMonitoringResponseResultsOutcomeEnabled UsersSetAMLMonitoringResponseResultsOutcome = "enabled" UsersSetAMLMonitoringResponseResultsOutcomeScreenedAndEnabled UsersSetAMLMonitoringResponseResultsOutcome = "screened_and_enabled" UsersSetAMLMonitoringResponseResultsOutcomeAlreadyEnabled UsersSetAMLMonitoringResponseResultsOutcome = "already_enabled" UsersSetAMLMonitoringResponseResultsOutcomeDisabled UsersSetAMLMonitoringResponseResultsOutcome = "disabled" UsersSetAMLMonitoringResponseResultsOutcomeSkippedNoIdentityData UsersSetAMLMonitoringResponseResultsOutcome = "skipped_no_identity_data" UsersSetAMLMonitoringResponseResultsOutcomeSkippedBlocked UsersSetAMLMonitoringResponseResultsOutcome = "skipped_blocked" UsersSetAMLMonitoringResponseResultsOutcomeSkippedSandbox UsersSetAMLMonitoringResponseResultsOutcome = "skipped_sandbox" UsersSetAMLMonitoringResponseResultsOutcomeFailedProvider UsersSetAMLMonitoringResponseResultsOutcome = "failed_provider" UsersSetAMLMonitoringResponseResultsOutcomeFailedInsufficientBalance UsersSetAMLMonitoringResponseResultsOutcome = "failed_insufficient_balance" )
Known values of UsersSetAMLMonitoringResponseResultsOutcome.
type UsersSetAMLMonitoringResponseStatus ¶
type UsersSetAMLMonitoringResponseStatus string
UsersSetAMLMonitoringResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersSetAMLMonitoringResponseStatusPending UsersSetAMLMonitoringResponseStatus = "PENDING" UsersSetAMLMonitoringResponseStatusProcessing UsersSetAMLMonitoringResponseStatus = "PROCESSING" UsersSetAMLMonitoringResponseStatusCompleted UsersSetAMLMonitoringResponseStatus = "COMPLETED" UsersSetAMLMonitoringResponseStatusFailed UsersSetAMLMonitoringResponseStatus = "FAILED" )
Known values of UsersSetAMLMonitoringResponseStatus.
type UsersSetAMLMonitoringResponseTargetType ¶
type UsersSetAMLMonitoringResponseTargetType string
UsersSetAMLMonitoringResponseTargetType: Which profile family the job toggles.
UsersSetAMLMonitoringResponseTargetType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersSetAMLMonitoringResponseTargetTypeUser UsersSetAMLMonitoringResponseTargetType = "user" UsersSetAMLMonitoringResponseTargetTypeBusiness UsersSetAMLMonitoringResponseTargetType = "business" )
Known values of UsersSetAMLMonitoringResponseTargetType.
type UsersSetOngoingMonitoringResponse ¶
type UsersSetOngoingMonitoringResponse struct {
JobID string `json:"job_id"`
Status UsersSetOngoingMonitoringResponseStatus `json:"status"`
IsEnabled bool `json:"is_enabled"`
Total int64 `json:"total"`
Processed int64 `json:"processed"`
// Per-entity outcome counters. Nothing is silently skipped: every requested
// entity resolves to exactly one counter.
Outcomes UsersSetOngoingMonitoringResponseOutcomes `json:"outcomes"`
Error string `json:"error"`
// Cost preview. Returned directly when estimate_only is true (no writes are
// performed).
Estimate UsersSetOngoingMonitoringResponseEstimate `json:"estimate"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetOngoingMonitoringResponse is a response object.
func (*UsersSetOngoingMonitoringResponse) UnmarshalJSON ¶
func (r *UsersSetOngoingMonitoringResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetOngoingMonitoringResponse leniently.
type UsersSetOngoingMonitoringResponseEstimate ¶
type UsersSetOngoingMonitoringResponseEstimate struct {
// Entities in the selection.
UsersTotal int64 `json:"users_total"`
AlreadyEnabled int64 `json:"already_enabled"`
// Entities whose existing AML screening will be switched to monitored.
WithExistingAML int64 `json:"with_existing_aml"`
// Entities without any AML screening that will be screened first (billed).
NeedingScreening int64 `json:"needing_screening"`
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
SkippedBlocked int64 `json:"skipped_blocked"`
EstimatedScreeningCostUsd float64 `json:"estimated_screening_cost_usd"`
EstimatedAnnualMonitoringCostUsd float64 `json:"estimated_annual_monitoring_cost_usd"`
BalanceSufficient bool `json:"balance_sufficient"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetOngoingMonitoringResponseEstimate: Cost preview. Returned directly when estimate_only is true (no writes are performed).
func (*UsersSetOngoingMonitoringResponseEstimate) UnmarshalJSON ¶
func (r *UsersSetOngoingMonitoringResponseEstimate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetOngoingMonitoringResponseEstimate leniently.
type UsersSetOngoingMonitoringResponseOutcomes ¶
type UsersSetOngoingMonitoringResponseOutcomes struct {
// Monitoring enabled on an existing AML screening.
Enabled int64 `json:"enabled"`
// A new AML screening was created (billed) and monitoring enabled.
ScreenedAndEnabled int64 `json:"screened_and_enabled"`
// Monitoring was already active (legacy duplicate rows are consolidated).
AlreadyEnabled int64 `json:"already_enabled"`
// Monitoring disabled on every AML row of the entity.
Disabled int64 `json:"disabled"`
// Skipped: no full name + date of birth + country available to screen.
SkippedNoIdentityData int64 `json:"skipped_no_identity_data"`
// Skipped: the user is blocked.
SkippedBlocked int64 `json:"skipped_blocked"`
// Skipped: sandbox application.
SkippedSandbox int64 `json:"skipped_sandbox"`
// The screening provider call failed.
FailedProvider int64 `json:"failed_provider"`
// Balance ran out mid-job.
FailedInsufficientBalance int64 `json:"failed_insufficient_balance"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersSetOngoingMonitoringResponseOutcomes: Per-entity outcome counters. Nothing is silently skipped: every requested entity resolves to exactly one counter.
func (*UsersSetOngoingMonitoringResponseOutcomes) UnmarshalJSON ¶
func (r *UsersSetOngoingMonitoringResponseOutcomes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersSetOngoingMonitoringResponseOutcomes leniently.
type UsersSetOngoingMonitoringResponseStatus ¶
type UsersSetOngoingMonitoringResponseStatus string
UsersSetOngoingMonitoringResponseStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersSetOngoingMonitoringResponseStatusPending UsersSetOngoingMonitoringResponseStatus = "PENDING" UsersSetOngoingMonitoringResponseStatusProcessing UsersSetOngoingMonitoringResponseStatus = "PROCESSING" UsersSetOngoingMonitoringResponseStatusCompleted UsersSetOngoingMonitoringResponseStatus = "COMPLETED" UsersSetOngoingMonitoringResponseStatusFailed UsersSetOngoingMonitoringResponseStatus = "FAILED" )
Known values of UsersSetOngoingMonitoringResponseStatus.
type UsersUpdateParams ¶
type UsersUpdateParams struct {
// Full name of the user
FullName Opt[string] `json:"full_name"`
// Custom display name for this user
DisplayName Opt[string] `json:"display_name"`
// Date of birth in YYYY-MM-DD format
DateOfBirth Opt[string] `json:"date_of_birth"`
// User lifecycle status. A change is recorded as a `STATUS_CHANGED` activity,
// and `BLOCKED` adds the `vendor_data` to the system blocklist (moving away
// from `BLOCKED` removes that entry).
Status Opt[UsersUpdateParamsStatus] `json:"status"`
// Arbitrary JSON object you attach to the user. **Fully replaces** the existing
// metadata on update - merge client-side if you only want to add keys.
Metadata Opt[map[string]any] `json:"metadata"`
// Verified email addresses for this user, e.g. `["john@example.com"]`. Fully
// replaces the stored list.
ApprovedEmails Opt[[]string] `json:"approved_emails"`
// Verified phone numbers for this user. Fully replaces the stored list.
ApprovedPhones Opt[[]string] `json:"approved_phones"`
// Issuing countries (ISO 3166-1 alpha-3), e.g. `["USA"]`. Fully replaces the
// stored list.
IssuingStates Opt[[]string] `json:"issuing_states"`
// Why the status changed. Recorded on the status-change entry of the user's
// activity (`comments[].comment`, and **Activity** in the Business Console),
// only when the status actually changes. Webhooks do not carry it.
Reason Opt[string] `json:"reason"`
}
UsersUpdateParams holds the parameters of Client.Users.Update.
func (UsersUpdateParams) MarshalJSON ¶
func (r UsersUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersUpdateParamsStatus ¶
type UsersUpdateParamsStatus string
UsersUpdateParamsStatus: User lifecycle status. A change is recorded as a `STATUS_CHANGED` activity, and `BLOCKED` adds the `vendor_data` to the system blocklist (moving away from `BLOCKED` removes that entry).
UsersUpdateParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersUpdateParamsStatusActive UsersUpdateParamsStatus = "ACTIVE" UsersUpdateParamsStatusFlagged UsersUpdateParamsStatus = "FLAGGED" UsersUpdateParamsStatusBlocked UsersUpdateParamsStatus = "BLOCKED" )
Known values of UsersUpdateParamsStatus.
type UsersUpdateStatusParams ¶
type UsersUpdateStatusParams struct {
// New lifecycle status. `BLOCKED` also adds the `vendor_data` to the system
// blocklist. Required.
Status UsersUpdateStatusParamsStatus `json:"status"`
// Why the status changed. Recorded on the status-change entry of the user's
// activity (`comments[].comment`, and **Activity** in the Business Console),
// only when the status actually changes. Webhooks do not carry it.
Reason Opt[string] `json:"reason"`
}
UsersUpdateStatusParams holds the parameters of Client.Users.UpdateStatus.
func (UsersUpdateStatusParams) MarshalJSON ¶
func (r UsersUpdateStatusParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersUpdateStatusParamsStatus ¶
type UsersUpdateStatusParamsStatus string
UsersUpdateStatusParamsStatus: New lifecycle status. `BLOCKED` also adds the `vendor_data` to the system blocklist.
UsersUpdateStatusParamsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( UsersUpdateStatusParamsStatusActive UsersUpdateStatusParamsStatus = "ACTIVE" UsersUpdateStatusParamsStatusFlagged UsersUpdateStatusParamsStatus = "FLAGGED" UsersUpdateStatusParamsStatusBlocked UsersUpdateStatusParamsStatus = "BLOCKED" )
Known values of UsersUpdateStatusParamsStatus.
type UsersUploadFaceParams ¶
type UsersUploadFaceParams struct {
// Raw base64-encoded JPG or PNG face image. Do not include a
// `data:image/...;base64,` prefix. Max decoded size: 2 MB. Required.
Image string `json:"image"`
// Optional operator-visible note for the uploaded face.
Comment Opt[string] `json:"comment"`
}
UsersUploadFaceParams holds the parameters of Client.Users.UploadFace.
func (UsersUploadFaceParams) MarshalJSON ¶
func (r UsersUploadFaceParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type UsersUploadFaceResponse ¶
type UsersUploadFaceResponse struct {
// UUID of the uploaded User face record.
UUID string `json:"uuid"`
// Signed URL for the uploaded face image.
ImageURL string `json:"image_url"`
// Comment supplied when the face was uploaded.
Comment string `json:"comment"`
// Email or actor identifier of the uploader when available.
UploadedBy string `json:"uploaded_by"`
// Upload timestamp.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
UsersUploadFaceResponse is a response object.
func (*UsersUploadFaceResponse) UnmarshalJSON ¶
func (r *UsersUploadFaceResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes UsersUploadFaceResponse leniently.
type VASPDirectoryEntry ¶
type VASPDirectoryEntry struct {
// The entry's id, for GET /v3/travel-rule/vasps/{vasp_id}/.
ID string `json:"id"`
// directory for an entry of the shared directory; didit for a member of the
// Didit network.
Kind VASPDirectoryEntryKind `json:"kind"`
Name string `json:"name"`
Lei string `json:"lei"`
// ISO 3166 country code, as the source gives it.
Jurisdiction string `json:"jurisdiction"`
// The VASP's web domains. Always empty for Didit network members.
Domains []string `json:"domains"`
// Whether your application has an available route to this VASP, or to one of
// its entities for a brand. Always true for a Didit network member, except on a
// sandbox application, where every row is false.
Reachable bool `json:"reachable"`
// Other names the VASP is found by.
Aliases []VASPDirectoryEntryAliases `json:"aliases"`
Networks []VASPDirectoryEntryNetworks `json:"networks"`
Routes []VASPDirectoryEntryRoutes `json:"routes"`
// The brand this entry is a regulated entity of. Null when it is not part of
// one.
Umbrella VASPDirectoryEntryUmbrella `json:"umbrella"`
// For a brand, the regulated entities that receive its transfers. A transfer
// naming the brand goes to the reachable entity in the jurisdiction it states
// (beneficiary_data.counterparty_vasp_jurisdiction), else to the entity
// blockchain analytics attribution linked to the destination wallet, else to
// the only reachable entity when no jurisdiction is stated. Two entities that
// fit equally are never guessed between.
Entities []VASPDirectoryEntryEntities `json:"entities"`
// The platform's contacts for this VASP and your application's own.
Contacts []VASPDirectoryEntryContacts `json:"contacts"`
// Didit's verification status of the entry, scored by the verification
// component of dd_score. Always COMPLETED for a Didit network member.
DdStatus VASPDirectoryEntryDdStatus `json:"dd_status"`
// The shared due-diligence score of a directory entry, 0 to 100, where higher
// is safer (see dd_score_semantic): the sum of the points in
// dd_score_breakdown. Null for a Didit network member, which is not scored. An
// entry not assessed yet (dd_assessed_at null) shows 0 with an empty
// risk_level, so read risk_level rather than the raw score.
DdScore int64 `json:"dd_score"`
// Rails recorded on the entry. Read routes for what your application can use
// today.
ReachableRails []VASPDirectoryEntryReachableRails `json:"reachable_rails"`
// true for a member of the Didit network (dd_status is always COMPLETED,
// dd_score null and risk_level empty for these) and for a directory entry
// linked to a Didit customer.
IsDiditCustomer bool `json:"is_didit_customer"`
// One object per component of dd_score. Components, their weight (max) and
// their reason codes: jurisdiction, 25 (jurisdiction_not_high_risk,
// jurisdiction_high_risk, jurisdiction_unknown); verification, 15
// (dd_status_completed, dd_status_in_progress, dd_status_not_started,
// dd_status_rejected); protocol, 15 (native_rail, email_only, no_rail); lei, 10
// (lei_valid, lei_missing); history, 10 (history, no_history); essentials, 15
// (essential_checks, no_essential_checks); responsiveness, 10 (responsive,
// unresponsive, responsiveness_unknown). Empty for a Didit network member.
DdScoreBreakdown map[string]VASPDirectoryEntryDdScoreBreakdown `json:"dd_score_breakdown"`
// When dd_score, risk_level and responsiveness were last computed: after an
// exchange with the entry completes, finishes, expires, mismatches or is
// declined, when Didit refreshes or curates the entry, and in the weekly
// directory refresh. Null for a Didit network member.
DdAssessedAt time.Time `json:"dd_assessed_at"`
// Which way dd_score points: always higher_is_safer.
DdScoreSemantic VASPDirectoryEntryDdScoreSemantic `json:"dd_score_semantic"`
// The band dd_score falls in: LOW (70 or more), MEDIUM (40 to 69) or HIGH
// (below 40). Empty for a Didit network member and for an entry not assessed
// yet. Filter on it with risk. Your own flagged screening never changes this
// shared value: it makes counterparty_risk_level HIGH in your rules instead.
RiskLevel VASPDirectoryEntryRiskLevel `json:"risk_level"`
// Whether the VASP answers Travel Rule requests: the share of the requests
// Didit customers started towards it in the last 90 days that it answered. Only
// requests sent over a network or protocol rail, or by email to a shared
// address (the entry's compliance address or a platform contact), count; a
// request sent to an address a customer typed, or to a customer's private
// contact, never does. An expired request is unanswered; a completed exchange,
// a decline or a data mismatch is an answer; a cancelled request or an
// unreachable rail is neither. Always UNKNOWN with zero counts for a Didit
// network member.
Responsiveness VASPDirectoryEntryResponsiveness `json:"responsiveness"`
// The essential-checks report of a directory entry, built only from the
// platform's verified sources: registration (an official register lists the
// VASP: the EU's interim MiCA register, the public TRISA directory or the
// global LEI register), licence (a MiCA authorisation is on record and
// current), domain (the entry's domain matches its TRP endpoint or the website
// its register gives) and lei (its LEI record is active, issued and consistent
// with the entry's names and country). The essentials component of dd_score is
// the share of decided checks that pass. Empty until the weekly directory
// refresh first checks the entry, and always empty for a Didit network member.
EssentialChecks VASPDirectoryEntryEssentialChecks `json:"essential_checks"`
// Your application's decision on this VASP, or for an entity with no decision
// of its own its brand's (inherited_from names the brand). Null when there is
// none. Private to your application.
Decision TravelRuleCounterpartyDecision `json:"decision"`
// Your application's latest sanctions and adverse-media screening of this VASP.
// Null when you never screened it. Private to your application.
EntityScreening TravelRuleCounterpartyScreening `json:"entity_screening"`
// Your application's due-diligence questionnaires with this VASP, newest first.
// Private to your application.
Questionnaires []TravelRuleCounterpartyQuestionnaire `json:"questionnaires"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntry: A VASP of the directory or a member of the Didit network, with the routes your application has to it. A customer is a member of the Didit network only while its application is live, its Travel Rule is on, its profile is discoverable, has a legal name and a confirmed compliance email, and Didit has not marked the application as a test, demo or internal one. Each row also carries the shared due-diligence assessment (dd_score, risk_level, responsiveness, essential_checks) and your application's own decision, entity screening and questionnaires, which no other customer sees.
func (*VASPDirectoryEntry) UnmarshalJSON ¶
func (r *VASPDirectoryEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntry leniently.
type VASPDirectoryEntryAliases ¶
type VASPDirectoryEntryAliases struct {
Name string `json:"name"`
// trading_name, other_legal_name (from the global LEI register), network_name
// (the name on a Travel Rule network), attribution (the entity name blockchain
// analytics gives the VASP's wallets), merged (the name of a duplicate entry
// merged into this one) or staff.
Kind VASPDirectoryEntryAliasesKind `json:"kind"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryAliases is a response object.
func (*VASPDirectoryEntryAliases) UnmarshalJSON ¶
func (r *VASPDirectoryEntryAliases) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryAliases leniently.
type VASPDirectoryEntryAliasesKind ¶
type VASPDirectoryEntryAliasesKind string
VASPDirectoryEntryAliasesKind: trading_name, other_legal_name (from the global LEI register), network_name (the name on a Travel Rule network), attribution (the entity name blockchain analytics gives the VASP's wallets), merged (the name of a duplicate entry merged into this one) or staff.
VASPDirectoryEntryAliasesKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryAliasesKindTradingName VASPDirectoryEntryAliasesKind = "trading_name" VASPDirectoryEntryAliasesKindOtherLegalName VASPDirectoryEntryAliasesKind = "other_legal_name" VASPDirectoryEntryAliasesKindNetworkName VASPDirectoryEntryAliasesKind = "network_name" VASPDirectoryEntryAliasesKindAttribution VASPDirectoryEntryAliasesKind = "attribution" VASPDirectoryEntryAliasesKindMerged VASPDirectoryEntryAliasesKind = "merged" VASPDirectoryEntryAliasesKindStaff VASPDirectoryEntryAliasesKind = "staff" )
Known values of VASPDirectoryEntryAliasesKind.
type VASPDirectoryEntryContacts ¶
type VASPDirectoryEntryContacts struct {
ID string `json:"id"`
Email string `json:"email"`
Name string `json:"name"`
// staff: curated by Didit; application: added by your application; learned: an
// address that answered a Travel Rule request through its response link.
Source VASPDirectoryEntryContactsSource `json:"source"`
// platform contacts are used for every Didit customer's transfers; application
// contacts are private to your application, which sees only its own.
Scope VASPDirectoryEntryContactsScope `json:"scope"`
// When someone at this address answered a request. Null when it has not yet.
VerifiedAt time.Time `json:"verified_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryContacts: A compliance contact the EMAIL rail can write to.
func (*VASPDirectoryEntryContacts) UnmarshalJSON ¶
func (r *VASPDirectoryEntryContacts) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryContacts leniently.
type VASPDirectoryEntryContactsScope ¶
type VASPDirectoryEntryContactsScope string
VASPDirectoryEntryContactsScope: platform contacts are used for every Didit customer's transfers; application contacts are private to your application, which sees only its own.
VASPDirectoryEntryContactsScope is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryContactsScopePlatform VASPDirectoryEntryContactsScope = "platform" VASPDirectoryEntryContactsScopeApplication VASPDirectoryEntryContactsScope = "application" )
Known values of VASPDirectoryEntryContactsScope.
type VASPDirectoryEntryContactsSource ¶
type VASPDirectoryEntryContactsSource string
VASPDirectoryEntryContactsSource: staff: curated by Didit; application: added by your application; learned: an address that answered a Travel Rule request through its response link.
VASPDirectoryEntryContactsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryContactsSourceStaff VASPDirectoryEntryContactsSource = "staff" VASPDirectoryEntryContactsSourceApplication VASPDirectoryEntryContactsSource = "application" VASPDirectoryEntryContactsSourceLearned VASPDirectoryEntryContactsSource = "learned" )
Known values of VASPDirectoryEntryContactsSource.
type VASPDirectoryEntryDdScoreBreakdown ¶
type VASPDirectoryEntryDdScoreBreakdown struct {
// Points the component contributes, rounded to one decimal.
Points float64 `json:"points"`
// The component's weight: the points it contributes at best.
Max int64 `json:"max"`
// Machine-readable code of the component's verdict.
Reason string `json:"reason"`
// One-line English explanation.
Detail string `json:"detail"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryDdScoreBreakdown is a response object.
func (*VASPDirectoryEntryDdScoreBreakdown) UnmarshalJSON ¶
func (r *VASPDirectoryEntryDdScoreBreakdown) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryDdScoreBreakdown leniently.
type VASPDirectoryEntryDdScoreSemantic ¶
type VASPDirectoryEntryDdScoreSemantic string
VASPDirectoryEntryDdScoreSemantic: Which way dd_score points: always higher_is_safer.
VASPDirectoryEntryDdScoreSemantic is a string with known values below. The set is open: other values may appear and never cause an error.
const (
VASPDirectoryEntryDdScoreSemanticHigherIsSafer VASPDirectoryEntryDdScoreSemantic = "higher_is_safer"
)
Known values of VASPDirectoryEntryDdScoreSemantic.
type VASPDirectoryEntryDdStatus ¶
type VASPDirectoryEntryDdStatus string
VASPDirectoryEntryDdStatus: Didit's verification status of the entry, scored by the verification component of dd_score. Always COMPLETED for a Didit network member.
VASPDirectoryEntryDdStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryDdStatusNotStarted VASPDirectoryEntryDdStatus = "NOT_STARTED" VASPDirectoryEntryDdStatusInProgress VASPDirectoryEntryDdStatus = "IN_PROGRESS" VASPDirectoryEntryDdStatusCompleted VASPDirectoryEntryDdStatus = "COMPLETED" VASPDirectoryEntryDdStatusRejected VASPDirectoryEntryDdStatus = "REJECTED" )
Known values of VASPDirectoryEntryDdStatus.
type VASPDirectoryEntryEntities ¶
type VASPDirectoryEntryEntities struct {
ID string `json:"id"`
Name string `json:"name"`
Lei string `json:"lei"`
Jurisdiction string `json:"jurisdiction"`
// Whether your application has an available route to it.
Reachable bool `json:"reachable"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryEntities: A regulated entity of a brand: the legal entity that receives a transfer.
func (*VASPDirectoryEntryEntities) UnmarshalJSON ¶
func (r *VASPDirectoryEntryEntities) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryEntities leniently.
type VASPDirectoryEntryEssentialChecks ¶
type VASPDirectoryEntryEssentialChecks struct {
Level VASPDirectoryEntryEssentialChecksLevel `json:"level"`
CheckedAt time.Time `json:"checked_at"`
Checks []VASPDirectoryEntryEssentialChecksChecks `json:"checks"`
Passed int64 `json:"passed"`
Failed int64 `json:"failed"`
Unknown int64 `json:"unknown"`
Total int64 `json:"total"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryEssentialChecks: The essential-checks report of a directory entry, built only from the platform's verified sources: registration (an official register lists the VASP: the EU's interim MiCA register, the public TRISA directory or the global LEI register), licence (a MiCA authorisation is on record and current), domain (the entry's domain matches its TRP endpoint or the website its register gives) and lei (its LEI record is active, issued and consistent with the entry's names and country). The essentials component of dd_score is the share of decided checks that pass. Empty until the weekly directory refresh first checks the entry, and always empty for a Didit network member.
func (*VASPDirectoryEntryEssentialChecks) UnmarshalJSON ¶
func (r *VASPDirectoryEntryEssentialChecks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryEssentialChecks leniently.
type VASPDirectoryEntryEssentialChecksChecks ¶
type VASPDirectoryEntryEssentialChecksChecks struct {
ID VASPDirectoryEntryEssentialChecksChecksID `json:"id"`
// unknown when no source on record can decide the check.
Status VASPDirectoryEntryEssentialChecksChecksStatus `json:"status"`
// Machine-readable code of the verdict.
Reason string `json:"reason"`
// One-line English explanation.
Detail string `json:"detail"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryEssentialChecksChecks is a response object.
func (*VASPDirectoryEntryEssentialChecksChecks) UnmarshalJSON ¶
func (r *VASPDirectoryEntryEssentialChecksChecks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryEssentialChecksChecks leniently.
type VASPDirectoryEntryEssentialChecksChecksID ¶
type VASPDirectoryEntryEssentialChecksChecksID string
VASPDirectoryEntryEssentialChecksChecksID is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryEssentialChecksChecksIDRegistration VASPDirectoryEntryEssentialChecksChecksID = "registration" VASPDirectoryEntryEssentialChecksChecksIDLicence VASPDirectoryEntryEssentialChecksChecksID = "licence" VASPDirectoryEntryEssentialChecksChecksIDDomain VASPDirectoryEntryEssentialChecksChecksID = "domain" VASPDirectoryEntryEssentialChecksChecksIDLei VASPDirectoryEntryEssentialChecksChecksID = "lei" )
Known values of VASPDirectoryEntryEssentialChecksChecksID.
type VASPDirectoryEntryEssentialChecksChecksStatus ¶
type VASPDirectoryEntryEssentialChecksChecksStatus string
VASPDirectoryEntryEssentialChecksChecksStatus: unknown when no source on record can decide the check.
VASPDirectoryEntryEssentialChecksChecksStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryEssentialChecksChecksStatusPass VASPDirectoryEntryEssentialChecksChecksStatus = "pass" VASPDirectoryEntryEssentialChecksChecksStatusFail VASPDirectoryEntryEssentialChecksChecksStatus = "fail" VASPDirectoryEntryEssentialChecksChecksStatusUnknown VASPDirectoryEntryEssentialChecksChecksStatus = "unknown" )
Known values of VASPDirectoryEntryEssentialChecksChecksStatus.
type VASPDirectoryEntryEssentialChecksLevel ¶
type VASPDirectoryEntryEssentialChecksLevel string
VASPDirectoryEntryEssentialChecksLevel is a string with known values below. The set is open: other values may appear and never cause an error.
const (
VASPDirectoryEntryEssentialChecksLevelEssential VASPDirectoryEntryEssentialChecksLevel = "essential"
)
Known values of VASPDirectoryEntryEssentialChecksLevel.
type VASPDirectoryEntryKind ¶
type VASPDirectoryEntryKind string
VASPDirectoryEntryKind: directory for an entry of the shared directory; didit for a member of the Didit network.
VASPDirectoryEntryKind is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryKindDirectory VASPDirectoryEntryKind = "directory" VASPDirectoryEntryKindDidit VASPDirectoryEntryKind = "didit" )
Known values of VASPDirectoryEntryKind.
type VASPDirectoryEntryNetworks ¶
type VASPDirectoryEntryNetworks struct {
Network VASPDirectoryEntryNetworksNetwork `json:"network"`
// The VASP's identifier on that network.
Code string `json:"code"`
// The name the network lists the VASP under.
ListedName string `json:"listed_name"`
// The country the network lists, when it gives one.
Country string `json:"country"`
// When Didit staff verified the listing. Null for listings read from a public
// directory.
VerifiedAt time.Time `json:"verified_at"`
// When the source last showed the listing. A listing the source has not shown
// for three weeks is removed.
LastSeenAt time.Time `json:"last_seen_at"`
// Where the listing comes from: the public TRISA directory, or Didit staff.
Source VASPDirectoryEntryNetworksSource `json:"source"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryNetworks: A current listing of this VASP in a Travel Rule network's member directory. A TRISA listing says who the VASP is on TRISA; Didit has no TRISA rail, so it is never a route.
func (*VASPDirectoryEntryNetworks) UnmarshalJSON ¶
func (r *VASPDirectoryEntryNetworks) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryNetworks leniently.
type VASPDirectoryEntryNetworksNetwork ¶
type VASPDirectoryEntryNetworksNetwork string
VASPDirectoryEntryNetworksNetwork is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryNetworksNetworkGtr VASPDirectoryEntryNetworksNetwork = "GTR" VASPDirectoryEntryNetworksNetworkTrust VASPDirectoryEntryNetworksNetwork = "TRUST" VASPDirectoryEntryNetworksNetworkVerifyvasp VASPDirectoryEntryNetworksNetwork = "VERIFYVASP" VASPDirectoryEntryNetworksNetworkSygna VASPDirectoryEntryNetworksNetwork = "SYGNA" VASPDirectoryEntryNetworksNetworkTrisa VASPDirectoryEntryNetworksNetwork = "TRISA" )
Known values of VASPDirectoryEntryNetworksNetwork.
type VASPDirectoryEntryNetworksSource ¶
type VASPDirectoryEntryNetworksSource string
VASPDirectoryEntryNetworksSource: Where the listing comes from: the public TRISA directory, or Didit staff.
VASPDirectoryEntryNetworksSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryNetworksSourceTrisaDirectory VASPDirectoryEntryNetworksSource = "trisa_directory" VASPDirectoryEntryNetworksSourceStaff VASPDirectoryEntryNetworksSource = "staff" )
Known values of VASPDirectoryEntryNetworksSource.
type VASPDirectoryEntryReachableRails ¶
type VASPDirectoryEntryReachableRails string
VASPDirectoryEntryReachableRails is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryReachableRailsInternal VASPDirectoryEntryReachableRails = "INTERNAL" VASPDirectoryEntryReachableRailsTrp VASPDirectoryEntryReachableRails = "TRP" VASPDirectoryEntryReachableRailsGtr VASPDirectoryEntryReachableRails = "GTR" VASPDirectoryEntryReachableRailsTrust VASPDirectoryEntryReachableRails = "TRUST" VASPDirectoryEntryReachableRailsVerifyvasp VASPDirectoryEntryReachableRails = "VERIFYVASP" VASPDirectoryEntryReachableRailsSygna VASPDirectoryEntryReachableRails = "SYGNA" VASPDirectoryEntryReachableRailsEmail VASPDirectoryEntryReachableRails = "EMAIL" )
Known values of VASPDirectoryEntryReachableRails.
type VASPDirectoryEntryResponsiveness ¶
type VASPDirectoryEntryResponsiveness struct {
// UNKNOWN with fewer than 5 decided requests in the window; UNRESPONSIVE when
// less than 10 percent of them were answered; RESPONSIVE otherwise.
Status VASPDirectoryEntryResponsivenessStatus `json:"status"`
// Decided requests in the window that the VASP answered.
Answered int64 `json:"answered"`
// Decided requests in the window: answered plus expired.
Total int64 `json:"total"`
ComputedAt time.Time `json:"computed_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryResponsiveness: Whether the VASP answers Travel Rule requests: the share of the requests Didit customers started towards it in the last 90 days that it answered. Only requests sent over a network or protocol rail, or by email to a shared address (the entry's compliance address or a platform contact), count; a request sent to an address a customer typed, or to a customer's private contact, never does. An expired request is unanswered; a completed exchange, a decline or a data mismatch is an answer; a cancelled request or an unreachable rail is neither. Always UNKNOWN with zero counts for a Didit network member.
func (*VASPDirectoryEntryResponsiveness) UnmarshalJSON ¶
func (r *VASPDirectoryEntryResponsiveness) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryResponsiveness leniently.
type VASPDirectoryEntryResponsivenessStatus ¶
type VASPDirectoryEntryResponsivenessStatus string
VASPDirectoryEntryResponsivenessStatus: UNKNOWN with fewer than 5 decided requests in the window; UNRESPONSIVE when less than 10 percent of them were answered; RESPONSIVE otherwise.
VASPDirectoryEntryResponsivenessStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryResponsivenessStatusResponsive VASPDirectoryEntryResponsivenessStatus = "RESPONSIVE" VASPDirectoryEntryResponsivenessStatusUnresponsive VASPDirectoryEntryResponsivenessStatus = "UNRESPONSIVE" VASPDirectoryEntryResponsivenessStatusUnknown VASPDirectoryEntryResponsivenessStatus = "UNKNOWN" )
Known values of VASPDirectoryEntryResponsivenessStatus.
type VASPDirectoryEntryRiskLevel ¶
type VASPDirectoryEntryRiskLevel string
VASPDirectoryEntryRiskLevel: The band dd_score falls in: LOW (70 or more), MEDIUM (40 to 69) or HIGH (below 40). Empty for a Didit network member and for an entry not assessed yet. Filter on it with risk. Your own flagged screening never changes this shared value: it makes counterparty_risk_level HIGH in your rules instead.
VASPDirectoryEntryRiskLevel is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryRiskLevelLow VASPDirectoryEntryRiskLevel = "LOW" VASPDirectoryEntryRiskLevelMedium VASPDirectoryEntryRiskLevel = "MEDIUM" VASPDirectoryEntryRiskLevelHigh VASPDirectoryEntryRiskLevel = "HIGH" VASPDirectoryEntryRiskLevelEmpty VASPDirectoryEntryRiskLevel = "" )
Known values of VASPDirectoryEntryRiskLevel.
type VASPDirectoryEntryRoutes ¶
type VASPDirectoryEntryRoutes struct {
Rail VASPDirectoryEntryRoutesRail `json:"rail"`
Status VASPDirectoryEntryRoutesStatus `json:"status"`
// Why an unavailable route cannot be used: no_membership (neither you nor Didit
// holds a membership on that network), network_switched_off (you turned that
// network off in your settings) or sandbox_application (a sandbox application
// sends only to the Didit Test VASP, so no route is available to it). Empty
// when the route is available.
Reason VASPDirectoryEntryRoutesReason `json:"reason"`
// How an available route is reached: own_membership or didit_membership for a
// network rail, directory for a TRP endpoint the directory verified, contact
// for the EMAIL rail, didit_network for a Didit network member. Empty when the
// route is unavailable.
Via VASPDirectoryEntryRoutesVia `json:"via"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryRoutes: One way your application can deliver Travel Rule data to this VASP, in the order dispatch tries them. A network route needs a membership on that network: your own (connected in the Marketplace) or Didit's once Didit holds one. Without it the route is listed as unavailable with the reason, never as a way to reach the VASP.
func (*VASPDirectoryEntryRoutes) UnmarshalJSON ¶
func (r *VASPDirectoryEntryRoutes) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryRoutes leniently.
type VASPDirectoryEntryRoutesRail ¶
type VASPDirectoryEntryRoutesRail string
VASPDirectoryEntryRoutesRail is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryRoutesRailInternal VASPDirectoryEntryRoutesRail = "INTERNAL" VASPDirectoryEntryRoutesRailTrp VASPDirectoryEntryRoutesRail = "TRP" VASPDirectoryEntryRoutesRailGtr VASPDirectoryEntryRoutesRail = "GTR" VASPDirectoryEntryRoutesRailTrust VASPDirectoryEntryRoutesRail = "TRUST" VASPDirectoryEntryRoutesRailVerifyvasp VASPDirectoryEntryRoutesRail = "VERIFYVASP" VASPDirectoryEntryRoutesRailSygna VASPDirectoryEntryRoutesRail = "SYGNA" VASPDirectoryEntryRoutesRailEmail VASPDirectoryEntryRoutesRail = "EMAIL" )
Known values of VASPDirectoryEntryRoutesRail.
type VASPDirectoryEntryRoutesReason ¶
type VASPDirectoryEntryRoutesReason string
VASPDirectoryEntryRoutesReason: Why an unavailable route cannot be used: no_membership (neither you nor Didit holds a membership on that network), network_switched_off (you turned that network off in your settings) or sandbox_application (a sandbox application sends only to the Didit Test VASP, so no route is available to it). Empty when the route is available.
VASPDirectoryEntryRoutesReason is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryRoutesReasonEmpty VASPDirectoryEntryRoutesReason = "" VASPDirectoryEntryRoutesReasonNoMembership VASPDirectoryEntryRoutesReason = "no_membership" VASPDirectoryEntryRoutesReasonNetworkSwitchedOff VASPDirectoryEntryRoutesReason = "network_switched_off" VASPDirectoryEntryRoutesReasonSandboxApplication VASPDirectoryEntryRoutesReason = "sandbox_application" )
Known values of VASPDirectoryEntryRoutesReason.
type VASPDirectoryEntryRoutesStatus ¶
type VASPDirectoryEntryRoutesStatus string
VASPDirectoryEntryRoutesStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryRoutesStatusAvailable VASPDirectoryEntryRoutesStatus = "available" )
Known values of VASPDirectoryEntryRoutesStatus.
type VASPDirectoryEntryRoutesVia ¶
type VASPDirectoryEntryRoutesVia string
VASPDirectoryEntryRoutesVia: How an available route is reached: own_membership or didit_membership for a network rail, directory for a TRP endpoint the directory verified, contact for the EMAIL rail, didit_network for a Didit network member. Empty when the route is unavailable.
VASPDirectoryEntryRoutesVia is a string with known values below. The set is open: other values may appear and never cause an error.
const ( VASPDirectoryEntryRoutesViaEmpty VASPDirectoryEntryRoutesVia = "" VASPDirectoryEntryRoutesViaOwnMembership VASPDirectoryEntryRoutesVia = "own_membership" VASPDirectoryEntryRoutesViaDiditMembership VASPDirectoryEntryRoutesVia = "didit_membership" VASPDirectoryEntryRoutesViaDirectory VASPDirectoryEntryRoutesVia = "directory" VASPDirectoryEntryRoutesViaContact VASPDirectoryEntryRoutesVia = "contact" VASPDirectoryEntryRoutesViaDiditNetwork VASPDirectoryEntryRoutesVia = "didit_network" )
Known values of VASPDirectoryEntryRoutesVia.
type VASPDirectoryEntryUmbrella ¶
type VASPDirectoryEntryUmbrella struct {
ID string `json:"id"`
Name string `json:"name"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VASPDirectoryEntryUmbrella: The brand this entry is a regulated entity of. Null when it is not part of one.
func (*VASPDirectoryEntryUmbrella) UnmarshalJSON ¶
func (r *VASPDirectoryEntryUmbrella) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VASPDirectoryEntryUmbrella leniently.
type VerifyEmailRequest ¶
type VerifyEmailRequest struct {
// Email used during `POST /programmatic/register/`. Required.
Email string `json:"email"`
// 6-character alphanumeric code from the verification email. Codes expire 10
// minutes after the most recent code was sent. Required.
Code string `json:"code"`
}
VerifyEmailRequest is a request object.
func (VerifyEmailRequest) MarshalJSON ¶
func (r VerifyEmailRequest) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type VerifyEmailResponse ¶
type VerifyEmailResponse struct {
// RS256-signed JWT. Use as `Authorization: Bearer <token>` for Account
// Management endpoints on `apx.didit.me/auth/v2`.
AccessToken string `json:"access_token"`
// Refresh token paired with the access token.
RefreshToken string `json:"refresh_token"`
// Lifetime of the access token in seconds (default 86400).
ExpiresIn int64 `json:"expires_in"`
Organization OrganizationSummary `json:"organization"`
Application ApplicationCredentialsSummary `json:"application"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
VerifyEmailResponse is a response object.
func (*VerifyEmailResponse) UnmarshalJSON ¶
func (r *VerifyEmailResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes VerifyEmailResponse leniently.
type WalletAddressEntry ¶
type WalletAddressEntry struct {
UUID string `json:"uuid"`
// The wallet address; `""` for an entry imported by its hash only. Unique per
// application, chain and memo, comparing the address without regard to case.
// After you delete an entry, you can register the same address again.
Address string `json:"address"`
// Chain token for the address, for example `ETH` or `BTC`. When Didit routes or
// registers a transfer, it matches address book entries on the wallet address
// and, when the transfer carries a chain, on this value too, ignoring case. A
// transfer's chain is `beneficiary_data.chain`, filled from the transaction's
// crypto chain or currency symbol (for example `ETH`) when you do not send it,
// or the `chain` of an after-deposit registration, so use the same token
// everywhere. An entry with an empty chain matches any chain. A Lightning payee
// (a node id or a Lightning Address) registered on bitcoin is stored lowercased
// on `LIGHTNING`, where Lightning transfers are matched.
Chain string `json:"chain"`
// Your internal identifier for the holder.
HolderVendorData string `json:"holder_vendor_data"`
// Name of the wallet holder, used for the beneficiary name match.
HolderName string `json:"holder_name"`
// Free text, defaults to "individual".
EntityType string `json:"entity_type"`
// Read-only. Whether ownership of this address has been proven.
IsOwnershipVerified bool `json:"is_ownership_verified"`
CreatedAt time.Time `json:"created_at"`
// The counterparty VASP's travel address for this wallet, if known. Lets Didit
// route this beneficiary's transfers over the TRP rail, for the assets TRP
// carries (BTC, ETH, and USDC on a named network).
TravelAddress string `json:"travel_address"`
// Read-only. SHA-256 of the lowercased address, in lowercase hex. An entry
// imported by its hash only is matched on it.
AddressHash string `json:"address_hash"`
// The destination tag or memo that is part of the wallet on a memo network
// (XRP, XLM, EOS, ATOM, HBAR); `""` for the whole address. An entry with a memo
// matches only transfers naming that memo; one without matches the whole
// address.
Memo string `json:"memo"`
// Your per-wallet travel address for this wallet: give it to the sending VASP
// so its TRP inquiry names this wallet. Empty for a wallet recorded as another
// VASP's, while Travel Rule is off, and before your VASP profile is saved.
ReceivingTravelAddress string `json:"receiving_travel_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletAddressEntry is a response object.
func (*WalletAddressEntry) UnmarshalJSON ¶
func (r *WalletAddressEntry) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletAddressEntry leniently.
type WalletAddressEntryCreate ¶
type WalletAddressEntryCreate struct {
// The wallet address. An XRP X-address is stored as its classic address and its
// tag, so it matches transfers that name either form. Required.
Address string `json:"address"`
// Chain token for the address, for example `ETH` or `BTC`. When Didit routes or
// registers a transfer, it matches address book entries on the wallet address
// and, when the transfer carries a chain, on this value too, ignoring case. A
// transfer's chain is `beneficiary_data.chain`, filled from the transaction's
// crypto chain or currency symbol (for example `ETH`) when you do not send it,
// or the `chain` of an after-deposit registration, so use the same token
// everywhere. An entry with an empty chain matches any chain.
Chain Opt[string] `json:"chain"`
HolderVendorData Opt[string] `json:"holder_vendor_data"`
HolderName Opt[string] `json:"holder_name"`
EntityType Opt[string] `json:"entity_type"`
// Write-only. When true, the entry is created already ownership-verified via a
// SELF_DECLARATION proof. Returns 400 when `allow_self_declaration` is off in
// your Travel Rule settings.
SelfDeclared Opt[bool] `json:"self_declared"`
// Optional. The counterparty VASP's travel address for this wallet, enabling
// TRP routing for the assets TRP carries (BTC, ETH, and USDC on a named
// network). An invalid travel address returns 400.
TravelAddress Opt[string] `json:"travel_address"`
// Optional. The destination tag or memo that is part of the wallet. XRP: a
// destination tag, a whole number from 0 to 4294967295 (a JSON number is
// accepted). XLM: a text memo of up to 28 bytes, a 64-bit id or a 32-byte hash
// in hex. EOS: up to 256 bytes. ATOM: up to 256 characters. HBAR: up to 100
// bytes. Bitcoin, EVM, Solana, Tron, Litecoin, Bitcoin Cash, Dogecoin and
// Lightning wallets take no memo: one there is a `400`. Alias: `destinationTag`
// or `destination_tag`.
Memo Opt[string] `json:"memo"`
}
WalletAddressEntryCreate is a request object.
func (WalletAddressEntryCreate) MarshalJSON ¶
func (r WalletAddressEntryCreate) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletAddressEntryUpdate ¶
type WalletAddressEntryUpdate struct {
HolderName string `json:"holder_name"`
HolderVendorData string `json:"holder_vendor_data"`
EntityType string `json:"entity_type"`
TravelAddress string `json:"travel_address"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletAddressEntryUpdate: PATCH is a partial update; the response echoes only holder_name, holder_vendor_data, entity_type, travel_address, receiving_travel_address, label, and owner_type.
func (*WalletAddressEntryUpdate) UnmarshalJSON ¶
func (r *WalletAddressEntryUpdate) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletAddressEntryUpdate leniently.
type WalletAddressEntryUpdateParam ¶
type WalletAddressEntryUpdateParam struct {
HolderName Opt[string] `json:"holder_name"`
HolderVendorData Opt[string] `json:"holder_vendor_data"`
EntityType Opt[string] `json:"entity_type"`
TravelAddress Opt[string] `json:"travel_address"`
}
WalletAddressEntryUpdateParam: PATCH is a partial update; the response echoes only holder_name, holder_vendor_data, entity_type, travel_address, receiving_travel_address, label, and owner_type.
func (WalletAddressEntryUpdateParam) MarshalJSON ¶
func (r WalletAddressEntryUpdateParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletAddressImportReport ¶
type WalletAddressImportReport struct {
Total int64 `json:"total"`
Created int64 `json:"created"`
Existing int64 `json:"existing"`
Duplicate int64 `json:"duplicate"`
Failed int64 `json:"failed"`
Rows []WalletAddressImportReportRows `json:"rows"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletAddressImportReport: What happened to each row of an import, in the order sent.
func (*WalletAddressImportReport) UnmarshalJSON ¶
func (r *WalletAddressImportReport) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletAddressImportReport leniently.
type WalletAddressImportReportRows ¶
type WalletAddressImportReportRows struct {
// The row's number, from 1.
Row int64 `json:"row"`
// `created`: added to the book. `existing`: the wallet is already in the book
// and was left untouched. `duplicate`: repeats an earlier row of this import.
// `failed`: see `errors`.
Status WalletAddressImportReportRowsStatus `json:"status"`
// The address-book entry the row created or found.
EntryID string `json:"entry_id"`
// Field errors of a `failed` row; empty otherwise.
Errors map[string]any `json:"errors"`
// On a `duplicate` row, the row it repeats.
DuplicateOfRow int64 `json:"duplicate_of_row"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletAddressImportReportRows is a response object.
func (*WalletAddressImportReportRows) UnmarshalJSON ¶
func (r *WalletAddressImportReportRows) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletAddressImportReportRows leniently.
type WalletAddressImportReportRowsStatus ¶
type WalletAddressImportReportRowsStatus string
WalletAddressImportReportRowsStatus: `created`: added to the book. `existing`: the wallet is already in the book and was left untouched. `duplicate`: repeats an earlier row of this import. `failed`: see `errors`.
WalletAddressImportReportRowsStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletAddressImportReportRowsStatusCreated WalletAddressImportReportRowsStatus = "created" WalletAddressImportReportRowsStatusExisting WalletAddressImportReportRowsStatus = "existing" WalletAddressImportReportRowsStatusDuplicate WalletAddressImportReportRowsStatus = "duplicate" WalletAddressImportReportRowsStatusFailed WalletAddressImportReportRowsStatus = "failed" )
Known values of WalletAddressImportReportRowsStatus.
type WalletScreeningResult ¶
type WalletScreeningResult struct {
// Provider that performed the screening (e.g. `merklescience`, `crystal`).
Provider string `json:"provider"`
// Always `WALLET_SCREENING` for this endpoint.
ScreeningType WalletScreeningResultScreeningType `json:"screening_type"`
// Normalised 0-100 risk score. Higher means greater exposure to risky entities.
// Merkle Science grades an address 0-5, which maps to 0, 15, 35, 55, 75 or 95.
RiskScore int64 `json:"risk_score"`
// Risk bucket derived from `risk_score`: `0-9` UNKNOWN, `10-39` LOW, `40-69`
// MEDIUM, `70-89` HIGH, `90-100` CRITICAL. `UNKNOWN` is the lowest band, not a
// separate no-data state: `risk_score` 0 (the common clean-address case) means
// no adverse assessment, while a non-zero score in the 1-9 range is a real but
// sub-LOW signal - read the `risk_score`, not just the band. Never treat
// `UNKNOWN` as an affirmative low-risk or clear rating; do not display it as a
// pass.
Severity WalletScreeningResultSeverity `json:"severity"`
// Screening outcome status.
Status WalletScreeningResultStatus `json:"status"`
// Human-readable summary of the screening result.
Summary string `json:"summary"`
// The screened address, echoed back.
WalletAddress string `json:"wallet_address"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionHash string `json:"transaction_hash"`
// The blockchain that was screened.
Blockchain string `json:"blockchain"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
BlockTimestamp string `json:"block_timestamp"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TotalValueUsd float64 `json:"total_value_usd"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
FeeUsd float64 `json:"fee_usd"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
SenderRows []map[string]any `json:"sender_rows"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
ReceiverRows []map[string]any `json:"receiver_rows"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
TransactionFlows []map[string]any `json:"transaction_flows"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionFlowsStatus string `json:"transaction_flows_status"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionFlowsError string `json:"transaction_flows_error"`
// Where the address received funds from, attributed by entity. Each entry is an
// exposure breakdown.
SourceOfFunds []WalletScreeningResultSourceOfFunds `json:"source_of_funds"`
// Where the address sent funds to, attributed by entity. Same item shape as
// `source_of_funds` with `exposure_direction` = `outgoing`.
DestinationOfFunds []WalletScreeningResultDestinationOfFunds `json:"destination_of_funds"`
// Entities the provider attributes the screened address to. For Merkle Science
// these come from the address's own owner and user tags, so the same entity can
// appear twice, and they carry no fund flows: `received_usd`, `sent_usd`,
// `received_hops` and `sent_hops` are `null` and `percentage` is 0. Do not
// route on `risk_level` or `is_direct` here: use `sanctions_hit`,
// `dominant_risk_category` and `risk_factors[].is_high_risk` for the verdict,
// and `exposure_type` in `source_of_funds`/`destination_of_funds` for
// directness.
CounterpartyConnections []WalletScreeningResultCounterpartyConnections `json:"counterparty_connections"`
// Exposure graph nodes for transaction screening. Empty on a wallet screening
// result.
NetworkNodes []map[string]any `json:"network_nodes"`
// Exposure graph edges for transaction screening. Empty on a wallet screening
// result.
NetworkEdges []map[string]any `json:"network_edges"`
// True if the address has direct or indirect sanctions exposure.
SanctionsHit bool `json:"sanctions_hit"`
// Politically exposed person exposure. `null` when no PEP finding is available,
// which is every result today because no provider reports one; `false` only for
// an explicit negative screening result. Do not read `null` as a completed PEP
// check.
PEPCounterparty bool `json:"pep_counterparty"`
// Highest-weighted high-risk category, or `null` when none is dominant (e.g.
// `sanctioned`, `mixer`, `stolen_funds`).
DominantRiskCategory string `json:"dominant_risk_category"`
// Ranked explanation of `risk_score`: what produced this verdict. Providers
// grade an address on their own model and return only a verdict (Merkle Science
// returns an integer 0-5), so the score alone is not actionable. Ordered
// high-risk first, then by the value that moved through each driver, capped at
// the five strongest; `source_of_funds` and `destination_of_funds` always carry
// the complete breakdown. A high `risk_score` with no `is_high_risk` entry
// means the provider reported no sanctions or attributed-entity match and
// graded the address purely on its own exposure model - `summary` states this
// explicitly.
RiskFactors []WalletScreeningResultRiskFactors `json:"risk_factors"`
// The provider's own payload. Its shape is provider-specific and can change
// without notice: read the normalised fields instead of parsing it.
RawResponse map[string]any `json:"raw_response"`
// Opaque HMAC-SHA256 signature over this exact result, scoped to your
// application. Not meaningful on its own - repost the full response body,
// unmodified and including this field, to `POST /v3/wallet-screening/pdf/` to
// render it as a PDF. The PDF endpoint rejects the request with `400` if
// `report_signature` is missing or if any signed field (e.g. `risk_score`,
// `severity`, `sanctions_hit`) was edited before repost.
ReportSignature string `json:"report_signature"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletScreeningResult is a response object.
func (*WalletScreeningResult) UnmarshalJSON ¶
func (r *WalletScreeningResult) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletScreeningResult leniently.
type WalletScreeningResultCounterpartyConnections ¶
type WalletScreeningResultCounterpartyConnections struct {
// Attributed entity name.
EntityName string `json:"entity_name"`
// Provider entity type.
EntityType string `json:"entity_type"`
// Provider entity subtype.
EntitySubtype string `json:"entity_subtype"`
// Lowercase and provider-dependent. For Merkle Science it is the address's own
// 0-5 risk grade (`no_risk`, `low`, `medium_low`, `medium`, `high`,
// `critical`), raised to `high` when the entity's category is high risk; it is
// not a separate grade of the entity.
RiskLevel string `json:"risk_level"`
// Normalised risk categories of the entity.
Categories []string `json:"categories"`
// USD received from the entity, when the provider reports it.
ReceivedUsd float64 `json:"received_usd"`
// USD sent to the entity, when the provider reports it.
SentUsd float64 `json:"sent_usd"`
// Hops to the entity on the receiving side, when the provider reports them.
ReceivedHops int64 `json:"received_hops"`
// Hops to the entity on the sending side, when the provider reports them.
SentHops int64 `json:"sent_hops"`
// Share of the address's exposure, when the provider reports it; otherwise 0.
Percentage float64 `json:"percentage"`
// Always `true` for Merkle Science, whose connections are attributions rather
// than counterparties.
IsDirect bool `json:"is_direct"`
// Country of the entity, when known.
Country string `json:"country"`
// The provider's own identifier for the entity.
ProviderEntityID string `json:"provider_entity_id"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletScreeningResultCounterpartyConnections is a response object.
func (*WalletScreeningResultCounterpartyConnections) UnmarshalJSON ¶
func (r *WalletScreeningResultCounterpartyConnections) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletScreeningResultCounterpartyConnections leniently.
type WalletScreeningResultDestinationOfFunds ¶
type WalletScreeningResultDestinationOfFunds struct {
// Normalised risk category, e.g. `exchange_licensed`, `dex`, `defi`,
// `payment_processor`, `mixer`, `darknet_market`, `sanctioned`, `stolen_funds`,
// `high_risk_exchange`.
Category string `json:"category"`
// Share of the direction's total exposure, 0-100.
Percentage float64 `json:"percentage"`
// USD value attributed to this entity.
AmountUsd float64 `json:"amount_usd"`
// Name of the attributed entity, for example an exchange, a mixer or a
// sanctioned group.
EntityName string `json:"entity_name"`
// Provider entity type (e.g. `Exchange`, `DeFi`, `Sanctions`, `Theft`).
EntityType string `json:"entity_type"`
// More granular subtype (e.g. `Mandatory KYC and AML`, `OFAC`, `Yield
// Aggregator`).
EntitySubtype string `json:"entity_subtype"`
// Number of hops to the entity (1 for a direct counterparty), when the provider
// reports one. Always `null` for Merkle Science, which reports only whether
// exposure is direct or indirect: use `exposure_type`.
Hops int64 `json:"hops"`
// `entity_type / entity_subtype`, as the provider labels the entity.
Description string `json:"description"`
// True when `exposure_type` is `direct`.
IsDirect bool `json:"is_direct"`
// Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
ExposureDirection WalletScreeningResultDestinationOfFundsExposureDirection `json:"exposure_direction"`
// `direct` (1 hop) or `indirect` (multi-hop) exposure.
ExposureType WalletScreeningResultDestinationOfFundsExposureType `json:"exposure_type"`
// The provider's own identifier for the entity.
ProviderEntityID string `json:"provider_entity_id"`
// The provider's own identifier for `entity_type`.
ProviderEntityTypeID string `json:"provider_entity_type_id"`
// The provider's own identifier for `entity_subtype`.
ProviderEntitySubtypeID string `json:"provider_entity_subtype_id"`
// Primary ISO 3166-1 alpha-2 country of the entity. Empty or `null` when the
// provider does not know it.
Country string `json:"country"`
// Amount in the asset's own unit, when the provider reports it.
RawAmount float64 `json:"raw_amount"`
// Unit of `raw_amount`, when the provider reports it.
RawCurrency string `json:"raw_currency"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletScreeningResultDestinationOfFunds is a response object.
func (*WalletScreeningResultDestinationOfFunds) UnmarshalJSON ¶
func (r *WalletScreeningResultDestinationOfFunds) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletScreeningResultDestinationOfFunds leniently.
type WalletScreeningResultDestinationOfFundsExposureDirection ¶
type WalletScreeningResultDestinationOfFundsExposureDirection string
WalletScreeningResultDestinationOfFundsExposureDirection: Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
WalletScreeningResultDestinationOfFundsExposureDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultDestinationOfFundsExposureDirectionIncoming WalletScreeningResultDestinationOfFundsExposureDirection = "incoming" WalletScreeningResultDestinationOfFundsExposureDirectionOutgoing WalletScreeningResultDestinationOfFundsExposureDirection = "outgoing" WalletScreeningResultDestinationOfFundsExposureDirectionConnected WalletScreeningResultDestinationOfFundsExposureDirection = "connected" )
Known values of WalletScreeningResultDestinationOfFundsExposureDirection.
type WalletScreeningResultDestinationOfFundsExposureType ¶
type WalletScreeningResultDestinationOfFundsExposureType string
WalletScreeningResultDestinationOfFundsExposureType: `direct` (1 hop) or `indirect` (multi-hop) exposure.
WalletScreeningResultDestinationOfFundsExposureType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultDestinationOfFundsExposureTypeDirect WalletScreeningResultDestinationOfFundsExposureType = "direct" WalletScreeningResultDestinationOfFundsExposureTypeIndirect WalletScreeningResultDestinationOfFundsExposureType = "indirect" )
Known values of WalletScreeningResultDestinationOfFundsExposureType.
type WalletScreeningResultParam ¶
type WalletScreeningResultParam struct {
// Provider that performed the screening (e.g. `merklescience`, `crystal`).
// Required.
Provider string `json:"provider"`
// Always `WALLET_SCREENING` for this endpoint. Required.
ScreeningType WalletScreeningResultScreeningType `json:"screening_type"`
// Normalised 0-100 risk score. Higher means greater exposure to risky entities.
// Merkle Science grades an address 0-5, which maps to 0, 15, 35, 55, 75 or 95.
// Required.
RiskScore int64 `json:"risk_score"`
// Risk bucket derived from `risk_score`: `0-9` UNKNOWN, `10-39` LOW, `40-69`
// MEDIUM, `70-89` HIGH, `90-100` CRITICAL. `UNKNOWN` is the lowest band, not a
// separate no-data state: `risk_score` 0 (the common clean-address case) means
// no adverse assessment, while a non-zero score in the 1-9 range is a real but
// sub-LOW signal - read the `risk_score`, not just the band. Never treat
// `UNKNOWN` as an affirmative low-risk or clear rating; do not display it as a
// pass. Required.
Severity WalletScreeningResultSeverity `json:"severity"`
// Screening outcome status. Required.
Status WalletScreeningResultStatus `json:"status"`
// Human-readable summary of the screening result. Required.
Summary string `json:"summary"`
// The screened address, echoed back. Required.
WalletAddress string `json:"wallet_address"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionHash Opt[string] `json:"transaction_hash"`
// The blockchain that was screened. Required.
Blockchain string `json:"blockchain"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
BlockTimestamp Opt[string] `json:"block_timestamp"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TotalValueUsd Opt[float64] `json:"total_value_usd"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
FeeUsd Opt[float64] `json:"fee_usd"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
SenderRows Opt[[]map[string]any] `json:"sender_rows"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
ReceiverRows Opt[[]map[string]any] `json:"receiver_rows"`
// Transaction screening field, shared with the result shape. Always empty on a
// wallet screening result.
TransactionFlows Opt[[]map[string]any] `json:"transaction_flows"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionFlowsStatus Opt[string] `json:"transaction_flows_status"`
// Transaction screening field, shared with the result shape. Always `null` on a
// wallet screening result.
TransactionFlowsError Opt[string] `json:"transaction_flows_error"`
// Where the address received funds from, attributed by entity. Each entry is an
// exposure breakdown. Required.
SourceOfFunds []WalletScreeningResultParamSourceOfFunds `json:"source_of_funds"`
// Where the address sent funds to, attributed by entity. Same item shape as
// `source_of_funds` with `exposure_direction` = `outgoing`. Required.
DestinationOfFunds []WalletScreeningResultParamDestinationOfFunds `json:"destination_of_funds"`
// Entities the provider attributes the screened address to. For Merkle Science
// these come from the address's own owner and user tags, so the same entity can
// appear twice, and they carry no fund flows: `received_usd`, `sent_usd`,
// `received_hops` and `sent_hops` are `null` and `percentage` is 0. Do not
// route on `risk_level` or `is_direct` here: use `sanctions_hit`,
// `dominant_risk_category` and `risk_factors[].is_high_risk` for the verdict,
// and `exposure_type` in `source_of_funds`/`destination_of_funds` for
// directness. Required.
CounterpartyConnections []WalletScreeningResultParamCounterpartyConnections `json:"counterparty_connections"`
// Exposure graph nodes for transaction screening. Empty on a wallet screening
// result.
NetworkNodes Opt[[]map[string]any] `json:"network_nodes"`
// Exposure graph edges for transaction screening. Empty on a wallet screening
// result.
NetworkEdges Opt[[]map[string]any] `json:"network_edges"`
// True if the address has direct or indirect sanctions exposure. Required.
SanctionsHit bool `json:"sanctions_hit"`
// Politically exposed person exposure. `null` when no PEP finding is available,
// which is every result today because no provider reports one; `false` only for
// an explicit negative screening result. Do not read `null` as a completed PEP
// check.
PEPCounterparty Opt[bool] `json:"pep_counterparty"`
// Highest-weighted high-risk category, or `null` when none is dominant (e.g.
// `sanctioned`, `mixer`, `stolen_funds`). Required.
DominantRiskCategory Opt[string] `json:"dominant_risk_category"`
// Ranked explanation of `risk_score`: what produced this verdict. Providers
// grade an address on their own model and return only a verdict (Merkle Science
// returns an integer 0-5), so the score alone is not actionable. Ordered
// high-risk first, then by the value that moved through each driver, capped at
// the five strongest; `source_of_funds` and `destination_of_funds` always carry
// the complete breakdown. A high `risk_score` with no `is_high_risk` entry
// means the provider reported no sanctions or attributed-entity match and
// graded the address purely on its own exposure model - `summary` states this
// explicitly.
RiskFactors Opt[[]WalletScreeningResultParamRiskFactors] `json:"risk_factors"`
// The provider's own payload. Its shape is provider-specific and can change
// without notice: read the normalised fields instead of parsing it.
RawResponse Opt[map[string]any] `json:"raw_response"`
// Opaque HMAC-SHA256 signature over this exact result, scoped to your
// application. Not meaningful on its own - repost the full response body,
// unmodified and including this field, to `POST /v3/wallet-screening/pdf/` to
// render it as a PDF. The PDF endpoint rejects the request with `400` if
// `report_signature` is missing or if any signed field (e.g. `risk_score`,
// `severity`, `sanctions_hit`) was edited before repost. Required.
ReportSignature string `json:"report_signature"`
}
WalletScreeningResultParam is a request object.
func (WalletScreeningResultParam) MarshalJSON ¶
func (r WalletScreeningResultParam) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningResultParamCounterpartyConnections ¶
type WalletScreeningResultParamCounterpartyConnections struct {
// Attributed entity name.
EntityName Opt[string] `json:"entity_name"`
// Provider entity type.
EntityType Opt[string] `json:"entity_type"`
// Provider entity subtype.
EntitySubtype Opt[string] `json:"entity_subtype"`
// Lowercase and provider-dependent. For Merkle Science it is the address's own
// 0-5 risk grade (`no_risk`, `low`, `medium_low`, `medium`, `high`,
// `critical`), raised to `high` when the entity's category is high risk; it is
// not a separate grade of the entity.
RiskLevel Opt[string] `json:"risk_level"`
// Normalised risk categories of the entity.
Categories Opt[[]string] `json:"categories"`
// USD received from the entity, when the provider reports it.
ReceivedUsd Opt[float64] `json:"received_usd"`
// USD sent to the entity, when the provider reports it.
SentUsd Opt[float64] `json:"sent_usd"`
// Hops to the entity on the receiving side, when the provider reports them.
ReceivedHops Opt[int64] `json:"received_hops"`
// Hops to the entity on the sending side, when the provider reports them.
SentHops Opt[int64] `json:"sent_hops"`
// Share of the address's exposure, when the provider reports it; otherwise 0.
Percentage Opt[float64] `json:"percentage"`
// Always `true` for Merkle Science, whose connections are attributions rather
// than counterparties.
IsDirect Opt[bool] `json:"is_direct"`
// Country of the entity, when known.
Country Opt[string] `json:"country"`
// The provider's own identifier for the entity.
ProviderEntityID Opt[string] `json:"provider_entity_id"`
}
WalletScreeningResultParamCounterpartyConnections is a request object.
func (WalletScreeningResultParamCounterpartyConnections) MarshalJSON ¶
func (r WalletScreeningResultParamCounterpartyConnections) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningResultParamDestinationOfFunds ¶
type WalletScreeningResultParamDestinationOfFunds struct {
// Normalised risk category, e.g. `exchange_licensed`, `dex`, `defi`,
// `payment_processor`, `mixer`, `darknet_market`, `sanctioned`, `stolen_funds`,
// `high_risk_exchange`.
Category Opt[string] `json:"category"`
// Share of the direction's total exposure, 0-100.
Percentage Opt[float64] `json:"percentage"`
// USD value attributed to this entity.
AmountUsd Opt[float64] `json:"amount_usd"`
// Name of the attributed entity, for example an exchange, a mixer or a
// sanctioned group.
EntityName Opt[string] `json:"entity_name"`
// Provider entity type (e.g. `Exchange`, `DeFi`, `Sanctions`, `Theft`).
EntityType Opt[string] `json:"entity_type"`
// More granular subtype (e.g. `Mandatory KYC and AML`, `OFAC`, `Yield
// Aggregator`).
EntitySubtype Opt[string] `json:"entity_subtype"`
// Number of hops to the entity (1 for a direct counterparty), when the provider
// reports one. Always `null` for Merkle Science, which reports only whether
// exposure is direct or indirect: use `exposure_type`.
Hops Opt[int64] `json:"hops"`
// `entity_type / entity_subtype`, as the provider labels the entity.
Description Opt[string] `json:"description"`
// True when `exposure_type` is `direct`.
IsDirect Opt[bool] `json:"is_direct"`
// Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
ExposureDirection Opt[WalletScreeningResultDestinationOfFundsExposureDirection] `json:"exposure_direction"`
// `direct` (1 hop) or `indirect` (multi-hop) exposure.
ExposureType Opt[WalletScreeningResultDestinationOfFundsExposureType] `json:"exposure_type"`
// The provider's own identifier for the entity.
ProviderEntityID Opt[string] `json:"provider_entity_id"`
// The provider's own identifier for `entity_type`.
ProviderEntityTypeID Opt[string] `json:"provider_entity_type_id"`
// The provider's own identifier for `entity_subtype`.
ProviderEntitySubtypeID Opt[string] `json:"provider_entity_subtype_id"`
// Primary ISO 3166-1 alpha-2 country of the entity. Empty or `null` when the
// provider does not know it.
Country Opt[string] `json:"country"`
// Amount in the asset's own unit, when the provider reports it.
RawAmount Opt[float64] `json:"raw_amount"`
// Unit of `raw_amount`, when the provider reports it.
RawCurrency Opt[string] `json:"raw_currency"`
}
WalletScreeningResultParamDestinationOfFunds is a request object.
func (WalletScreeningResultParamDestinationOfFunds) MarshalJSON ¶
func (r WalletScreeningResultParamDestinationOfFunds) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningResultParamRiskFactors ¶
type WalletScreeningResultParamRiskFactors struct {
// `attribution` is what the provider says the address itself is (its own tag or
// cluster); `exposure` is where its funds actually moved.
Source Opt[WalletScreeningResultRiskFactorsSource] `json:"source"`
// Normalised risk category, same vocabulary as the exposure breakdown.
Category Opt[string] `json:"category"`
// The provider's own wording for the driver (e.g. `Gambling / Crypto only`),
// which is what you would also see in the provider's console.
Label Opt[string] `json:"label"`
// Attributed entity behind the driver, for example a gambling site or an
// exchange.
EntityName Opt[string] `json:"entity_name"`
// Direction of the fund flow, `attribution` when the driver is the address's
// own tag, or `unknown` when the provider did not report a direction.
Direction Opt[WalletScreeningResultRiskFactorsDirection] `json:"direction"`
// `direct` (1 hop) or `indirect` (multi-hop), `attribution` for the address's
// own tag, or `unknown` when the provider did not state how many hops away the
// counterparty is. Treat `unknown` as unclassified, not as `direct`.
ExposureType Opt[WalletScreeningResultRiskFactorsExposureType] `json:"exposure_type"`
// USD value attributed to this driver.
AmountUsd Opt[float64] `json:"amount_usd"`
// Share of the address's TOTAL screened volume, both directions combined -
// unlike `percentage` inside `source_of_funds`/`destination_of_funds`, which is
// normalised per direction. Comparable and summable across the whole list.
Percentage Opt[float64] `json:"percentage"`
// Whether the category is one Didit treats as high risk (`sanctioned`, `mixer`,
// `stolen_funds`, `ransomware`, `scam`, `darknet_market`,
// `terrorist_financing`, `child_exploitation`, `hacked_exchange`,
// `high_risk_exchange`, `seized_funds`).
IsHighRisk Opt[bool] `json:"is_high_risk"`
// One-line rendering of the driver, e.g. `9.01% indirect outgoing exposure to
// Gambling / Crypto only (Example Gambling)`.
Description Opt[string] `json:"description"`
}
WalletScreeningResultParamRiskFactors is a request object.
func (WalletScreeningResultParamRiskFactors) MarshalJSON ¶
func (r WalletScreeningResultParamRiskFactors) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningResultParamSourceOfFunds ¶
type WalletScreeningResultParamSourceOfFunds struct {
// Normalised risk category, e.g. `exchange_licensed`, `dex`, `defi`,
// `payment_processor`, `mixer`, `darknet_market`, `sanctioned`, `stolen_funds`,
// `high_risk_exchange`.
Category Opt[string] `json:"category"`
// Share of the direction's total exposure, 0-100.
Percentage Opt[float64] `json:"percentage"`
// USD value attributed to this entity.
AmountUsd Opt[float64] `json:"amount_usd"`
// Name of the attributed entity, for example an exchange, a mixer or a
// sanctioned group.
EntityName Opt[string] `json:"entity_name"`
// Provider entity type (e.g. `Exchange`, `DeFi`, `Sanctions`, `Theft`).
EntityType Opt[string] `json:"entity_type"`
// More granular subtype (e.g. `Mandatory KYC and AML`, `OFAC`, `Yield
// Aggregator`).
EntitySubtype Opt[string] `json:"entity_subtype"`
// Number of hops to the entity (1 for a direct counterparty), when the provider
// reports one. Always `null` for Merkle Science, which reports only whether
// exposure is direct or indirect: use `exposure_type`.
Hops Opt[int64] `json:"hops"`
// `entity_type / entity_subtype`, as the provider labels the entity.
Description Opt[string] `json:"description"`
// True when `exposure_type` is `direct`.
IsDirect Opt[bool] `json:"is_direct"`
// Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
ExposureDirection Opt[WalletScreeningResultSourceOfFundsExposureDirection] `json:"exposure_direction"`
// `direct` (1 hop) or `indirect` (multi-hop) exposure.
ExposureType Opt[WalletScreeningResultSourceOfFundsExposureType] `json:"exposure_type"`
// The provider's own identifier for the entity.
ProviderEntityID Opt[string] `json:"provider_entity_id"`
// The provider's own identifier for `entity_type`.
ProviderEntityTypeID Opt[string] `json:"provider_entity_type_id"`
// The provider's own identifier for `entity_subtype`.
ProviderEntitySubtypeID Opt[string] `json:"provider_entity_subtype_id"`
// Primary ISO 3166-1 alpha-2 country of the entity. Empty or `null` when the
// provider does not know it.
Country Opt[string] `json:"country"`
// Amount in the asset's own unit, when the provider reports it.
RawAmount Opt[float64] `json:"raw_amount"`
// Unit of `raw_amount`, when the provider reports it.
RawCurrency Opt[string] `json:"raw_currency"`
}
WalletScreeningResultParamSourceOfFunds is a request object.
func (WalletScreeningResultParamSourceOfFunds) MarshalJSON ¶
func (r WalletScreeningResultParamSourceOfFunds) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningResultRiskFactors ¶
type WalletScreeningResultRiskFactors struct {
// `attribution` is what the provider says the address itself is (its own tag or
// cluster); `exposure` is where its funds actually moved.
Source WalletScreeningResultRiskFactorsSource `json:"source"`
// Normalised risk category, same vocabulary as the exposure breakdown.
Category string `json:"category"`
// The provider's own wording for the driver (e.g. `Gambling / Crypto only`),
// which is what you would also see in the provider's console.
Label string `json:"label"`
// Attributed entity behind the driver, for example a gambling site or an
// exchange.
EntityName string `json:"entity_name"`
// Direction of the fund flow, `attribution` when the driver is the address's
// own tag, or `unknown` when the provider did not report a direction.
Direction WalletScreeningResultRiskFactorsDirection `json:"direction"`
// `direct` (1 hop) or `indirect` (multi-hop), `attribution` for the address's
// own tag, or `unknown` when the provider did not state how many hops away the
// counterparty is. Treat `unknown` as unclassified, not as `direct`.
ExposureType WalletScreeningResultRiskFactorsExposureType `json:"exposure_type"`
// USD value attributed to this driver.
AmountUsd float64 `json:"amount_usd"`
// Share of the address's TOTAL screened volume, both directions combined -
// unlike `percentage` inside `source_of_funds`/`destination_of_funds`, which is
// normalised per direction. Comparable and summable across the whole list.
Percentage float64 `json:"percentage"`
// Whether the category is one Didit treats as high risk (`sanctioned`, `mixer`,
// `stolen_funds`, `ransomware`, `scam`, `darknet_market`,
// `terrorist_financing`, `child_exploitation`, `hacked_exchange`,
// `high_risk_exchange`, `seized_funds`).
IsHighRisk bool `json:"is_high_risk"`
// One-line rendering of the driver, e.g. `9.01% indirect outgoing exposure to
// Gambling / Crypto only (Example Gambling)`.
Description string `json:"description"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletScreeningResultRiskFactors is a response object.
func (*WalletScreeningResultRiskFactors) UnmarshalJSON ¶
func (r *WalletScreeningResultRiskFactors) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletScreeningResultRiskFactors leniently.
type WalletScreeningResultRiskFactorsDirection ¶
type WalletScreeningResultRiskFactorsDirection string
WalletScreeningResultRiskFactorsDirection: Direction of the fund flow, `attribution` when the driver is the address's own tag, or `unknown` when the provider did not report a direction.
WalletScreeningResultRiskFactorsDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultRiskFactorsDirectionIncoming WalletScreeningResultRiskFactorsDirection = "incoming" WalletScreeningResultRiskFactorsDirectionOutgoing WalletScreeningResultRiskFactorsDirection = "outgoing" WalletScreeningResultRiskFactorsDirectionConnected WalletScreeningResultRiskFactorsDirection = "connected" WalletScreeningResultRiskFactorsDirectionUnknown WalletScreeningResultRiskFactorsDirection = "unknown" WalletScreeningResultRiskFactorsDirectionAttribution WalletScreeningResultRiskFactorsDirection = "attribution" )
Known values of WalletScreeningResultRiskFactorsDirection.
type WalletScreeningResultRiskFactorsExposureType ¶
type WalletScreeningResultRiskFactorsExposureType string
WalletScreeningResultRiskFactorsExposureType: `direct` (1 hop) or `indirect` (multi-hop), `attribution` for the address's own tag, or `unknown` when the provider did not state how many hops away the counterparty is. Treat `unknown` as unclassified, not as `direct`.
WalletScreeningResultRiskFactorsExposureType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultRiskFactorsExposureTypeDirect WalletScreeningResultRiskFactorsExposureType = "direct" WalletScreeningResultRiskFactorsExposureTypeIndirect WalletScreeningResultRiskFactorsExposureType = "indirect" WalletScreeningResultRiskFactorsExposureTypeUnknown WalletScreeningResultRiskFactorsExposureType = "unknown" WalletScreeningResultRiskFactorsExposureTypeAttribution WalletScreeningResultRiskFactorsExposureType = "attribution" )
Known values of WalletScreeningResultRiskFactorsExposureType.
type WalletScreeningResultRiskFactorsSource ¶
type WalletScreeningResultRiskFactorsSource string
WalletScreeningResultRiskFactorsSource: `attribution` is what the provider says the address itself is (its own tag or cluster); `exposure` is where its funds actually moved.
WalletScreeningResultRiskFactorsSource is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultRiskFactorsSourceAttribution WalletScreeningResultRiskFactorsSource = "attribution" WalletScreeningResultRiskFactorsSourceExposure WalletScreeningResultRiskFactorsSource = "exposure" )
Known values of WalletScreeningResultRiskFactorsSource.
type WalletScreeningResultScreeningType ¶
type WalletScreeningResultScreeningType string
WalletScreeningResultScreeningType: Always `WALLET_SCREENING` for this endpoint.
WalletScreeningResultScreeningType is a string with known values below. The set is open: other values may appear and never cause an error.
const (
WalletScreeningResultScreeningTypeWalletScreening WalletScreeningResultScreeningType = "WALLET_SCREENING"
)
Known values of WalletScreeningResultScreeningType.
type WalletScreeningResultSeverity ¶
type WalletScreeningResultSeverity string
WalletScreeningResultSeverity: Risk bucket derived from `risk_score`: `0-9` UNKNOWN, `10-39` LOW, `40-69` MEDIUM, `70-89` HIGH, `90-100` CRITICAL. `UNKNOWN` is the lowest band, not a separate no-data state: `risk_score` 0 (the common clean-address case) means no adverse assessment, while a non-zero score in the 1-9 range is a real but sub-LOW signal - read the `risk_score`, not just the band. Never treat `UNKNOWN` as an affirmative low-risk or clear rating; do not display it as a pass.
WalletScreeningResultSeverity is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultSeverityUnknown WalletScreeningResultSeverity = "UNKNOWN" WalletScreeningResultSeverityLow WalletScreeningResultSeverity = "LOW" WalletScreeningResultSeverityMedium WalletScreeningResultSeverity = "MEDIUM" WalletScreeningResultSeverityHigh WalletScreeningResultSeverity = "HIGH" WalletScreeningResultSeverityCritical WalletScreeningResultSeverity = "CRITICAL" )
Known values of WalletScreeningResultSeverity.
type WalletScreeningResultSourceOfFunds ¶
type WalletScreeningResultSourceOfFunds struct {
// Normalised risk category, e.g. `exchange_licensed`, `dex`, `defi`,
// `payment_processor`, `mixer`, `darknet_market`, `sanctioned`, `stolen_funds`,
// `high_risk_exchange`.
Category string `json:"category"`
// Share of the direction's total exposure, 0-100.
Percentage float64 `json:"percentage"`
// USD value attributed to this entity.
AmountUsd float64 `json:"amount_usd"`
// Name of the attributed entity, for example an exchange, a mixer or a
// sanctioned group.
EntityName string `json:"entity_name"`
// Provider entity type (e.g. `Exchange`, `DeFi`, `Sanctions`, `Theft`).
EntityType string `json:"entity_type"`
// More granular subtype (e.g. `Mandatory KYC and AML`, `OFAC`, `Yield
// Aggregator`).
EntitySubtype string `json:"entity_subtype"`
// Number of hops to the entity (1 for a direct counterparty), when the provider
// reports one. Always `null` for Merkle Science, which reports only whether
// exposure is direct or indirect: use `exposure_type`.
Hops int64 `json:"hops"`
// `entity_type / entity_subtype`, as the provider labels the entity.
Description string `json:"description"`
// True when `exposure_type` is `direct`.
IsDirect bool `json:"is_direct"`
// Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
ExposureDirection WalletScreeningResultSourceOfFundsExposureDirection `json:"exposure_direction"`
// `direct` (1 hop) or `indirect` (multi-hop) exposure.
ExposureType WalletScreeningResultSourceOfFundsExposureType `json:"exposure_type"`
// The provider's own identifier for the entity.
ProviderEntityID string `json:"provider_entity_id"`
// The provider's own identifier for `entity_type`.
ProviderEntityTypeID string `json:"provider_entity_type_id"`
// The provider's own identifier for `entity_subtype`.
ProviderEntitySubtypeID string `json:"provider_entity_subtype_id"`
// Primary ISO 3166-1 alpha-2 country of the entity. Empty or `null` when the
// provider does not know it.
Country string `json:"country"`
// Amount in the asset's own unit, when the provider reports it.
RawAmount float64 `json:"raw_amount"`
// Unit of `raw_amount`, when the provider reports it.
RawCurrency string `json:"raw_currency"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WalletScreeningResultSourceOfFunds is a response object.
func (*WalletScreeningResultSourceOfFunds) UnmarshalJSON ¶
func (r *WalletScreeningResultSourceOfFunds) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WalletScreeningResultSourceOfFunds leniently.
type WalletScreeningResultSourceOfFundsExposureDirection ¶
type WalletScreeningResultSourceOfFundsExposureDirection string
WalletScreeningResultSourceOfFundsExposureDirection: Whether the funds came from (`incoming`) or went to (`outgoing`) this entity.
WalletScreeningResultSourceOfFundsExposureDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultSourceOfFundsExposureDirectionIncoming WalletScreeningResultSourceOfFundsExposureDirection = "incoming" WalletScreeningResultSourceOfFundsExposureDirectionOutgoing WalletScreeningResultSourceOfFundsExposureDirection = "outgoing" WalletScreeningResultSourceOfFundsExposureDirectionConnected WalletScreeningResultSourceOfFundsExposureDirection = "connected" )
Known values of WalletScreeningResultSourceOfFundsExposureDirection.
type WalletScreeningResultSourceOfFundsExposureType ¶
type WalletScreeningResultSourceOfFundsExposureType string
WalletScreeningResultSourceOfFundsExposureType: `direct` (1 hop) or `indirect` (multi-hop) exposure.
WalletScreeningResultSourceOfFundsExposureType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultSourceOfFundsExposureTypeDirect WalletScreeningResultSourceOfFundsExposureType = "direct" WalletScreeningResultSourceOfFundsExposureTypeIndirect WalletScreeningResultSourceOfFundsExposureType = "indirect" )
Known values of WalletScreeningResultSourceOfFundsExposureType.
type WalletScreeningResultStatus ¶
type WalletScreeningResultStatus string
WalletScreeningResultStatus: Screening outcome status.
WalletScreeningResultStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningResultStatusScreened WalletScreeningResultStatus = "SCREENED" WalletScreeningResultStatusPending WalletScreeningResultStatus = "PENDING" WalletScreeningResultStatusError WalletScreeningResultStatus = "ERROR" )
Known values of WalletScreeningResultStatus.
type WalletScreeningScreenParams ¶
type WalletScreeningScreenParams struct {
// The crypto address or network identifier to screen. Must match the selected
// network (e.g. a `0x`-prefixed 40-hex-char address for EVM chains). Alias:
// `address`. Required.
WalletAddress string `json:"wallet_address"`
// Network identifier. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE,
// TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), and ARB (Arbitrum One).
// USDT and USDC are legacy Ethereum aliases, not multi-network searches.
// Connected-provider coverage varies. LIGHTNING requires a supported connected
// provider. CELO (Celo), MODE (Mode) and PLUME (Plume) are screened through a
// connected TRM Labs account; managed screening answers 400 for them. Alias:
// `currency`. Required.
Blockchain WalletScreeningScreenParamsBlockchain `json:"blockchain"`
// Optional. Whether the address is being screened as an inbound (deposit) or
// outbound (withdrawal) counterparty. Accepts `inbound`, `outbound`, `deposit`,
// or `withdrawal`. Defaults to a neutral pre-transfer screen when omitted. This
// is passed to the provider as context only; it does not change the returned
// `risk_score`, `severity`, or the `source_of_funds`/`destination_of_funds`
// breakdowns, which are always both returned regardless of `direction`.
// Changing or omitting `direction` therefore does not require re-screening an
// address.
Direction Opt[WalletScreeningScreenParamsDirection] `json:"direction"`
}
WalletScreeningScreenParams holds the parameters of Client.WalletScreening.Screen.
func (WalletScreeningScreenParams) MarshalJSON ¶
func (r WalletScreeningScreenParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WalletScreeningScreenParamsBlockchain ¶
type WalletScreeningScreenParamsBlockchain string
WalletScreeningScreenParamsBlockchain: Network identifier. Managed screening supports BTC, ETH, LTC, XRP, BCH, DOGE, TRX, SOL, MATIC, BNB, BASE (Base), OP (Optimism), and ARB (Arbitrum One). USDT and USDC are legacy Ethereum aliases, not multi-network searches. Connected-provider coverage varies. LIGHTNING requires a supported connected provider. CELO (Celo), MODE (Mode) and PLUME (Plume) are screened through a connected TRM Labs account; managed screening answers 400 for them. Alias: `currency`.
WalletScreeningScreenParamsBlockchain is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningScreenParamsBlockchainBtc WalletScreeningScreenParamsBlockchain = "BTC" WalletScreeningScreenParamsBlockchainLightning WalletScreeningScreenParamsBlockchain = "LIGHTNING" WalletScreeningScreenParamsBlockchainEth WalletScreeningScreenParamsBlockchain = "ETH" WalletScreeningScreenParamsBlockchainLtc WalletScreeningScreenParamsBlockchain = "LTC" WalletScreeningScreenParamsBlockchainXrp WalletScreeningScreenParamsBlockchain = "XRP" WalletScreeningScreenParamsBlockchainBch WalletScreeningScreenParamsBlockchain = "BCH" WalletScreeningScreenParamsBlockchainDoge WalletScreeningScreenParamsBlockchain = "DOGE" WalletScreeningScreenParamsBlockchainTrx WalletScreeningScreenParamsBlockchain = "TRX" WalletScreeningScreenParamsBlockchainSol WalletScreeningScreenParamsBlockchain = "SOL" WalletScreeningScreenParamsBlockchainMatic WalletScreeningScreenParamsBlockchain = "MATIC" WalletScreeningScreenParamsBlockchainBnb WalletScreeningScreenParamsBlockchain = "BNB" WalletScreeningScreenParamsBlockchainUsdt WalletScreeningScreenParamsBlockchain = "USDT" WalletScreeningScreenParamsBlockchainUsdc WalletScreeningScreenParamsBlockchain = "USDC" WalletScreeningScreenParamsBlockchainBase WalletScreeningScreenParamsBlockchain = "BASE" WalletScreeningScreenParamsBlockchainOp WalletScreeningScreenParamsBlockchain = "OP" WalletScreeningScreenParamsBlockchainArb WalletScreeningScreenParamsBlockchain = "ARB" WalletScreeningScreenParamsBlockchainCelo WalletScreeningScreenParamsBlockchain = "CELO" WalletScreeningScreenParamsBlockchainMode WalletScreeningScreenParamsBlockchain = "MODE" WalletScreeningScreenParamsBlockchainPlume WalletScreeningScreenParamsBlockchain = "PLUME" )
Known values of WalletScreeningScreenParamsBlockchain.
type WalletScreeningScreenParamsDirection ¶
type WalletScreeningScreenParamsDirection string
WalletScreeningScreenParamsDirection: Optional. Whether the address is being screened as an inbound (deposit) or outbound (withdrawal) counterparty. Accepts `inbound`, `outbound`, `deposit`, or `withdrawal`. Defaults to a neutral pre-transfer screen when omitted. This is passed to the provider as context only; it does not change the returned `risk_score`, `severity`, or the `source_of_funds`/`destination_of_funds` breakdowns, which are always both returned regardless of `direction`. Changing or omitting `direction` therefore does not require re-screening an address.
WalletScreeningScreenParamsDirection is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WalletScreeningScreenParamsDirectionInbound WalletScreeningScreenParamsDirection = "inbound" WalletScreeningScreenParamsDirectionOutbound WalletScreeningScreenParamsDirection = "outbound" WalletScreeningScreenParamsDirectionDeposit WalletScreeningScreenParamsDirection = "deposit" WalletScreeningScreenParamsDirectionWithdrawal WalletScreeningScreenParamsDirection = "withdrawal" )
Known values of WalletScreeningScreenParamsDirection.
type WalletScreeningService ¶
type WalletScreeningService struct {
// contains filtered or unexported fields
}
WalletScreeningService holds the wallet_screening operations. Use it through Client.WalletScreening.
func (*WalletScreeningService) Screen ¶
func (r *WalletScreeningService) Screen(ctx context.Context, params WalletScreeningScreenParams, opts ...option.RequestOption) (*WalletScreeningResult, error)
Screen: Screen a wallet address.
Run on-demand AML screening for a single crypto wallet/address without creating a transaction. Resolves your application's configured blockchain analytics provider, screens the address synchronously, and returns the normalised risk result. LIGHTNING is available only with an Elliptic or Chainalysis BYOK connection added through Marketplace. Nothing is written to the transactions table. One AML monitoring usage is billed per successful screening (sandbox applications are not billed).
POST /v3/wallet-screening/
func (*WalletScreeningService) ScreenPDF ¶
func (r *WalletScreeningService) ScreenPDF(ctx context.Context, params WalletScreeningResultParam, opts ...option.RequestOption) (*http.Response, error)
ScreenPDF: Render a wallet-screening result as a PDF.
Stateless companion to `POST /v3/wallet-screening/`: repost the exact JSON body that endpoint returned - including the `report_signature` it added - and get back a Didit-branded PDF of the same result. No provider is called and nothing is billed or persisted; this only re-renders a result Didit already produced. The signature ties the PDF to an unmodified result: editing `risk_score`, `severity`, `sanctions_hit`, or any other signed field before reposting fails with `400`.
The response is a file (application/pdf). Read it from the returned response's body and close it.
POST /v3/wallet-screening/pdf/
type WebhookConfig ¶
type WebhookConfig struct {
// Application-level (legacy) webhook URL. Didit sends to it only while the
// application has no enabled destination, and then only `status.updated` and
// `data.updated`. Every create, update or delete of a destination sets it to
// the URL of the oldest enabled destination, or `null` when none is enabled.
WebhookURL string `json:"webhook_url"`
// Payload version of the legacy `webhook_url`. Each destination has its own
// `webhook_version`.
WebhookVersion WebhookConfigWebhookVersion `json:"webhook_version"`
// deliveries to the legacy `webhook_url`; each destination signs with its own
// `secret_shared_key`. API-key callers always receive it in full; Console users
// without `read:webhooks` receive an empty string.
SecretSharedKey string `json:"secret_shared_key"`
// Legacy application setting. The verification flow does not read it: capture
// options are configured per workflow.
CaptureMethod WebhookConfigCaptureMethod `json:"capture_method"`
// Automatic deletion window. User verification sessions created more than this
// many months ago (a month counts as 30 days) are deleted automatically, and
// that deletion is irreversible. `null` means sessions are never deleted
// automatically. See [Data
// retention](https://docs.didit.me/console/data-retention).
DataRetentionMonths int64 `json:"data_retention_months"`
// What happens to a session's face embedding when the session is deleted.
// `delete_with_session` (default) deletes it with the session.
// `retain_until_user_deleted` is the opt-in [biometric template
// retention](https://docs.didit.me/console/data-retention#biometric-template-retention):
// an image-free biometric template linked to the User is managed separately
// until its retention period ends, the User is deleted, or you purge it.
FaceRetentionPolicy WebhookConfigFaceRetentionPolicy `json:"face_retention_policy"`
// Retention period, in days, of biometric templates under
// `retain_until_user_deleted`. Required when that policy is set.
FaceRetentionDays int64 `json:"face_retention_days"`
// Every event type a destination can subscribe to, with a display label.
AvailableEvents []WebhookConfigAvailableEvents `json:"available_events"`
// Hostnames (exact match, HTTPS only) a standalone Digital ID wallet
// verification may send the user back to with its `return_url`. Your
// white-label domain is always allowed as well. See [Register your return
// destination](https://docs.didit.me/standalone-apis/digital-id-wallets#register-your-return-destination).
AllowedReturnHosts []string `json:"allowed_return_hosts"`
// Every webhook destination of the application, oldest first, each with its
// signing secret. Read only here: manage destinations with the
// `/v3/webhook/destinations/` endpoints.
Endpoints []WebhookConfigDestination `json:"endpoints"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhookConfig: Application-level webhook configuration, retention policy and Digital ID wallet return hosts, with every webhook destination.
func (*WebhookConfig) UnmarshalJSON ¶
func (r *WebhookConfig) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhookConfig leniently.
type WebhookConfigAvailableEvents ¶
type WebhookConfigAvailableEvents struct {
Value WebhookEvent `json:"value"`
// Display label, for example `Session status updated`.
Label string `json:"label"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhookConfigAvailableEvents is a response object.
func (*WebhookConfigAvailableEvents) UnmarshalJSON ¶
func (r *WebhookConfigAvailableEvents) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhookConfigAvailableEvents leniently.
type WebhookConfigCaptureMethod ¶
type WebhookConfigCaptureMethod string
WebhookConfigCaptureMethod: Legacy application setting. The verification flow does not read it: capture options are configured per workflow.
WebhookConfigCaptureMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhookConfigCaptureMethodMobile WebhookConfigCaptureMethod = "MOBILE" WebhookConfigCaptureMethodMobileAndDesktop WebhookConfigCaptureMethod = "MOBILE_AND_DESKTOP" )
Known values of WebhookConfigCaptureMethod.
type WebhookConfigDestination ¶
type WebhookConfigDestination struct {
// Destination ID.
UUID string `json:"uuid"`
// Human-readable name.
Label string `json:"label"`
// HTTPS endpoint Didit posts events to.
URL string `json:"url"`
// `false` pauses deliveries to this destination.
Enabled bool `json:"enabled"`
// Payload version sent to this destination.
WebhookVersion WebhookConfigDestinationWebhookVersion `json:"webhook_version"`
// webhook with the secret of the destination it was sent to. API-key callers
// always receive it in full; Console users without `read:webhooks` receive an
// empty string.
SecretSharedKey string `json:"secret_shared_key"`
// Event types delivered to this destination. Empty when the destination was
// created without events, in which case it receives nothing.
SubscribedEvents []WebhookEvent `json:"subscribed_events"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhookConfigDestination: A webhook destination as listed in the webhook configuration, without delivery metrics. `GET /v3/webhook/destinations/{destination_uuid}/` adds its delivery summary.
func (*WebhookConfigDestination) UnmarshalJSON ¶
func (r *WebhookConfigDestination) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhookConfigDestination leniently.
type WebhookConfigDestinationWebhookVersion ¶
type WebhookConfigDestinationWebhookVersion string
WebhookConfigDestinationWebhookVersion: Payload version sent to this destination.
WebhookConfigDestinationWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhookConfigDestinationWebhookVersionV1 WebhookConfigDestinationWebhookVersion = "v1" WebhookConfigDestinationWebhookVersionV2 WebhookConfigDestinationWebhookVersion = "v2" WebhookConfigDestinationWebhookVersionV3 WebhookConfigDestinationWebhookVersion = "v3" )
Known values of WebhookConfigDestinationWebhookVersion.
type WebhookConfigFaceRetentionPolicy ¶
type WebhookConfigFaceRetentionPolicy string
WebhookConfigFaceRetentionPolicy: What happens to a session's face embedding when the session is deleted. `delete_with_session` (default) deletes it with the session. `retain_until_user_deleted` is the opt-in [biometric template retention](https://docs.didit.me/console/data-retention#biometric-template-retention): an image-free biometric template linked to the User is managed separately until its retention period ends, the User is deleted, or you purge it.
WebhookConfigFaceRetentionPolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhookConfigFaceRetentionPolicyDeleteWithSession WebhookConfigFaceRetentionPolicy = "delete_with_session" WebhookConfigFaceRetentionPolicyRetainUntilUserDeleted WebhookConfigFaceRetentionPolicy = "retain_until_user_deleted" )
Known values of WebhookConfigFaceRetentionPolicy.
type WebhookConfigWebhookVersion ¶
type WebhookConfigWebhookVersion string
WebhookConfigWebhookVersion: Payload version of the legacy `webhook_url`. Each destination has its own `webhook_version`.
WebhookConfigWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhookConfigWebhookVersionV1 WebhookConfigWebhookVersion = "v1" WebhookConfigWebhookVersionV2 WebhookConfigWebhookVersion = "v2" WebhookConfigWebhookVersionV3 WebhookConfigWebhookVersion = "v3" )
Known values of WebhookConfigWebhookVersion.
type WebhookDestinationDelivery ¶
type WebhookDestinationDelivery struct {
// Delivery ID, for the detail and resend calls.
UUID string `json:"uuid"`
// User verification session the event is about. `null` for business session,
// user, business, transaction, Travel Rule and workflow events.
SessionID string `json:"session_id"`
// URL the delivery was sent to: the destination's URL when the event was
// generated.
RequestURL string `json:"request_url"`
// HTTP status your endpoint returned. `null` while the delivery is queued and
// not yet attempted. When no HTTP answer was received Didit records a status of
// its own: `504` when your endpoint did not answer within 5 seconds, `503` for
// a connection failure, `400` when the URL was refused as unsafe (for example a
// private or internal address), and `404` for any other request error. `400` or
// above counts as a failed delivery.
ResponseStatus int64 `json:"response_status"`
// Time the attempt took, in milliseconds. `null` while the delivery is queued.
ResponseTimeMs int64 `json:"response_time_ms"`
// Status the event reported when it was generated: the session status for
// session events (for example `Approved` or `In Review`), the person's or
// company's status for user and business events, and the transaction status for
// transaction events. `null` for events that carry no status.
Status string `json:"status"`
WebhookType WebhookEvent `json:"webhook_type"`
// When the delivery was created.
CreatedAt time.Time `json:"created_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhookDestinationDelivery: One delivery attempt to a webhook destination. The first send of an event, each automatic retry and each resend are separate deliveries.
func (*WebhookDestinationDelivery) UnmarshalJSON ¶
func (r *WebhookDestinationDelivery) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhookDestinationDelivery leniently.
type WebhookDestinationDeliveryDetail ¶
type WebhookDestinationDeliveryDetail struct {
// Delivery ID, for the detail and resend calls.
UUID string `json:"uuid"`
// User verification session the event is about. `null` for business session,
// user, business, transaction, Travel Rule and workflow events.
SessionID string `json:"session_id"`
// URL the delivery was sent to: the destination's URL when the event was
// generated.
RequestURL string `json:"request_url"`
// HTTP status your endpoint returned. `null` while the delivery is queued and
// not yet attempted. When no HTTP answer was received Didit records a status of
// its own: `504` when your endpoint did not answer within 5 seconds, `503` for
// a connection failure, `400` when the URL was refused as unsafe (for example a
// private or internal address), and `404` for any other request error. `400` or
// above counts as a failed delivery.
ResponseStatus int64 `json:"response_status"`
// Time the attempt took, in milliseconds. `null` while the delivery is queued.
ResponseTimeMs int64 `json:"response_time_ms"`
// Status the event reported when it was generated: the session status for
// session events (for example `Approved` or `In Review`), the person's or
// company's status for user and business events, and the transaction status for
// transaction events. `null` for events that carry no status.
Status string `json:"status"`
WebhookType WebhookEvent `json:"webhook_type"`
// When the delivery was created.
CreatedAt time.Time `json:"created_at"`
// JSON text (a string) of the request headers Didit sent: `Content-Type`,
// `X-Signature`, `X-Signature-V2`, `X-Signature-Simple`, `X-Timestamp` and
// `User-Agent`. Parse it with a JSON parser. It holds signatures, never the
// signing secret.
RequestHeader string `json:"request_header"`
// JSON text (a string) of the exact payload Didit sent, keys sorted, including
// `event_id` and `timestamp`. Parse it with a JSON parser; see [Payload
// shape](https://docs.didit.me/integration/webhooks#payload-shape). For a
// scoped key without `media: read`, media URLs inside it are `null`; without
// `sessions: write`, session tokens and hosted verification links are `null`. A
// body changed that way no longer matches its signatures. Didit does not record
// the response body your endpoint returned.
RequestBody string `json:"request_body"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhookDestinationDeliveryDetail: One delivery attempt to a webhook destination, with the exact request headers and body Didit sent.
func (*WebhookDestinationDeliveryDetail) UnmarshalJSON ¶
func (r *WebhookDestinationDeliveryDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhookDestinationDeliveryDetail leniently.
type WebhookEvent ¶
type WebhookEvent string
WebhookEvent: Supported webhook event name. Use these exact strings in `subscribed_events`; unsupported values are rejected.
WebhookEvent is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhookEventStatusUpdated WebhookEvent = "status.updated" WebhookEventDataUpdated WebhookEvent = "data.updated" WebhookEventUserStatusUpdated WebhookEvent = "user.status.updated" WebhookEventUserDataUpdated WebhookEvent = "user.data.updated" WebhookEventBusinessStatusUpdated WebhookEvent = "business.status.updated" WebhookEventBusinessDataUpdated WebhookEvent = "business.data.updated" WebhookEventActivityCreated WebhookEvent = "activity.created" WebhookEventTransactionCreated WebhookEvent = "transaction.created" WebhookEventTransactionStatusUpdated WebhookEvent = "transaction.status.updated" WebhookEventTravelRuleStatusUpdated WebhookEvent = "travel_rule.status.updated" WebhookEventWorkflowComplianceChanged WebhookEvent = "workflow.compliance_changed" WebhookEventAuthSignup WebhookEvent = "auth.signup" WebhookEventAuthLogin WebhookEvent = "auth.login" WebhookEventAuthLoginFailed WebhookEvent = "auth.login_failed" WebhookEventAuthPasswordResetRequested WebhookEvent = "auth.password_reset_requested" WebhookEventAuthPasswordResetCompleted WebhookEvent = "auth.password_reset_completed" WebhookEventAuthMFAChanged WebhookEvent = "auth.mfa_changed" WebhookEventAuthNewDevice WebhookEvent = "auth.new_device" WebhookEventAuthAccountLocked WebhookEvent = "auth.account_locked" WebhookEventInvestigatorReportReady WebhookEvent = "investigator.report.ready" WebhookEventInvestigatorDecisionAutomated WebhookEvent = "investigator.decision.automated" WebhookEventInvestigatorDecisionOverridden WebhookEvent = "investigator.decision.overridden" WebhookEventInvestigatorDecisionContested WebhookEvent = "investigator.decision.contested" WebhookEventInvestigatorQuestionRaised WebhookEvent = "investigator.question.raised" WebhookEventInvestigatorAutomationPaused WebhookEvent = "investigator.automation.paused" WebhookEventInvestigatorRfiAnswered WebhookEvent = "investigator.rfi.answered" WebhookEventInvestigatorRfiOverdue WebhookEvent = "investigator.rfi.overdue" WebhookEventInvestigatorDriftDetected WebhookEvent = "investigator.drift.detected" WebhookEventInvestigatorSLABreached WebhookEvent = "investigator.sla.breached" WebhookEventInvestigatorQaFailed WebhookEvent = "investigator.qa.failed" WebhookEventInvestigatorExternalReportReady WebhookEvent = "investigator.external.report.ready" )
Known values of WebhookEvent.
type WebhookVerificationError ¶
type WebhookVerificationError struct {
Reason WebhookVerificationReason
Message string
}
WebhookVerificationError reports a webhook delivery that failed verification. Reason is machine-readable.
func (*WebhookVerificationError) Error ¶
func (e *WebhookVerificationError) Error() string
type WebhookVerificationReason ¶
type WebhookVerificationReason string
WebhookVerificationReason is the machine-readable reason of a *WebhookVerificationError.
const ( // WebhookReasonMissingSignature: no signature header at all. WebhookReasonMissingSignature WebhookVerificationReason = "missing_signature" // WebhookReasonInvalidSignature: no signature matched any secret. Also // returned when only X-Signature-Simple is present and AllowSimple is off. WebhookReasonInvalidSignature WebhookVerificationReason = "invalid_signature" // WebhookReasonTimestampMismatch: X-Timestamp differs from the body's // timestamp. WebhookReasonTimestampMismatch WebhookVerificationReason = "timestamp_mismatch" // WebhookReasonTimestampOutOfTolerance: the timestamp is further from now // than the tolerance. WebhookReasonTimestampOutOfTolerance WebhookVerificationReason = "timestamp_out_of_tolerance" // WebhookReasonMissingTimestamp: the body has no integer timestamp. WebhookReasonMissingTimestamp WebhookVerificationReason = "missing_timestamp" // WebhookReasonInvalidPayload: the body is not a UTF-8 JSON object. WebhookReasonInvalidPayload WebhookVerificationReason = "invalid_payload" )
Webhook verification failure reasons (docs/DESIGN.md section 9.3).
type WebhooksDestinationsCreateParams ¶
type WebhooksDestinationsCreateParams struct {
// Human-readable name displayed in Console → Webhooks. Helps distinguish
// destinations when you have several (e.g. "Prod", "Staging mirror"). Required.
Label string `json:"label"`
// HTTPS URL that will receive `POST` requests. Must be unique among the
// application's destinations. Use a stable, hardened endpoint: Didit retries
// failed deliveries on a backoff schedule. Required.
URL string `json:"url"`
// When `false`, the destination is saved but Didit will not push any webhooks
// to it. Useful for staging configs you want to keep parked.
Enabled Opt[bool] `json:"enabled"`
// Payload schema version Didit will send. `v3` is the current/recommended
// format; older versions are kept for backward compatibility with legacy
// integrations.
WebhookVersion Opt[WebhooksDestinationsCreateParamsWebhookVersion] `json:"webhook_version"`
// Events to deliver. Effectively required: an explicit `[]` is rejected with
// 400, and omitting the field creates a destination with no subscriptions that
// receives nothing.
SubscribedEvents Opt[[]WebhookEvent] `json:"subscribed_events"`
}
WebhooksDestinationsCreateParams holds the parameters of Client.Webhooks.Destinations.Create.
func (WebhooksDestinationsCreateParams) MarshalJSON ¶
func (r WebhooksDestinationsCreateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WebhooksDestinationsCreateParamsWebhookVersion ¶
type WebhooksDestinationsCreateParamsWebhookVersion string
WebhooksDestinationsCreateParamsWebhookVersion: Payload schema version Didit will send. `v3` is the current/recommended format; older versions are kept for backward compatibility with legacy integrations.
WebhooksDestinationsCreateParamsWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsCreateParamsWebhookVersionV1 WebhooksDestinationsCreateParamsWebhookVersion = "v1" WebhooksDestinationsCreateParamsWebhookVersionV2 WebhooksDestinationsCreateParamsWebhookVersion = "v2" WebhooksDestinationsCreateParamsWebhookVersionV3 WebhooksDestinationsCreateParamsWebhookVersion = "v3" )
Known values of WebhooksDestinationsCreateParamsWebhookVersion.
type WebhooksDestinationsCreateResponse ¶
type WebhooksDestinationsCreateResponse struct {
// Stable destination identifier. Use as `{destination_uuid}` in subsequent
// calls.
UUID string `json:"uuid"`
Label string `json:"label"`
URL string `json:"url"`
Enabled bool `json:"enabled"`
WebhookVersion WebhooksDestinationsCreateResponseWebhookVersion `json:"webhook_version"`
// URL-safe token). Use it to verify the signature headers on incoming webhooks.
// Always returned in full to API-key callers; Console users need the
// `read:webhooks` permission, otherwise they see an empty string.
SecretSharedKey string `json:"secret_shared_key"`
// Last four characters of the destination's current signing secret, so you can
// tell secrets apart. Not enough to verify a signature.
SecretLast4 string `json:"secret_last4"`
// Set for 24 hours after the destination's signing secret is rotated in the
// Business Console. Until this time, every delivery to the destination also
// carries `X-Signature-Previous`, `X-Signature-V2-Previous` and
// `X-Signature-Simple-Previous`, made with the replaced secret (see [Signature
// verification](/integration/webhooks#signature-verification)). `null` when no
// rotation happened in the last 24 hours.
PreviousSecretExpiresAt time.Time `json:"previous_secret_expires_at"`
SubscribedEvents []WebhookEvent `json:"subscribed_events"`
// Email of the Business Console member who created the destination. `null` for
// a destination created with an API key.
CreatedByEmail string `json:"created_by_email"`
// Name of the Business Console member who created the destination. `null` for a
// destination created with an API key.
CreatedByName string `json:"created_by_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// Delivery health. `failing`: 3 or more consecutive events failed their first
// delivery attempt since the destination last answered successfully (see
// `failing_streak`). `degraded`: not failing, but a delivery attempt failed in
// the last 24 hours and no later attempt has delivered that event; a retry or
// resend that delivers it clears this. `healthy`: neither. Independent of
// `enabled`. A failed attempt is one answered with HTTP 400 or above, or not
// answered at all.
HealthStatus WebhooksDestinationsCreateResponseHealthStatus `json:"health_status"`
// How many consecutive events failed their first delivery attempt since the
// destination last answered successfully, within the last 30 days. Retries are
// not counted, and any successful attempt, including a retry or a resend, ends
// the streak. `0` when no event has failed since the last success.
FailingStreak int64 `json:"failing_streak"`
// When the first failed attempt of the current `failing_streak` was made.
// `null` when `failing_streak` is `0`.
FailingSince time.Time `json:"failing_since"`
// When the destination last answered a delivery with an HTTP status under 400,
// within the last 30 days. `null` if it has not in that window.
LastSuccessAt time.Time `json:"last_success_at"`
// Environment of the application that owns the destination.
Environment WebhooksDestinationsCreateResponseEnvironment `json:"environment"`
// Delivery metrics for the last `metrics_window_days` (30) days.
// `last_delivery_at` is the most recent attempt, whenever it was made.
Summary WebhooksDestinationsCreateResponseSummary `json:"summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsCreateResponse is a response object.
func (*WebhooksDestinationsCreateResponse) UnmarshalJSON ¶
func (r *WebhooksDestinationsCreateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsCreateResponse leniently.
type WebhooksDestinationsCreateResponseEnvironment ¶
type WebhooksDestinationsCreateResponseEnvironment string
WebhooksDestinationsCreateResponseEnvironment: Environment of the application that owns the destination.
WebhooksDestinationsCreateResponseEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsCreateResponseEnvironmentLive WebhooksDestinationsCreateResponseEnvironment = "live" WebhooksDestinationsCreateResponseEnvironmentSandbox WebhooksDestinationsCreateResponseEnvironment = "sandbox" )
Known values of WebhooksDestinationsCreateResponseEnvironment.
type WebhooksDestinationsCreateResponseHealthStatus ¶
type WebhooksDestinationsCreateResponseHealthStatus string
WebhooksDestinationsCreateResponseHealthStatus: Delivery health. `failing`: 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (see `failing_streak`). `degraded`: not failing, but a delivery attempt failed in the last 24 hours and no later attempt has delivered that event; a retry or resend that delivers it clears this. `healthy`: neither. Independent of `enabled`. A failed attempt is one answered with HTTP 400 or above, or not answered at all.
WebhooksDestinationsCreateResponseHealthStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsCreateResponseHealthStatusHealthy WebhooksDestinationsCreateResponseHealthStatus = "healthy" WebhooksDestinationsCreateResponseHealthStatusDegraded WebhooksDestinationsCreateResponseHealthStatus = "degraded" WebhooksDestinationsCreateResponseHealthStatusFailing WebhooksDestinationsCreateResponseHealthStatus = "failing" )
Known values of WebhooksDestinationsCreateResponseHealthStatus.
type WebhooksDestinationsCreateResponseSummary ¶
type WebhooksDestinationsCreateResponseSummary struct {
TotalDeliveries int64 `json:"total_deliveries"`
FailedDeliveries int64 `json:"failed_deliveries"`
ErrorRatePercentage int64 `json:"error_rate_percentage"`
MinResponseTimeMs int64 `json:"min_response_time_ms"`
AvgResponseTimeMs int64 `json:"avg_response_time_ms"`
MaxResponseTimeMs int64 `json:"max_response_time_ms"`
LastDeliveryAt time.Time `json:"last_delivery_at"`
// Length in days of the window the other summary metrics cover. Always `30`.
MetricsWindowDays int64 `json:"metrics_window_days"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsCreateResponseSummary: Delivery metrics for the last `metrics_window_days` (30) days. `last_delivery_at` is the most recent attempt, whenever it was made.
func (*WebhooksDestinationsCreateResponseSummary) UnmarshalJSON ¶
func (r *WebhooksDestinationsCreateResponseSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsCreateResponseSummary leniently.
type WebhooksDestinationsCreateResponseWebhookVersion ¶
type WebhooksDestinationsCreateResponseWebhookVersion string
WebhooksDestinationsCreateResponseWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsCreateResponseWebhookVersionV1 WebhooksDestinationsCreateResponseWebhookVersion = "v1" WebhooksDestinationsCreateResponseWebhookVersionV2 WebhooksDestinationsCreateResponseWebhookVersion = "v2" WebhooksDestinationsCreateResponseWebhookVersionV3 WebhooksDestinationsCreateResponseWebhookVersion = "v3" )
Known values of WebhooksDestinationsCreateResponseWebhookVersion.
type WebhooksDestinationsListDeliveriesParams ¶
type WebhooksDestinationsListDeliveriesParams struct {
// Maximum number of deliveries per page. Defaults to 50. A value that is not a
// positive integer falls back to 50; a value above 1000000 returns `400`.
Limit Opt[int64] `json:"-" query:"limit"`
// Number of deliveries to skip. Defaults to 0. Prefer following the `next` and
// `previous` URLs from the response.
Offset Opt[int64] `json:"-" query:"offset"`
// First UTC day to include, as `YYYY-MM-DD` (inclusive). Omit to start from the
// oldest delivery available. `dateFrom` is accepted as an alias.
DateFrom Opt[string] `json:"-" query:"date_from"`
// Last UTC day to include, as `YYYY-MM-DD` (inclusive). Must not be earlier
// than `date_from`. `dateTo` is accepted as an alias.
DateTo Opt[string] `json:"-" query:"date_to"`
}
WebhooksDestinationsListDeliveriesParams holds the parameters of Client.Webhooks.Destinations.ListDeliveries.
func (WebhooksDestinationsListDeliveriesParams) MarshalJSON ¶
func (r WebhooksDestinationsListDeliveriesParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WebhooksDestinationsListResponse ¶
type WebhooksDestinationsListResponse struct {
// Stable destination identifier; use as `{destination_uuid}` for update/delete.
UUID string `json:"uuid"`
// Human-readable name shown in the Console.
Label string `json:"label"`
// Destination URL that receives `POST` requests with the webhook payload.
URL string `json:"url"`
// When `false`, Didit silently skips delivery to this destination.
Enabled bool `json:"enabled"`
// Payload schema version sent to this destination. `v3` is the
// current/recommended format.
WebhookVersion WebhooksDestinationsListResponseWebhookVersion `json:"webhook_version"`
SubscribedEvents []WebhookEvent `json:"subscribed_events"`
// Cached length of `subscribed_events`, useful for UI rendering.
SubscribedEventsCount int64 `json:"subscribed_events_count"`
// Delivery attempts (retries included) made to this destination in the last 30
// days.
DeliveriesCount int64 `json:"deliveries_count"`
// Delivery attempts in the last 30 days that the destination answered with HTTP
// 400 or above, or did not answer (timeout, refused connection or blocked
// address).
FailedDeliveriesCount int64 `json:"failed_deliveries_count"`
// Average response time in milliseconds over the last 30 days, rounded to an
// integer. `null` when there were no deliveries in that window.
AverageResponseTimeMs int64 `json:"average_response_time_ms"`
// `round(failed_deliveries_count / deliveries_count * 100)` over the last 30
// days; `0` when there are no deliveries.
ErrorRatePercentage int64 `json:"error_rate_percentage"`
// Timestamp of the most recent delivery attempt (success or failure). `null` if
// never delivered.
LastDeliveryAt time.Time `json:"last_delivery_at"`
// Length in days of the window that `deliveries_count`,
// `failed_deliveries_count`, `average_response_time_ms`,
// `error_rate_percentage` and `daily_points` cover. Always `30`.
MetricsWindowDays int64 `json:"metrics_window_days"`
// Delivery health. `failing`: 3 or more consecutive events failed their first
// delivery attempt since the destination last answered successfully (see
// `failing_streak`). `degraded`: not failing, but a delivery attempt failed in
// the last 24 hours and no later attempt has delivered that event; a retry or
// resend that delivers it clears this. `healthy`: neither. Independent of
// `enabled`. A failed attempt is one answered with HTTP 400 or above, or not
// answered at all.
HealthStatus WebhooksDestinationsListResponseHealthStatus `json:"health_status"`
// How many consecutive events failed their first delivery attempt since the
// destination last answered successfully, within the last 30 days. Retries are
// not counted, and any successful attempt, including a retry or a resend, ends
// the streak. `0` when no event has failed since the last success.
FailingStreak int64 `json:"failing_streak"`
// When the first failed attempt of the current `failing_streak` was made.
// `null` when `failing_streak` is `0`.
FailingSince time.Time `json:"failing_since"`
// When the destination last answered a delivery with an HTTP status under 400,
// within the last 30 days. `null` if it has not in that window.
LastSuccessAt time.Time `json:"last_success_at"`
// Environment of the application that owns the destination.
Environment WebhooksDestinationsListResponseEnvironment `json:"environment"`
// One entry per UTC day of the last 30 days, oldest first, including days with
// no deliveries. Counts every attempt, retries included.
DailyPoints []WebhooksDestinationsListResponseDailyPoints `json:"daily_points"`
// Last four characters of the destination's current signing secret, so you can
// tell secrets apart. Not enough to verify a signature.
SecretLast4 string `json:"secret_last4"`
// Email of the Business Console member who created the destination. `null` for
// a destination created with an API key.
CreatedByEmail string `json:"created_by_email"`
// Name of the Business Console member who created the destination. `null` for a
// destination created with an API key.
CreatedByName string `json:"created_by_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsListResponse is a response object.
func (*WebhooksDestinationsListResponse) UnmarshalJSON ¶
func (r *WebhooksDestinationsListResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsListResponse leniently.
type WebhooksDestinationsListResponseDailyPoints ¶
type WebhooksDestinationsListResponseDailyPoints struct {
// The UTC day.
Date string `json:"date"`
// Delivery attempts made that day.
TotalDeliveries int64 `json:"total_deliveries"`
// Attempts made that day that were answered with HTTP 400 or above, or not
// answered at all.
FailedDeliveries int64 `json:"failed_deliveries"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsListResponseDailyPoints is a response object.
func (*WebhooksDestinationsListResponseDailyPoints) UnmarshalJSON ¶
func (r *WebhooksDestinationsListResponseDailyPoints) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsListResponseDailyPoints leniently.
type WebhooksDestinationsListResponseEnvironment ¶
type WebhooksDestinationsListResponseEnvironment string
WebhooksDestinationsListResponseEnvironment: Environment of the application that owns the destination.
WebhooksDestinationsListResponseEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsListResponseEnvironmentLive WebhooksDestinationsListResponseEnvironment = "live" WebhooksDestinationsListResponseEnvironmentSandbox WebhooksDestinationsListResponseEnvironment = "sandbox" )
Known values of WebhooksDestinationsListResponseEnvironment.
type WebhooksDestinationsListResponseHealthStatus ¶
type WebhooksDestinationsListResponseHealthStatus string
WebhooksDestinationsListResponseHealthStatus: Delivery health. `failing`: 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (see `failing_streak`). `degraded`: not failing, but a delivery attempt failed in the last 24 hours and no later attempt has delivered that event; a retry or resend that delivers it clears this. `healthy`: neither. Independent of `enabled`. A failed attempt is one answered with HTTP 400 or above, or not answered at all.
WebhooksDestinationsListResponseHealthStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsListResponseHealthStatusHealthy WebhooksDestinationsListResponseHealthStatus = "healthy" WebhooksDestinationsListResponseHealthStatusDegraded WebhooksDestinationsListResponseHealthStatus = "degraded" WebhooksDestinationsListResponseHealthStatusFailing WebhooksDestinationsListResponseHealthStatus = "failing" )
Known values of WebhooksDestinationsListResponseHealthStatus.
type WebhooksDestinationsListResponseWebhookVersion ¶
type WebhooksDestinationsListResponseWebhookVersion string
WebhooksDestinationsListResponseWebhookVersion: Payload schema version sent to this destination. `v3` is the current/recommended format.
WebhooksDestinationsListResponseWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsListResponseWebhookVersionV1 WebhooksDestinationsListResponseWebhookVersion = "v1" WebhooksDestinationsListResponseWebhookVersionV2 WebhooksDestinationsListResponseWebhookVersion = "v2" WebhooksDestinationsListResponseWebhookVersionV3 WebhooksDestinationsListResponseWebhookVersion = "v3" )
Known values of WebhooksDestinationsListResponseWebhookVersion.
type WebhooksDestinationsRetrieveAnalyticsParams ¶
type WebhooksDestinationsRetrieveAnalyticsParams struct {
// First UTC day to include, as `YYYY-MM-DD` (inclusive). Omit to start from the
// oldest delivery available. `dateFrom` is accepted as an alias.
DateFrom Opt[string] `json:"-" query:"date_from"`
// Last UTC day to include, as `YYYY-MM-DD` (inclusive). Must not be earlier
// than `date_from`. `dateTo` is accepted as an alias.
DateTo Opt[string] `json:"-" query:"date_to"`
}
WebhooksDestinationsRetrieveAnalyticsParams holds the parameters of Client.Webhooks.Destinations.RetrieveAnalytics.
func (WebhooksDestinationsRetrieveAnalyticsParams) MarshalJSON ¶
func (r WebhooksDestinationsRetrieveAnalyticsParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WebhooksDestinationsRetrieveAnalyticsResponse ¶
type WebhooksDestinationsRetrieveAnalyticsResponse struct {
// Totals over the requested range.
Summary WebhooksDestinationsRetrieveAnalyticsResponseSummary `json:"summary"`
// One entry per UTC day that had deliveries, oldest first. Days without
// deliveries are omitted, so fill the gaps with zeros when you chart them.
Points []WebhooksDestinationsRetrieveAnalyticsResponsePoints `json:"points"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsRetrieveAnalyticsResponse is a response object.
func (*WebhooksDestinationsRetrieveAnalyticsResponse) UnmarshalJSON ¶
func (r *WebhooksDestinationsRetrieveAnalyticsResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsRetrieveAnalyticsResponse leniently.
type WebhooksDestinationsRetrieveAnalyticsResponsePoints ¶
type WebhooksDestinationsRetrieveAnalyticsResponsePoints struct {
// UTC day, `YYYY-MM-DD`.
Date string `json:"date"`
// Delivery attempts, including queued ones.
TotalDeliveries int64 `json:"total_deliveries"`
// Attempts whose recorded HTTP status is 400 or above.
FailedDeliveries int64 `json:"failed_deliveries"`
// Fastest attempt in milliseconds, or `null` when no attempt has a recorded
// time.
MinResponseTimeMs int64 `json:"min_response_time_ms"`
// Mean attempt time in milliseconds, rounded, or `null` when no attempt has a
// recorded time.
AvgResponseTimeMs int64 `json:"avg_response_time_ms"`
// Slowest attempt in milliseconds, or `null` when no attempt has a recorded
// time.
MaxResponseTimeMs int64 `json:"max_response_time_ms"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsRetrieveAnalyticsResponsePoints is a response object.
func (*WebhooksDestinationsRetrieveAnalyticsResponsePoints) UnmarshalJSON ¶
func (r *WebhooksDestinationsRetrieveAnalyticsResponsePoints) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsRetrieveAnalyticsResponsePoints leniently.
type WebhooksDestinationsRetrieveAnalyticsResponseSummary ¶
type WebhooksDestinationsRetrieveAnalyticsResponseSummary struct {
// Delivery attempts, including queued ones.
TotalDeliveries int64 `json:"total_deliveries"`
// Attempts whose recorded HTTP status is 400 or above.
FailedDeliveries int64 `json:"failed_deliveries"`
// Fastest attempt in milliseconds, or `null` when no attempt has a recorded
// time.
MinResponseTimeMs int64 `json:"min_response_time_ms"`
// Mean attempt time in milliseconds, rounded, or `null` when no attempt has a
// recorded time.
AvgResponseTimeMs int64 `json:"avg_response_time_ms"`
// Slowest attempt in milliseconds, or `null` when no attempt has a recorded
// time.
MaxResponseTimeMs int64 `json:"max_response_time_ms"`
// `failed_deliveries` / `total_deliveries` x 100, rounded to a whole number.
// `0` when there are no deliveries.
ErrorRatePercentage int64 `json:"error_rate_percentage"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsRetrieveAnalyticsResponseSummary: Totals over the requested range.
func (*WebhooksDestinationsRetrieveAnalyticsResponseSummary) UnmarshalJSON ¶
func (r *WebhooksDestinationsRetrieveAnalyticsResponseSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsRetrieveAnalyticsResponseSummary leniently.
type WebhooksDestinationsRetrieveResponse ¶
type WebhooksDestinationsRetrieveResponse struct {
UUID string `json:"uuid"`
Label string `json:"label"`
URL string `json:"url"`
Enabled bool `json:"enabled"`
WebhookVersion WebhooksDestinationsRetrieveResponseWebhookVersion `json:"webhook_version"`
// API-key callers; Console users need `read:webhooks`, otherwise an empty
// string.
SecretSharedKey string `json:"secret_shared_key"`
// Last four characters of the destination's current signing secret, so you can
// tell secrets apart. Not enough to verify a signature.
SecretLast4 string `json:"secret_last4"`
// Set for 24 hours after the destination's signing secret is rotated in the
// Business Console. Until this time, every delivery to the destination also
// carries `X-Signature-Previous`, `X-Signature-V2-Previous` and
// `X-Signature-Simple-Previous`, made with the replaced secret (see [Signature
// verification](/integration/webhooks#signature-verification)). `null` when no
// rotation happened in the last 24 hours.
PreviousSecretExpiresAt time.Time `json:"previous_secret_expires_at"`
SubscribedEvents []WebhookEvent `json:"subscribed_events"`
// Email of the Business Console member who created the destination. `null` for
// a destination created with an API key.
CreatedByEmail string `json:"created_by_email"`
// Name of the Business Console member who created the destination. `null` for a
// destination created with an API key.
CreatedByName string `json:"created_by_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// Delivery health. `failing`: 3 or more consecutive events failed their first
// delivery attempt since the destination last answered successfully (see
// `failing_streak`). `degraded`: not failing, but a delivery attempt failed in
// the last 24 hours and no later attempt has delivered that event; a retry or
// resend that delivers it clears this. `healthy`: neither. Independent of
// `enabled`. A failed attempt is one answered with HTTP 400 or above, or not
// answered at all.
HealthStatus WebhooksDestinationsRetrieveResponseHealthStatus `json:"health_status"`
// How many consecutive events failed their first delivery attempt since the
// destination last answered successfully, within the last 30 days. Retries are
// not counted, and any successful attempt, including a retry or a resend, ends
// the streak. `0` when no event has failed since the last success.
FailingStreak int64 `json:"failing_streak"`
// When the first failed attempt of the current `failing_streak` was made.
// `null` when `failing_streak` is `0`.
FailingSince time.Time `json:"failing_since"`
// When the destination last answered a delivery with an HTTP status under 400,
// within the last 30 days. `null` if it has not in that window.
LastSuccessAt time.Time `json:"last_success_at"`
// Environment of the application that owns the destination.
Environment WebhooksDestinationsRetrieveResponseEnvironment `json:"environment"`
// Delivery metrics for the last `metrics_window_days` (30) days.
// `last_delivery_at` is the most recent attempt, whenever it was made.
Summary WebhooksDestinationsRetrieveResponseSummary `json:"summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsRetrieveResponse is a response object.
func (*WebhooksDestinationsRetrieveResponse) UnmarshalJSON ¶
func (r *WebhooksDestinationsRetrieveResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsRetrieveResponse leniently.
type WebhooksDestinationsRetrieveResponseEnvironment ¶
type WebhooksDestinationsRetrieveResponseEnvironment string
WebhooksDestinationsRetrieveResponseEnvironment: Environment of the application that owns the destination.
WebhooksDestinationsRetrieveResponseEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsRetrieveResponseEnvironmentLive WebhooksDestinationsRetrieveResponseEnvironment = "live" WebhooksDestinationsRetrieveResponseEnvironmentSandbox WebhooksDestinationsRetrieveResponseEnvironment = "sandbox" )
Known values of WebhooksDestinationsRetrieveResponseEnvironment.
type WebhooksDestinationsRetrieveResponseHealthStatus ¶
type WebhooksDestinationsRetrieveResponseHealthStatus string
WebhooksDestinationsRetrieveResponseHealthStatus: Delivery health. `failing`: 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (see `failing_streak`). `degraded`: not failing, but a delivery attempt failed in the last 24 hours and no later attempt has delivered that event; a retry or resend that delivers it clears this. `healthy`: neither. Independent of `enabled`. A failed attempt is one answered with HTTP 400 or above, or not answered at all.
WebhooksDestinationsRetrieveResponseHealthStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsRetrieveResponseHealthStatusHealthy WebhooksDestinationsRetrieveResponseHealthStatus = "healthy" WebhooksDestinationsRetrieveResponseHealthStatusDegraded WebhooksDestinationsRetrieveResponseHealthStatus = "degraded" WebhooksDestinationsRetrieveResponseHealthStatusFailing WebhooksDestinationsRetrieveResponseHealthStatus = "failing" )
Known values of WebhooksDestinationsRetrieveResponseHealthStatus.
type WebhooksDestinationsRetrieveResponseSummary ¶
type WebhooksDestinationsRetrieveResponseSummary struct {
TotalDeliveries int64 `json:"total_deliveries"`
FailedDeliveries int64 `json:"failed_deliveries"`
ErrorRatePercentage int64 `json:"error_rate_percentage"`
MinResponseTimeMs int64 `json:"min_response_time_ms"`
AvgResponseTimeMs int64 `json:"avg_response_time_ms"`
MaxResponseTimeMs int64 `json:"max_response_time_ms"`
LastDeliveryAt time.Time `json:"last_delivery_at"`
// Length in days of the window the other summary metrics cover. Always `30`.
MetricsWindowDays int64 `json:"metrics_window_days"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsRetrieveResponseSummary: Delivery metrics for the last `metrics_window_days` (30) days. `last_delivery_at` is the most recent attempt, whenever it was made.
func (*WebhooksDestinationsRetrieveResponseSummary) UnmarshalJSON ¶
func (r *WebhooksDestinationsRetrieveResponseSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsRetrieveResponseSummary leniently.
type WebhooksDestinationsRetrieveResponseWebhookVersion ¶
type WebhooksDestinationsRetrieveResponseWebhookVersion string
WebhooksDestinationsRetrieveResponseWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsRetrieveResponseWebhookVersionV1 WebhooksDestinationsRetrieveResponseWebhookVersion = "v1" WebhooksDestinationsRetrieveResponseWebhookVersionV2 WebhooksDestinationsRetrieveResponseWebhookVersion = "v2" WebhooksDestinationsRetrieveResponseWebhookVersionV3 WebhooksDestinationsRetrieveResponseWebhookVersion = "v3" )
Known values of WebhooksDestinationsRetrieveResponseWebhookVersion.
type WebhooksDestinationsService ¶
type WebhooksDestinationsService struct {
// contains filtered or unexported fields
}
WebhooksDestinationsService holds the webhooks destinations operations. Use it through Client.Webhooks.Destinations.
func (*WebhooksDestinationsService) Create ¶
func (r *WebhooksDestinationsService) Create(ctx context.Context, params WebhooksDestinationsCreateParams, opts ...option.RequestOption) (*WebhooksDestinationsCreateResponse, error)
Create: Create webhook destination.
Create a webhook destination. The response includes the auto-generated `secret_shared_key` HMAC signing secret (also readable later via `GET /v3/webhook/destinations/{destination_uuid}/`). Always send `subscribed_events` with at least one event (no wildcards): an explicit empty list is rejected with 400, and omitting the field creates a destination subscribed to nothing, which never receives a webhook. The `(application, url)` pair must be unique among the application's destinations.
POST /v3/webhook/destinations/
func (*WebhooksDestinationsService) Delete ¶
func (r *WebhooksDestinationsService) Delete(ctx context.Context, destinationUUID string, opts ...option.RequestOption) error
Delete: Delete webhook destination.
Permanently delete a webhook destination, its signing secret and its entire delivery log. This cannot be undone. No new webhook is sent to the destination's URL; other destinations subscribed to the same events keep receiving them. Afterwards the destination no longer appears in `GET /v3/webhook/destinations/`, and every route under `/v3/webhook/destinations/{destination_uuid}/`, including its deliveries, a delivery's detail and its resend, answers 404. The application's legacy `webhook_url` is set to the URL of the oldest remaining enabled destination, or cleared when no enabled destination is left. Calling DELETE again returns 404.
DELETE /v3/webhook/destinations/{destination_uuid}/
func (*WebhooksDestinationsService) List ¶
func (r *WebhooksDestinationsService) List(ctx context.Context, opts ...option.RequestOption) ([]WebhooksDestinationsListResponse, error)
List: List webhook destinations.
List all webhook destinations (unpaginated array, oldest first). Each item carries the destination's configuration, its delivery metrics for the last 30 days (`metrics_window_days`) with one `daily_points` entry per day, and its health (`health_status`, `failing_streak`, `failing_since`, `last_success_at`). The list has no `summary` object and never includes the signing secret: each item shows only `secret_last4`. Fetch a single destination (`GET /v3/webhook/destinations/{destination_uuid}/`) to read `secret_shared_key`.
GET /v3/webhook/destinations/
func (*WebhooksDestinationsService) ListDeliveries ¶
func (r *WebhooksDestinationsService) ListDeliveries(ctx context.Context, destinationUUID string, params WebhooksDestinationsListDeliveriesParams, opts ...option.RequestOption) (*Page[WebhookDestinationDelivery], error)
ListDeliveries: List webhook destination deliveries.
Page through every delivery attempt to one webhook destination, newest first. The first send of each event, each automatic [retry](https://docs.didit.me/integration/webhooks#retry-policy) and each resend are separate entries. Entries carry the HTTP status and response time but not the payload: fetch one delivery to read its headers and body. `count` is exact up to 100 and reads 100 above that, so follow `next` until it is `null`. Delivery records are available for about 30 days. A scoped API key needs `webhooks: read` and `decisions: read`; a key limited to some workflows or to approved sessions cannot use this endpoint.
It returns one page; ListDeliveriesAutoPaging iterates over every item of every page.
GET /v3/webhook/destinations/{destination_uuid}/deliveries/
func (*WebhooksDestinationsService) ListDeliveriesAutoPaging ¶
func (r *WebhooksDestinationsService) ListDeliveriesAutoPaging(ctx context.Context, destinationUUID string, params WebhooksDestinationsListDeliveriesParams, opts ...option.RequestOption) *PageIterator[WebhookDestinationDelivery]
ListDeliveriesAutoPaging iterates over every item of every page of ListDeliveries, fetching pages as needed.
func (*WebhooksDestinationsService) ResendDelivery ¶
func (r *WebhooksDestinationsService) ResendDelivery(ctx context.Context, destinationUUID string, deliveryUUID string, opts ...option.RequestOption) (*WebhookDestinationDeliveryDetail, error)
ResendDelivery: Resend webhook destination delivery.
Send a past delivery again, for example after your endpoint was down. Didit takes the stored payload, sets a fresh `timestamp`, signs it again with the destination's current `secret_shared_key` (`X-Signature`, `X-Signature-V2`, `X-Signature-Simple` and `X-Timestamp`) and posts it to the delivery's `request_url`, even if the destination's URL has changed since or the destination is disabled. `event_id` and the rest of the payload are unchanged, so deduplicate on `event_id`. The call waits up to 5 seconds for your endpoint and returns the new delivery with `200` whatever your endpoint answered: read `response_status`. A resend is not retried automatically, every call sends again and creates a new delivery, and the request has no body. A scoped API key needs `webhooks: write` and `decisions: read`; a key limited to some workflows or to approved sessions cannot use this endpoint.
POST /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/resend/
func (*WebhooksDestinationsService) Retrieve ¶
func (r *WebhooksDestinationsService) Retrieve(ctx context.Context, destinationUUID string, opts ...option.RequestOption) (*WebhooksDestinationsRetrieveResponse, error)
Retrieve: Get webhook destination.
Retrieve one webhook destination with its `secret_shared_key` signing secret, its health (`health_status`, `failing_streak`, `failing_since`, `last_success_at`) and a delivery `summary` for the last 30 days. API-key callers always receive the secret in full; Console users without `read:webhooks` see an empty string.
GET /v3/webhook/destinations/{destination_uuid}/
func (*WebhooksDestinationsService) RetrieveAnalytics ¶
func (r *WebhooksDestinationsService) RetrieveAnalytics(ctx context.Context, destinationUUID string, params WebhooksDestinationsRetrieveAnalyticsParams, opts ...option.RequestOption) (*WebhooksDestinationsRetrieveAnalyticsResponse, error)
RetrieveAnalytics: Get webhook destination analytics.
Delivery totals, failure rate and response times for one webhook destination, over the whole range (`summary`) and per UTC day (`points`). Every attempt counts as a delivery: the first send of an event, each automatic [retry](https://docs.didit.me/integration/webhooks#retry-policy) and each resend. A delivery is failed when its recorded HTTP status is 400 or above, so timeouts (recorded as `504`) and connection failures (`503`) count as failed; a delivery still queued counts in `total_deliveries` only. Delivery records are available for about 30 days. A scoped API key needs `webhooks: read`.
GET /v3/webhook/destinations/{destination_uuid}/analytics/
func (*WebhooksDestinationsService) RetrieveDelivery ¶
func (r *WebhooksDestinationsService) RetrieveDelivery(ctx context.Context, destinationUUID string, deliveryUUID string, opts ...option.RequestOption) (*WebhookDestinationDeliveryDetail, error)
RetrieveDelivery: Get webhook destination delivery.
Retrieve one delivery attempt to a webhook destination with the exact request headers and JSON body Didit sent, the HTTP status your endpoint returned and the response time. `request_header` and `request_body` are JSON text: parse them to read the signature headers and the payload, for example to check your [signature verification](https://docs.didit.me/integration/webhooks#signature-verification) against the destination's `secret_shared_key`. A delivery never contains the signing secret, and Didit does not record your endpoint's response body. A scoped API key needs `webhooks: read` and `decisions: read`; a key limited to some workflows or to approved sessions cannot use this endpoint.
GET /v3/webhook/destinations/{destination_uuid}/deliveries/{delivery_uuid}/
func (*WebhooksDestinationsService) Update ¶
func (r *WebhooksDestinationsService) Update(ctx context.Context, destinationUUID string, params WebhooksDestinationsUpdateParams, opts ...option.RequestOption) (*WebhooksDestinationsUpdateResponse, error)
Update: Update webhook destination.
Update a webhook destination. **`subscribed_events` is REPLACED wholesale, not merged**: fetch first, append, resend. Secret is not rotated. A `uuid` in the body is ignored: the path names the destination.
PATCH /v3/webhook/destinations/{destination_uuid}/
type WebhooksDestinationsUpdateParams ¶
type WebhooksDestinationsUpdateParams struct {
// New human-readable name.
Label Opt[string] `json:"label"`
// New target URL. Must be unique within the application.
URL Opt[string] `json:"url"`
// Set to `false` to pause deliveries to this destination without deleting it.
Enabled Opt[bool] `json:"enabled"`
// New payload schema version for future deliveries.
WebhookVersion Opt[WebhooksDestinationsUpdateParamsWebhookVersion] `json:"webhook_version"`
SubscribedEvents Opt[[]WebhookEvent] `json:"subscribed_events"`
}
WebhooksDestinationsUpdateParams holds the parameters of Client.Webhooks.Destinations.Update.
func (WebhooksDestinationsUpdateParams) MarshalJSON ¶
func (r WebhooksDestinationsUpdateParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WebhooksDestinationsUpdateParamsWebhookVersion ¶
type WebhooksDestinationsUpdateParamsWebhookVersion string
WebhooksDestinationsUpdateParamsWebhookVersion: New payload schema version for future deliveries.
WebhooksDestinationsUpdateParamsWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsUpdateParamsWebhookVersionV1 WebhooksDestinationsUpdateParamsWebhookVersion = "v1" WebhooksDestinationsUpdateParamsWebhookVersionV2 WebhooksDestinationsUpdateParamsWebhookVersion = "v2" WebhooksDestinationsUpdateParamsWebhookVersionV3 WebhooksDestinationsUpdateParamsWebhookVersion = "v3" )
Known values of WebhooksDestinationsUpdateParamsWebhookVersion.
type WebhooksDestinationsUpdateResponse ¶
type WebhooksDestinationsUpdateResponse struct {
UUID string `json:"uuid"`
Label string `json:"label"`
URL string `json:"url"`
Enabled bool `json:"enabled"`
WebhookVersion WebhooksDestinationsUpdateResponseWebhookVersion `json:"webhook_version"`
// Last four characters of the destination's current signing secret, so you can
// tell secrets apart. Not enough to verify a signature.
SecretLast4 string `json:"secret_last4"`
// Set for 24 hours after the destination's signing secret is rotated in the
// Business Console. Until this time, every delivery to the destination also
// carries `X-Signature-Previous`, `X-Signature-V2-Previous` and
// `X-Signature-Simple-Previous`, made with the replaced secret (see [Signature
// verification](/integration/webhooks#signature-verification)). `null` when no
// rotation happened in the last 24 hours.
PreviousSecretExpiresAt time.Time `json:"previous_secret_expires_at"`
SubscribedEvents []WebhookEvent `json:"subscribed_events"`
// Email of the Business Console member who created the destination. `null` for
// a destination created with an API key.
CreatedByEmail string `json:"created_by_email"`
// Name of the Business Console member who created the destination. `null` for a
// destination created with an API key.
CreatedByName string `json:"created_by_name"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// Delivery health. `failing`: 3 or more consecutive events failed their first
// delivery attempt since the destination last answered successfully (see
// `failing_streak`). `degraded`: not failing, but a delivery attempt failed in
// the last 24 hours and no later attempt has delivered that event; a retry or
// resend that delivers it clears this. `healthy`: neither. Independent of
// `enabled`. A failed attempt is one answered with HTTP 400 or above, or not
// answered at all.
HealthStatus WebhooksDestinationsUpdateResponseHealthStatus `json:"health_status"`
// How many consecutive events failed their first delivery attempt since the
// destination last answered successfully, within the last 30 days. Retries are
// not counted, and any successful attempt, including a retry or a resend, ends
// the streak. `0` when no event has failed since the last success.
FailingStreak int64 `json:"failing_streak"`
// When the first failed attempt of the current `failing_streak` was made.
// `null` when `failing_streak` is `0`.
FailingSince time.Time `json:"failing_since"`
// When the destination last answered a delivery with an HTTP status under 400,
// within the last 30 days. `null` if it has not in that window.
LastSuccessAt time.Time `json:"last_success_at"`
// Environment of the application that owns the destination.
Environment WebhooksDestinationsUpdateResponseEnvironment `json:"environment"`
// Delivery metrics for the last `metrics_window_days` (30) days.
// `last_delivery_at` is the most recent attempt, whenever it was made.
Summary WebhooksDestinationsUpdateResponseSummary `json:"summary"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsUpdateResponse is a response object.
func (*WebhooksDestinationsUpdateResponse) UnmarshalJSON ¶
func (r *WebhooksDestinationsUpdateResponse) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsUpdateResponse leniently.
type WebhooksDestinationsUpdateResponseEnvironment ¶
type WebhooksDestinationsUpdateResponseEnvironment string
WebhooksDestinationsUpdateResponseEnvironment: Environment of the application that owns the destination.
WebhooksDestinationsUpdateResponseEnvironment is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsUpdateResponseEnvironmentLive WebhooksDestinationsUpdateResponseEnvironment = "live" WebhooksDestinationsUpdateResponseEnvironmentSandbox WebhooksDestinationsUpdateResponseEnvironment = "sandbox" )
Known values of WebhooksDestinationsUpdateResponseEnvironment.
type WebhooksDestinationsUpdateResponseHealthStatus ¶
type WebhooksDestinationsUpdateResponseHealthStatus string
WebhooksDestinationsUpdateResponseHealthStatus: Delivery health. `failing`: 3 or more consecutive events failed their first delivery attempt since the destination last answered successfully (see `failing_streak`). `degraded`: not failing, but a delivery attempt failed in the last 24 hours and no later attempt has delivered that event; a retry or resend that delivers it clears this. `healthy`: neither. Independent of `enabled`. A failed attempt is one answered with HTTP 400 or above, or not answered at all.
WebhooksDestinationsUpdateResponseHealthStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsUpdateResponseHealthStatusHealthy WebhooksDestinationsUpdateResponseHealthStatus = "healthy" WebhooksDestinationsUpdateResponseHealthStatusDegraded WebhooksDestinationsUpdateResponseHealthStatus = "degraded" WebhooksDestinationsUpdateResponseHealthStatusFailing WebhooksDestinationsUpdateResponseHealthStatus = "failing" )
Known values of WebhooksDestinationsUpdateResponseHealthStatus.
type WebhooksDestinationsUpdateResponseSummary ¶
type WebhooksDestinationsUpdateResponseSummary struct {
TotalDeliveries int64 `json:"total_deliveries"`
FailedDeliveries int64 `json:"failed_deliveries"`
ErrorRatePercentage int64 `json:"error_rate_percentage"`
MinResponseTimeMs int64 `json:"min_response_time_ms"`
AvgResponseTimeMs int64 `json:"avg_response_time_ms"`
MaxResponseTimeMs int64 `json:"max_response_time_ms"`
LastDeliveryAt time.Time `json:"last_delivery_at"`
// Length in days of the window the other summary metrics cover. Always `30`.
MetricsWindowDays int64 `json:"metrics_window_days"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WebhooksDestinationsUpdateResponseSummary: Delivery metrics for the last `metrics_window_days` (30) days. `last_delivery_at` is the most recent attempt, whenever it was made.
func (*WebhooksDestinationsUpdateResponseSummary) UnmarshalJSON ¶
func (r *WebhooksDestinationsUpdateResponseSummary) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WebhooksDestinationsUpdateResponseSummary leniently.
type WebhooksDestinationsUpdateResponseWebhookVersion ¶
type WebhooksDestinationsUpdateResponseWebhookVersion string
WebhooksDestinationsUpdateResponseWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksDestinationsUpdateResponseWebhookVersionV1 WebhooksDestinationsUpdateResponseWebhookVersion = "v1" WebhooksDestinationsUpdateResponseWebhookVersionV2 WebhooksDestinationsUpdateResponseWebhookVersion = "v2" WebhooksDestinationsUpdateResponseWebhookVersionV3 WebhooksDestinationsUpdateResponseWebhookVersion = "v3" )
Known values of WebhooksDestinationsUpdateResponseWebhookVersion.
type WebhooksService ¶
type WebhooksService struct {
Destinations *WebhooksDestinationsService
// contains filtered or unexported fields
}
WebhooksService holds the webhooks operations. Use it through Client.Webhooks.
func (*WebhooksService) RetrieveConfig ¶
func (r *WebhooksService) RetrieveConfig(ctx context.Context, opts ...option.RequestOption) (*WebhookConfig, error)
RetrieveConfig: Get webhook configuration.
Return the application's webhook settings in one call: every [webhook destination](https://docs.didit.me/management-api/webhook/list-destinations) with its signing secret, the event types a destination can subscribe to, the application-level (legacy) webhook URL, version and secret, the data and biometric-template retention policy, and the Digital ID wallet return hosts. Didit delivers webhooks to destinations, each signed with its own `secret_shared_key`; the top-level `webhook_url`, `webhook_version` and `secret_shared_key` are used only while no destination is enabled, and then only for `status.updated` and `data.updated`. The response contains signing secrets, so keep it out of logs and client-side code. A scoped API key needs `webhooks: read`.
GET /v3/webhook/
func (*WebhooksService) UpdateConfig ¶
func (r *WebhooksService) UpdateConfig(ctx context.Context, params WebhooksUpdateConfigParams, opts ...option.RequestOption) (*WebhookConfig, error)
UpdateConfig: Update webhook configuration.
Partially update application-level settings: the legacy webhook URL, version and secret, the data and biometric-template retention policy, and the Digital ID wallet return hosts. Send only the fields to change; the response is the full configuration, the same shape as `GET /v3/webhook/`. Destinations are not managed here: create, update and delete them with the `/v3/webhook/destinations/` endpoints, and do not send an `endpoints` field to this endpoint. A `data_retention_months` change also applies to existing sessions, and sessions it deletes cannot be restored; read [Data retention](https://docs.didit.me/console/data-retention) first. A scoped API key needs `webhooks: write`.
PATCH /v3/webhook/
type WebhooksUpdateConfigParams ¶
type WebhooksUpdateConfigParams struct {
// Legacy application-level webhook URL. Didit uses it only while the
// application has no enabled destination, and then only for `status.updated`
// and `data.updated`. It does not create a destination, and the next create,
// update or delete of a destination replaces it. To receive webhooks, create a
// destination with `POST /v3/webhook/destinations/` instead.
WebhookURL Opt[string] `json:"webhook_url"`
// Payload version of the legacy `webhook_url`.
WebhookVersion Opt[WebhooksUpdateConfigParamsWebhookVersion] `json:"webhook_version"`
// `true` replaces the application-level `secret_shared_key` with a new random
// value at once; the new value is in the response. Destination secrets are not
// changed. Every call with `true` generates a new secret, so it is not
// idempotent.
RotateSecretKey Opt[bool] `json:"rotate_secret_key"`
// Legacy application setting. The verification flow does not read it.
CaptureMethod Opt[WebhooksUpdateConfigParamsCaptureMethod] `json:"capture_method"`
// Automatic deletion window in months (a month counts as 30 days), or `null`
// for no automatic deletion. A change applies to existing sessions too: every
// user verification session older than the new window is deleted automatically,
// and that deletion is irreversible.
DataRetentionMonths Opt[int64] `json:"data_retention_months"`
// What happens to a session's face embedding when the session is deleted.
// `retain_until_user_deleted` needs `face_retention_days` in the same request
// or already set. A change applies to session deletions from then on; it
// creates or purges no existing biometric template.
FaceRetentionPolicy Opt[WebhooksUpdateConfigParamsFaceRetentionPolicy] `json:"face_retention_policy"`
// Retention period, in days, of biometric templates under
// `retain_until_user_deleted`.
FaceRetentionDays Opt[int64] `json:"face_retention_days"`
// Replaces the whole list of Digital ID wallet return hosts. Bare hostnames
// only, such as `shop.example.com`: no scheme, port, path or wildcard. Values
// are lowercased and duplicates are dropped. Send `[]` to clear the list.
AllowedReturnHosts Opt[[]string] `json:"allowed_return_hosts"`
}
WebhooksUpdateConfigParams holds the parameters of Client.Webhooks.UpdateConfig.
func (WebhooksUpdateConfigParams) MarshalJSON ¶
func (r WebhooksUpdateConfigParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WebhooksUpdateConfigParamsCaptureMethod ¶
type WebhooksUpdateConfigParamsCaptureMethod string
WebhooksUpdateConfigParamsCaptureMethod: Legacy application setting. The verification flow does not read it.
WebhooksUpdateConfigParamsCaptureMethod is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksUpdateConfigParamsCaptureMethodMobile WebhooksUpdateConfigParamsCaptureMethod = "MOBILE" WebhooksUpdateConfigParamsCaptureMethodMobileAndDesktop WebhooksUpdateConfigParamsCaptureMethod = "MOBILE_AND_DESKTOP" )
Known values of WebhooksUpdateConfigParamsCaptureMethod.
type WebhooksUpdateConfigParamsFaceRetentionPolicy ¶
type WebhooksUpdateConfigParamsFaceRetentionPolicy string
WebhooksUpdateConfigParamsFaceRetentionPolicy: What happens to a session's face embedding when the session is deleted. `retain_until_user_deleted` needs `face_retention_days` in the same request or already set. A change applies to session deletions from then on; it creates or purges no existing biometric template.
WebhooksUpdateConfigParamsFaceRetentionPolicy is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksUpdateConfigParamsFaceRetentionPolicyDeleteWithSession WebhooksUpdateConfigParamsFaceRetentionPolicy = "delete_with_session" WebhooksUpdateConfigParamsFaceRetentionPolicyRetainUntilUserDeleted WebhooksUpdateConfigParamsFaceRetentionPolicy = "retain_until_user_deleted" )
Known values of WebhooksUpdateConfigParamsFaceRetentionPolicy.
type WebhooksUpdateConfigParamsWebhookVersion ¶
type WebhooksUpdateConfigParamsWebhookVersion string
WebhooksUpdateConfigParamsWebhookVersion: Payload version of the legacy `webhook_url`.
WebhooksUpdateConfigParamsWebhookVersion is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WebhooksUpdateConfigParamsWebhookVersionV1 WebhooksUpdateConfigParamsWebhookVersion = "v1" WebhooksUpdateConfigParamsWebhookVersionV2 WebhooksUpdateConfigParamsWebhookVersion = "v2" WebhooksUpdateConfigParamsWebhookVersionV3 WebhooksUpdateConfigParamsWebhookVersion = "v3" )
Known values of WebhooksUpdateConfigParamsWebhookVersion.
type WorkflowDetail ¶
type WorkflowDetail struct {
// Per-version identifier (`settings_uuid`). Every version of a workflow has its
// own.
UUID string `json:"uuid"`
// Stable identifier shared by every version of the workflow. Sessions created
// with it use the latest published version.
WorkflowID string `json:"workflow_id"`
// Display name of the workflow.
WorkflowLabel string `json:"workflow_label"`
// Workflow template. `null` for graph workflows created without a template.
WorkflowType WorkflowDetailWorkflowType `json:"workflow_type"`
// Whether this is the application's default workflow.
IsDefault bool `json:"is_default"`
// Archived workflows cannot start new sessions.
IsArchived bool `json:"is_archived"`
// Version number within the workflow.
Version int64 `json:"version"`
// Draft versions are editable; published versions are immutable and used for
// new sessions.
Status WorkflowDetailStatus `json:"status"`
// When this version was published. `null` for drafts.
PublishedAt time.Time `json:"published_at"`
// `true` when the workflow has no custom `workflow_graph`.
IsSimpleWorkflow bool `json:"is_simple_workflow"`
// `true` only for `draft` versions.
IsEditable bool `json:"is_editable"`
// Public URL that starts a session with this workflow.
WorkflowURL string `json:"workflow_url"`
// Graph structure of the workflow (nodes and edges). `null` for simple
// workflows.
WorkflowGraph map[string]any `json:"workflow_graph"`
// Enabled features joined with `" + "`, for example `"OCR + LIVENESS"`.
Features string `json:"features"`
// Price per session; for graph workflows the most expensive path.
TotalPrice float64 `json:"total_price"`
// Price of the cheapest path through the workflow.
MinPrice float64 `json:"min_price"`
// Price of the most expensive path through the workflow.
MaxPrice float64 `json:"max_price"`
// Organization-specific add-on prices, or `null` when none are set.
SpecialAddOnPrices map[string]any `json:"special_add_on_prices"`
// Retries allowed after a declined verification.
MaxRetryAttempts int64 `json:"max_retry_attempts"`
// Days during which the retries are allowed.
RetryWindowDays int64 `json:"retry_window_days"`
// Seconds before an unfinished session expires.
SessionExpirationTime int64 `json:"session_expiration_time"`
// The questionnaire attached to the workflow, or `null`.
Questionnaire map[string]any `json:"questionnaire"`
// Per-role verification settings for KYB key people.
KYBRoleSettings []map[string]any `json:"kyb_role_settings"`
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
// Whether a simple KYC or KYB workflow runs Bank verification. It runs after
// the contact steps and before database validation, AML and IP analysis. Set in
// the console.
IsBankVerificationEnabled bool `json:"is_bank_verification_enabled"`
// Bank verification settings of a simple workflow, with the same keys a
// `BANK_VERIFICATION` node takes (for example `bank_countries` and
// `bank_method_order`). Every key is optional and an absent key keeps its
// default, so `{}` means all defaults. See [Bank verification
// settings](/management-api/workflows/feature-configs#bank-verification).
BankVerificationConfig map[string]any `json:"bank_verification_config"`
// Whether a simple KYC workflow runs Location verification. It runs after the
// contact steps and before Bank verification. Never on KYB workflows. Set in
// the console.
IsGeolocationEnabled bool `json:"is_geolocation_enabled"`
// Location verification settings of a simple workflow, with the same keys a
// `GEOLOCATION` node takes (for example `is_geolocation_geofencing_enabled` and
// `geolocation_max_attempts`). Every key is optional and an absent key keeps
// its default, so `{}` means all defaults.
GeolocationConfig map[string]any `json:"geolocation_config"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WorkflowDetail: The fields below are typed; the object also carries every other column of the workflow configuration (feature toggles, thresholds, warning actions, allowed documents, callbacks) as additional properties. Fields that do not apply to the `workflow_type` are `null`.
func (*WorkflowDetail) UnmarshalJSON ¶
func (r *WorkflowDetail) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WorkflowDetail leniently.
type WorkflowDetailStatus ¶
type WorkflowDetailStatus string
WorkflowDetailStatus: Draft versions are editable; published versions are immutable and used for new sessions.
WorkflowDetailStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WorkflowDetailStatusDraft WorkflowDetailStatus = "draft" WorkflowDetailStatusPublished WorkflowDetailStatus = "published" )
Known values of WorkflowDetailStatus.
type WorkflowDetailWorkflowType ¶
type WorkflowDetailWorkflowType string
WorkflowDetailWorkflowType: Workflow template. `null` for graph workflows created without a template.
WorkflowDetailWorkflowType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WorkflowDetailWorkflowTypeKYC WorkflowDetailWorkflowType = "kyc" WorkflowDetailWorkflowTypeKYB WorkflowDetailWorkflowType = "kyb" WorkflowDetailWorkflowTypeAdaptiveAgeVerification WorkflowDetailWorkflowType = "adaptive_age_verification" WorkflowDetailWorkflowTypeBiometricAuthentication WorkflowDetailWorkflowType = "biometric_authentication" WorkflowDetailWorkflowTypeAddressVerification WorkflowDetailWorkflowType = "address_verification" WorkflowDetailWorkflowTypeQuestionnaireVerification WorkflowDetailWorkflowType = "questionnaire_verification" WorkflowDetailWorkflowTypeEmailVerification WorkflowDetailWorkflowType = "email_verification" WorkflowDetailWorkflowTypePhoneVerification WorkflowDetailWorkflowType = "phone_verification" )
Known values of WorkflowDetailWorkflowType.
type WorkflowListItem ¶
type WorkflowListItem struct {
// Per-version UUID. Use as `{settings_uuid}` for get/update/delete, and as
// `workflow_id` when creating sessions.
UUID string `json:"uuid"`
// Stable group ID shared by every version of the same workflow. Equals `uuid`
// for version 1.
WorkflowID string `json:"workflow_id"`
// Display name for the workflow.
WorkflowLabel string `json:"workflow_label"`
// Base type for simple workflows: `kyc`, `kyb`, `adaptive_age_verification`,
// `biometric_authentication`, etc. `null` for graph-based workflows without a
// KYB feature.
WorkflowType string `json:"workflow_type"`
// Whether this is the default workflow for new sessions.
IsDefault bool `json:"is_default"`
IsArchived bool `json:"is_archived"`
// Whether white-label customization applies to sessions created with this
// workflow.
IsWhiteLabelEnabled bool `json:"is_white_label_enabled"`
// Fixed price per verification in USD (JSON number, excludes variable-priced
// features such as DATABASE_VALIDATION and PHONE_VERIFICATION).
TotalPrice float64 `json:"total_price"`
// Cheapest fixed price across workflow-graph paths, in USD.
MinPrice float64 `json:"min_price"`
// Most expensive fixed price across workflow-graph paths, in USD.
MaxPrice float64 `json:"max_price"`
// Enabled features as a single `" + "`-joined string, e.g. `"OCR + LIVENESS +
// FACE_MATCH"`. Split on `" + "` to get a list.
Features string `json:"features"`
// True when the workflow has no custom workflow graph.
IsSimpleWorkflow bool `json:"is_simple_workflow"`
// True when this version is a `draft` (drafts are editable in place; published
// versions are immutable in the Console).
IsEditable bool `json:"is_editable"`
// Public shareable verification URL for this workflow
// (`https://verify.didit.me/u/<token>`).
WorkflowURL string `json:"workflow_url"`
// Maximum retry attempts allowed after a declined verification (0-10).
MaxRetryAttempts int64 `json:"max_retry_attempts"`
// Rolling window in days used to count retries (1-365). `null` = all-time
// limit.
RetryWindowDays int64 `json:"retry_window_days"`
// Seconds before an unfinished session expires (3600-2419200).
SessionExpirationTime int64 `json:"session_expiration_time"`
// Version number within the `workflow_id` group, starting at 1.
Version int64 `json:"version"`
// Version status. New sessions use the latest `published` version of a group.
Status WorkflowListItemStatus `json:"status"`
// True when any version in this `workflow_id` group is currently a draft.
HasDraft bool `json:"has_draft"`
// Who created this version: `{name, email, type}` where `type` is `user`
// (Console user, `email` set) or `api_key` (`name` is the client id, `email` is
// null). `null` when no creator was recorded.
CreatedBy WorkflowListItemCreatedBy `json:"created_by"`
UpdatedAt time.Time `json:"updated_at"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WorkflowListItem: One workflow version in the list view.
func (*WorkflowListItem) UnmarshalJSON ¶
func (r *WorkflowListItem) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WorkflowListItem leniently.
type WorkflowListItemCreatedBy ¶
type WorkflowListItemCreatedBy struct {
Name string `json:"name"`
Email string `json:"email"`
Type WorkflowListItemCreatedByType `json:"type"`
// JSON describes the decoded object: raw JSON, present, null and unknown
// fields.
JSON ResponseJSON `json:"-"`
}
WorkflowListItemCreatedBy: Who created this version: `{name, email, type}` where `type` is `user` (Console user, `email` set) or `api_key` (`name` is the client id, `email` is null). `null` when no creator was recorded.
func (*WorkflowListItemCreatedBy) UnmarshalJSON ¶
func (r *WorkflowListItemCreatedBy) UnmarshalJSON(data []byte) error
UnmarshalJSON decodes WorkflowListItemCreatedBy leniently.
type WorkflowListItemCreatedByType ¶
type WorkflowListItemCreatedByType string
WorkflowListItemCreatedByType is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WorkflowListItemCreatedByTypeUser WorkflowListItemCreatedByType = "user" WorkflowListItemCreatedByTypeAPIKey WorkflowListItemCreatedByType = "api_key" )
Known values of WorkflowListItemCreatedByType.
type WorkflowListItemStatus ¶
type WorkflowListItemStatus string
WorkflowListItemStatus: Version status. New sessions use the latest `published` version of a group.
WorkflowListItemStatus is a string with known values below. The set is open: other values may appear and never cause an error.
const ( WorkflowListItemStatusDraft WorkflowListItemStatus = "draft" WorkflowListItemStatusPublished WorkflowListItemStatus = "published" )
Known values of WorkflowListItemStatus.
type WorkflowsListParams ¶
type WorkflowsListParams struct {
// Page size (number of workflows per page).
Limit Opt[int64] `json:"-" query:"limit"`
// Number of rows to skip before the first returned workflow.
Offset Opt[int64] `json:"-" query:"offset"`
}
WorkflowsListParams holds the parameters of Client.Workflows.List.
func (WorkflowsListParams) MarshalJSON ¶
func (r WorkflowsListParams) MarshalJSON() ([]byte, error)
MarshalJSON encodes the fields that are set.
type WorkflowsService ¶
type WorkflowsService struct {
// contains filtered or unexported fields
}
WorkflowsService holds the workflows operations. Use it through Client.Workflows.
func (*WorkflowsService) Create ¶
func (r *WorkflowsService) Create(ctx context.Context, params SimpleWorkflowRequest, opts ...option.RequestOption) (*WorkflowDetail, error)
Create: Create workflow.
Create a simple workflow. Send `features` in execution order (ordering rules apply); defaults to `published` v1. The body accepts ONLY the fields listed in `SimpleWorkflowRequest` - any other key (including `workflow_type`) is rejected with a 400. Not idempotent - each call creates a new workflow. Maximum 50 workflows per application.
POST /v3/workflows/
func (*WorkflowsService) Delete ¶
func (r *WorkflowsService) Delete(ctx context.Context, settingsUUID string, opts ...option.RequestOption) error
Delete: Delete workflow.
Permanently delete one workflow version (no undo). Existing sessions keep their verification results but their workflow reference is cleared; other versions in the same `workflow_id` group are not deleted.
DELETE /v3/workflows/{settings_uuid}/
func (*WorkflowsService) List ¶
func (r *WorkflowsService) List(ctx context.Context, params WorkflowsListParams, opts ...option.RequestOption) (*Page[WorkflowListItem], error)
List: List workflows.
List your workflows, newest first, in a limit/offset pagination envelope (`{count, next, previous, results}`, default page size 50). Each row is one version; `workflow_id` is the stable group ID and new sessions use the latest `published` version.
It returns one page; ListAutoPaging iterates over every item of every page.
GET /v3/workflows/
func (*WorkflowsService) ListAutoPaging ¶
func (r *WorkflowsService) ListAutoPaging(ctx context.Context, params WorkflowsListParams, opts ...option.RequestOption) *PageIterator[WorkflowListItem]
ListAutoPaging iterates over every item of every page of List, fetching pages as needed.
func (*WorkflowsService) Retrieve ¶
func (r *WorkflowsService) Retrieve(ctx context.Context, settingsUUID string, opts ...option.RequestOption) (*WorkflowDetail, error)
Retrieve: Get workflow.
Fetch full configuration for one workflow version by `settings_uuid`: feature toggles, thresholds, allowed documents, graph, retry policy, callbacks, and pricing.
GET /v3/workflows/{settings_uuid}/
func (*WorkflowsService) Update ¶
func (r *WorkflowsService) Update(ctx context.Context, settingsUUID string, params SimpleWorkflowUpdateRequest, opts ...option.RequestOption) (*WorkflowDetail, error)
Update: Update workflow.
Update a workflow. Versioning depends on the `status` field you send and the current state of the version: (1) no `status` on a **published** version → the published version is updated in place (same `uuid`, same `version`); (2) no `status` on a **draft** → the draft is updated and immediately published; (3) `status: "published"` on a **published** version → a NEW published version is created under the same `workflow_id` (new `uuid`, `version` + 1) and returned, and any existing draft in the group is deleted; (4) `status: "draft"` keeps a draft as a draft (autosave) but is rejected with 400 on a published version (`"Cannot revert a published version to draft."`). The body accepts the same strict field whitelist as create - unknown keys are rejected with 400.
PATCH /v3/workflows/{settings_uuid}/
Source Files
¶
- account_gen.go
- age_estimation_gen.go
- aml_gen.go
- aml_monitoring_gen.go
- analytics_gen.go
- bank_gen.go
- billing_gen.go
- biometric_templates_gen.go
- blocklist_gen.go
- business_sessions_gen.go
- businesses_gen.go
- cases_gen.go
- client.go
- client_gen.go
- core.go
- customization_gen.go
- database_validation_gen.go
- doc.go
- document_ai_gen.go
- email_gen.go
- errors.go
- face_match_gen.go
- face_search_gen.go
- file.go
- fraud_checks_gen.go
- id_verification_gen.go
- id_wallets_gen.go
- investigator_gen.go
- ip_gen.go
- json.go
- kyb_gen.go
- lists_gen.go
- monitoring_events_gen.go
- networks_gen.go
- opt.go
- page.go
- page_iter.go
- params.go
- passive_liveness_gen.go
- phone_gen.go
- pricing_gen.go
- proof_of_address_gen.go
- questionnaires_gen.go
- regulatory_reports_gen.go
- report_templates_gen.go
- sessions_gen.go
- shared_gen.go
- transactions_gen.go
- travel_rule_gen.go
- users_gen.go
- wallet_screening_gen.go
- webhooks_gen.go
- workflows_gen.go
Directories
¶
| Path | Synopsis |
|---|---|
|
Package authentication is the server-side helper for Didit Authentication, the OpenID Connect issuer Didit runs for each application's end users (docs/DESIGN.md section 10).
|
Package authentication is the server-side helper for Didit Authentication, the OpenID Connect issuer Didit runs for each application's end users (docs/DESIGN.md section 10). |
|
Command codegen generates the typed layer of the Didit Go SDK from openapi/ (docs/DESIGN.md section 5).
|
Command codegen generates the typed layer of the Didit Go SDK from openapi/ (docs/DESIGN.md section 5). |
|
internal
|
|
|
apijson
Package apijson encodes request parameters and decodes responses.
|
Package apijson encodes request parameters and decodes responses. |
|
naming
Package naming converts API names (snake_case, camelCase, enum values) to Go identifiers.
|
Package naming converts API names (snake_case, camelCase, enum values) to Go identifiers. |
|
requestconfig
Package requestconfig holds the settings of a client or of a single request.
|
Package requestconfig holds the settings of a client or of a single request. |
|
tools/corecover
command
Command corecover reports the test coverage of the hand-written core: every package of the module except the generated *_gen.go files, codegen/ and internal/tools/.
|
Command corecover reports the test coverage of the hand-written core: every package of the module except the generated *_gen.go files, codegen/ and internal/tools/. |
|
version
Package version holds the SDK version.
|
Package version holds the SDK version. |
|
Package option holds the options of the Didit client.
|
Package option holds the options of the Didit client. |
|
Package webhook verifies Didit webhook deliveries and parses them into typed events.
|
Package webhook verifies Didit webhook deliveries and parses them into typed events. |