accept_identity_match
Accept a PENDING identity match — merge the two records into one. Identify it by candidate_id, OR person_a + person_b, OR profile_a + profile_b (the profile pair from a review-queue row — use this for the email→person queue where candidate_id is null). The target/first record survives; your own person always survives. REVERSIBLE (an admin can undo it). If noticed has evidence the two may be DIFFERENT people it does NOT merge — it returns a needs-confirmation result with the conflicting evidence + a confirmation_token; relay the human-readable evidence without mentioning tokens or override mechanics, and only if the user still wants to merge, call again passing the token back (never pre-set it). A verified-sign-in conflict is admin-only.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| person_a | No | persons.id — alternative to candidate_id; pass with person_b. | |
| person_b | No | persons.id — pass with person_a. | |
| profile_a | No | Source-prefixed profile id (e.g. email:a@b.com) — the profile_a from a pending review-queue row. Use for the email→person review queue (candidate_id null, one side has no person). Pass with profile_b. | |
| profile_b | No | Source-prefixed profile id (e.g. github:123) — the profile_b from list_identity_matches. Pass with profile_a. | |
| candidate_id | No | merge_candidates id of a pending match (the candidate_id from list_identity_matches). | |
| confirmation_token | No | Returned BY a needs-confirmation response. Pass it back to merge anyway, only after the user reviewed the evidence. Cannot be guessed/pre-set. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | Whether noticed completed the operation. | |
| data | No | The operation result when ok is true. | |
| error | No | A human-readable error when ok is false. |