Skip to main content
If your platform already runs KYC with its own identity provider, your customers should not have to verify twice. Submit the decisioned result to Fluz with postKycVerification. Unlike the other API methods, Fluz does not screen the identity itself here — the decision is yours. Fluz only validates and records it, and moves the customer’s status accordingly.
Prerequisites
  • An external KYC program approved by Fluz for your application. Talk to your account manager before building against this method.
  • The VERIFY_KYC scope enabled on your application by Fluz. See Required scope.
  • A user access token generated for the customer being verified, including VERIFY_KYC in its scopes.
  • The dedicated secure ingestion endpoint for your environment, provided during onboarding.
Send this mutation to the dedicated secure ingestion endpoint, not the standard API host. This endpoint securely tokenizes PII data like person.ssn in transit. A request whose SSN or other PII data arrive untokenized is rejected. Always pass the arguments as GraphQL variables; values inlined into the query document cannot be tokenized.
  • Staging: https://secure.transactional-graph.staging.fluzapp.com/api/v1/graphql
  • Production: provided during onboarding

How it works

The postKycVerification mutation is synchronous. You submit the verified identity and the provider verifications backing your decision, and Fluz returns APPROVED, DECLINED, DUPLICATE, or ERROR in the response body. There is no customer-facing step. A few behaviors are specific to this method:
  • Only decisioned results. decision must be PASSED or FAILED. Do not send pending or undecisioned verifications.
  • Idempotency. Submissions are idempotent on externalVerificationId — your provider’s unique id for the attempt. Replaying an id returns the original result and writes nothing; a re-decisioned verification must be submitted with a new id.
  • Status transitions. A PASSED result moves an unverified customer to verified. If the customer is already verified — by any method — the verification is still recorded for audit, but their status is never changed; the response message notes that the existing status was preserved. A FAILED result is recorded and leaves the status untouched.
  • No attempt limit. Because you are reporting results rather than requesting screening, this method has no attempt limit and does not count against the limits on Verify by SSN or KYC Autofill.

Request

The customer is identified by the user access token in the Authorization header — person.userId and your application identity are filled in by Fluz, and any submitted values are overwritten. See postKycVerification for the full field reference, including the person and verifications object shapes.

Example

Response

Handling the response

Testing

Test against the staging endpoint with fabricated identities — because the decision is yours, there are no provider test-identity requirements as with the other methods. Use SSNs in the 900-XX-XXXX range (never issued), generate a fresh externalVerificationId per attempt (replaying an id returns the original result rather than exercising a new one), and make sure any photo URLs you send are fetchable — Fluz retrieves and stores the images.