Overview
US banking regulations require a Customer Identification Program (CIP) — commonly known as know your customer (KYC) and know your business (KYB). Synctera’s verification solution runs identity and watchlist checks for personal and business customers and records the results asverification objects.
A verification represents a category of checks performed on a customer. The combined outcome of all verifications sets the customer’s verification_status, which gates money movement — a customer must reach ACCEPTED to transact.
A CIP program requires:
- Data collection — name, date of birth, address, and government-issued ID.
- Disclosures — notifying customers about the collection and retention of data.
- Verification — confirming the collected information is current, valid, and accurate.
- Ongoing monitoring — checking the customer against known watchlists over time.
- Categorized — each verification has a
verification_type(IDENTITY,WATCHLIST,DOCUMENT_VERIFICATION,RELATED_ENTITIES,MANUAL_REVIEW). - Detailed — a
detailsarray records the individual attribute-level checks and their outcomes. - Status-driven — the customer’s
verification_statusreflects all verifications; onlyACCEPTEDcustomers can move money. - Recursive for businesses — verifying a business also verifies its beneficial owners, owning businesses, and officers.
To move money, all customers must undergo KYC or KYB verification.
Prerequisites
This guide assumes you have:- Created a personal customer or business customer
- Recorded a disclosure
The verification object
A verification represents one category of checks on a customer. Thedetails array holds the individual checks that make up that category.
An
IDENTITY verification bundles the checks pertaining to a customer’s identity — here, name, address, SSN, and email were all verified:
WATCHLIST verification type:
Verification status
A customer’sverification_status is the outcome of all verifications performed on them. New customers start as UNVERIFIED; the field lives on the person and business resources. A successful verify request moves the customer out of UNVERIFIED into one of:
Any status other than
ACCEPTED opens a case in the Synctera Case Manager for a compliance officer to review.
Suggested handling by outcome:
If a customer is not initially accepted:
- Offer them a chance to review and correct the information they entered.
- After corrections, call
POST /v0/verifications/verifyagain to re-verify. - You may also verify using the customer’s government ID via document verification.
- If they make no changes, do not re-run KYC/KYB — let the case be reviewed instead.
- If they make changes and are still not accepted, stop and route to manual review.
- Re-verifications triggered by the end-user (
customer_initiated: true) count against any customer-initiated verification limit.
Two statuses fall outside the typical path:
PENDING— business results may not be immediately available. Subscribe to theBUSINESS.VERIFICATION_OUTCOME.UPDATEDwebhook.PROVISIONAL— indicates an entity has been partially verified.
Collecting required documents
When a verification cannot be resolved from the submitted data alone, the verification object’srequired_documents array tells you exactly which documents to collect from the end customer to advance the case. Read this field and prompt the customer for the corresponding documents.
Where you submit the collected documents depends on the value:
ID_DOCUMENT— complete the document verification flow, which validates the customer’s government-issued ID and steps them up for review.ADDRESS_VERIFICATIONandSSN_VERIFICATION— upload the supporting documents to the documents API.
"required_documents": ["SSN_VERIFICATION"], collect an SSN document (such as a Social Security card or W-2) from your end customer and upload it via the documents API. If multiple values are present, collect a document for each and submit it to the appropriate destination above.
Collect only the documents named in
required_documents. Submitting unrelated documents will not advance the case.Limiting customer-initiated verifications
Banks and FinTechs can configure a maximum number of customer-initiatedIDENTITY verifications per person over a rolling 3-month window, reducing synthetic-identity risk, stolen-identity abuse, and excessive vendor costs.
A verification counts against the limit only when the request includes customer_initiated: true — i.e. the end-user themselves triggered it (for example, by tapping a “Verify my identity” button). Verifications triggered by the bank, FinTech, or Synctera are not counted. When the limit is reached, further customer_initiated: true requests are rejected; route those customers to manual review or support.
To enable this protection, contact Synctera to configure
max_customer_initiated_verifications for your tenant.Verifying a customer
Once the required information is collected, initiate verification with POST /v0/verifications/verify and the customer’s ID:business_id instead of person_id:
Set
customer_initiated to true when the end-user triggers the request (e.g. a “Verify my identity” button). This enforces any tenant-configured limit on how many times a customer can re-verify. See Limiting customer-initiated verifications.Consent must come directly from the customer.
Example: verify a personal customer
1
Create a personal customer
Create the customer record with POST /v0/persons:See the Create a Personal Customer guide for details.
2
Record a KYC data collection disclosure
Display and record a disclosure informing the customer that their data will be shared with a third party for identity verification, using POST /v0/disclosures:See the Record Disclosure Acceptance guide for details.
3
Verify the customer
With consent captured, verify the customer with POST /v0/verifications/verify:The response contains an overall The customer is now
verification_status and an array of the verifications performed:ACCEPTED and ready for the account creation guide.Example: verify a business customer
Complete due diligence on the business before opening an account. This example models a business with a single beneficial owner:1
Create the business customer
Create the business with POST /v0/businesses:
2
Create a beneficial owner
Create the beneficial owner as a person with POST /v0/persons:Use the returned person
id to create a relationship with the business via BENEFICIAL_OWNER_OF:3
Record all necessary disclosures
Create KYC data collection disclosures for each owner before verifying. See the Record Disclosure Acceptance guide.
4
Verify the business
Verify the business — and all related entities — with POST /v0/verifications/verify:The business is now verified and ready for the account creation guide.
Verifying a business initiates KYC and KYB for all entities: the business and its beneficial owner.
Example: verify a business with a complex ownership structure
To satisfy regulatory requirements you must model the full ownership structure — beneficial owners, holding corporations, officers, and directors. This example adds a holding company (which owns the business) and an officer of that holding company:1
Create the business customer
Create the primary business with POST /v0/businesses (see Create a Business Customer for details). Set
is_customer to true to indicate it will be a customer:2
Create a beneficial owner
Create the beneficial owner with POST /v0/persons, then link them via a
BENEFICIAL_OWNER_OF relationship:3
Create the holding company
Represent the owning business by creating another business (not a customer) with POST /v0/businesses, then link it with an
OWNER_OF relationship:4
Create an officer of the holding company
Because the holding company controls a portion of the business, model its officers. Create the officer as a person, then link them to the holding company with a
MANAGING_PERSON_OF relationship:5
Record all necessary disclosures
Create KYC data collection disclosures for each owner before verifying. See the Record Disclosure Acceptance guide.
6
Verify the business
Verify the business and all related entities with POST /v0/verifications/verify:The response includes an overall
Verifying the business initiates KYC and KYB for all entities: the business, the holding company, its officers, and the beneficial owners.
verification_status, the verifications performed, and a RELATED_ENTITIES verification summarizing the outcomes for the beneficial owner, holding company, and officer:Best practices
- Collect and disclose first — gather all required fields and record the KYC data collection disclosure before verifying.
- Model the full ownership tree — link every beneficial owner, owning business, and officer before verifying a business; one call verifies them all.
- Handle each outcome deliberately — follow the suggested actions per status; open a review case rather than blindly re-running KYC.
- Guard re-verification — send
customer_initiated: truefor user-triggered retries and respect the configured limit. - Subscribe to webhooks — watch
BUSINESS.VERIFICATION_OUTCOME.UPDATEDfor asynchronousPENDINGbusiness results.
Related guides
Create a Personal Customer
Onboard a person before verifying them.
Create a Business Customer
Model business ownership before running KYB.
Record Disclosure Acceptance
Capture the KYC data collection disclosure.
Document Verification
Step up customers flagged for review.
External Vendor KYC/KYB
Submit results from your own KYC/KYB vendor.
Ongoing Monitoring
Continuously screen verified customers.

