KYC action request fulfillment
Mark a reviewer's KYC change request as fulfilled once the user resubmits the requested data through the DALP Platform API, SDK, and CLI.
When a reviewer requests changes on a KYC profile version, DALP opens an action request that tells the user what to fix. After the user resubmits the corrected data, the application marks that action request as fulfilled. This endpoint records the fulfillment and clears the profile's pending-update flag once nothing else is outstanding.
Fulfillment closes the loop that KYC reviewer version actions opens with a request for changes. A reviewer's request-update decision creates an open action request against the user's KYC profile; this call resolves it. The operator walkthrough in the Console lives in Provide KYC data.
Prerequisites
- The caller owns the KYC profile the action request belongs to. A user can fulfill only their own action requests.
- The action request is in
openstatus. A request that is already fulfilled cannot be fulfilled again.
Fulfill an action request
Fulfilling moves the action request to fulfilled and records the fulfillment
timestamp. DALP then checks whether the user has any other open action requests
across their KYC versions. When none remain, it clears the profile's
pending-update flag, which is how the profile signals it no longer needs the
user's attention.
Call this endpoint when your application drives the change-request loop directly, for example after the user resubmits the corrected version. When a reviewer approves a resubmitted version instead, DALP fulfills the user's open requests as part of the approval, so you do not call this endpoint for that path.
const fulfilled = await client.user.kyc.actionRequest.fulfill({
params: { requestId: "kycar_01hzt7n4openrequest001" },
});Direct HTTP integrations call POST /api/v2/kyc-action-requests/{requestId}/fulfillments.
{
"data": {
"id": "kycar_01hzt7n4openrequest001",
"status": "fulfilled",
"fulfilledAt": "2026-05-24T10:31:08.442Z"
}
}The requestId is the action request ID a reviewer's request-update decision
returns. Read it from the actionRequest.id field on that response, or from a
profile's open requests when you show the user what is outstanding.
State transition
| Step | From | To | Side effect |
|---|---|---|---|
| Fulfill | open | fulfilled | Records the fulfillment time. Clears the profile pending-update flag when no other open request remains. |
Fulfilling an action request does not move the KYC version itself. The version follows its own submission lifecycle: the user edits the draft DALP created for the change request, then resubmits it for review. See KYC version submission for the create, edit, and submit steps.
CLI equivalent
The DALP CLI exposes the same step for operator scripts. Reach for it when a back-office job is easier to run outside the SDK:
| Task | CLI command |
|---|---|
| Fulfill action request | kyc action-request-fulfill |
Validation and error handling
Fulfillment returns two classes of error, and your retry logic should treat them differently. A terminal error means the request or its state is wrong, so a blind retry fails the same way. An operational write failure means the call passed validation but an internal write did not complete. These are marked non-retryable, so do not resend the same call automatically.
Terminal request errors
Treat these as terminal unless the response says otherwise. Confirm the request status and ownership before retrying, and store the request ID from the API response when you escalate a repeated platform error.
| Error | What DALP observed | Caller response |
|---|---|---|
DALP-0389 | Fulfill targeted a missing request, or a request that is not open. | No change is made. Confirm the request ID, and that the request is open. |
DALP-0414 | Fulfill targeted an action request that belongs to another user. | No change is made. A user can fulfill only their own action requests. |
DALP-0387 | The action request has no KYC version associated with it. | No change is made. The request cannot be fulfilled in this state. |
DALP-0420 | No KYC version matches the one the action request references. | No change is made. Confirm the request and its version. |
DALP-0417 | No KYC profile matches the owner of the action request. | No change is made. Confirm the profile exists for the user. |
Operational write failures
This returns HTTP 500 after the call passed validation: DALP confirmed the request is open and belongs to the authenticated user, then the write that marks it fulfilled returned no result. Retry the fulfill request. If the error persists, contact support with the request ID.
| Error | Operation | What DALP observed | Caller response |
|---|---|---|---|
DALP-0404 | Fulfill | The ownership and open-status checks passed, but the write that sets the request to fulfilled returned no result. | Retry the fulfill request. If the error persists, contact support with the request ID. The request stays open and the profile pending-update flag is unchanged. |
Related
KYC reviewer version action API
Approve, reject, or request changes on a KYC profile version under review through the DALP Platform API, SDK, and CLI.
KYC profile deletion API
Delete a user's KYC profile record through the DALP Platform API, including who may call it, the request and response shape, and the idempotent already-removed response.