ACTION_REQUIRED and holds verification there until you respond. Nothing progresses in the meantime.
An RFI can also be raised after a customer is already
APPROVED. In that case the customer status does not change. The only signal is the customer.rfi webhook and the populated request_for_information array.How an RFI Reaches You
There are two ways to find an open RFI, and both carry the same structure.
The
customer.status webhook fires alongside customer.rfi when the status actually changes. Treat customer.rfi as the payload that tells you what to do, and customer.status as the state transition.
Reading the RFI Payload
The payload is a list of sections. Each section holds one or more document categories, and each category holds the individual fields with a problem.Field Status Values
Section Values by Customer Type
An RFI can be scoped to the customer’s own records or to a specific associated party. Sections from the associated party rows above tell you the request concerns a party rather than the business itself.
Example: The customer.rfi Webhook
An individual customer whose passport has expired on the front, is damaged on the back, is missing both dates, and carries a name mismatch:
x-fin-signature header before acting on the payload. See Verifying webhooks.
Example: Get Customer Details
The same request is readable at any time on the customer record.request_for_information is an empty array when nothing is outstanding.
scope, which is CUSTOMER or ASSOCIATED_PARTY, and options, which lists permitted values when data_type is ENUM.
Responding to an RFI
Responding takes two calls: upload the files, then patch the customer with the returned URIs.1
Upload the replacement files
Post the files to POST /v1/customers/upload as Allowed file types are
multipart/form-data. Field names are arbitrary and are echoed back as the keys in the response.PDF, JPG, JPEG, and PNG. Keep the returned URIs; the next call needs them.2
Submit the response
Send the requested fields to PATCH /v1/customers/:customer-id. The same endpoint serves individual and business customers, and its body accepts the same fields as the Attach Documents endpoints.
3
Watch for the outcome
The customer returns to
REVIEWING while compliance reassesses. Listen on customer.status for the result, and on customer.rfi in case a further request is raised.Individual Customer Response
Answering theproof_of_identity and proof_of_address sections from the webhook example above:
Business Customer Response
Business sections map to top level arrays. An RFI scoped to an associated party is answered insideassociated_party_attachments, keyed by associated_party_id:
400 response means validation failed. The data object names the offending fields. A 404 means the customer ID does not exist.
