Entity Statuses and Error Codes

Lifecycle statuses, derived document and proof statuses, the error format, and the error code catalog of the Entities API.

Reference tables for the Entities API: lifecycle statuses, derived statuses, the error format, and the catalog of error codes.

Entity status

%%{init: {'theme': 'base', 'themeVariables': {'background': '#ffffff', 'primaryColor': '#31467c', 'primaryTextColor': '#ffffff', 'primaryBorderColor': '#0c1a29', 'secondaryColor': '#31467c', 'tertiaryColor': '#ffffff', 'lineColor': '#0c1a29', 'textColor': '#0c1a29', 'edgeLabelBackground': '#ffffff', 'fontFamily': 'Manrope'}, 'fontFamily': 'Manrope', 'htmlLabels': false, 'flowchart': {'htmlLabels': false, 'wrappingWidth': 400, 'padding': 20}}}%%
flowchart TD
    S((Start)) --> PK[PENDING_KYC]
    PK --- L0(["Request Verification"]):::lbl --> IR[IN_REVIEW]
    IR --> PK
    IR --> AC[ACTIVE]
    IR --> RJ[REJECTED]
    AC --> BL[BLOCKED]
    BL --> AC
    PK --> CL[CLOSED]
    IR --> CL
    AC --> CL
    BL --> CL
    RJ --> CL
    CL --> E((End))
    class S,E terminal
    classDef default fill:#31467c,stroke:#0c1a29,stroke-width:1px,color:#ffffff,font-family:Manrope
    classDef lp fill:#0c1a29,stroke:#0c1a29,color:#ffffff
    classDef terminal fill:#0c1a29,stroke:#0c1a29,color:#ffffff
    classDef lbl fill:#0c1a29,stroke:#0c1a29,color:#ffffff,font-size:13px
StatusMeaningSet by
PENDING_KYCCreated and awaiting files, or returned for a correction (reason in statusReason).You (creation). Localpayment Compliance (correction).
IN_REVIEWUnder review by Localpayment. Data, documents, files, and UBO links are frozen.You, with Request Verification
ACTIVEApproved.Localpayment Compliance
REJECTEDReview failed. Reason in the status history.Localpayment Compliance
BLOCKEDTemporarily blocked. Reason in the status history.Localpayment Compliance
CLOSEDLogically deleted. Final.You (Close an Entity)

You make the creation, IN_REVIEW (with Request Verification), and CLOSED; every other transition is made by Localpayment. IN_REVIEW entities reject edits to data, documents, files, and UBO links with 409 ENTITY_IN_REVIEW. REJECTED, BLOCKED, and CLOSED entities reject edits, new documents, and uploads with 409 ENTITY_NOT_EDITABLE.

Document status (derived)

StatusRule
PENDINGNo approved file yet, or a file is awaiting review.
VERIFIEDAt least one active proof, and all of them APPROVED.
REJECTEDAt least one active proof REJECTED.
EXPIREDexpirationDate is in the past. Takes precedence over the other statuses.

Proof review status (verificationStatus)

StatusMeaning
PENDINGUploaded, not yet reviewed.
IN_REVIEWA Localpayment reviewer opened it.
APPROVEDAccepted. Final for that file.
REJECTEDRefused. See verificationReason. Replace the file by uploading the same proofType once the entity is not IN_REVIEW.

Proof lifecycle (status)

StatusMeaning
CURRENTThe active file of its proofType on the document.
SUPERSEDEDReplaced by a newer upload of the same FRONT, BACK, or SELFIE.
DELETEDRemoved with Delete a Proof. Kept for audit.

Documentation coverage (documentationStatus)

ValueMeaning
NO_FILESNo document has a file.
PARTIALSome documents have files.
COMPLETEEvery document has at least one file. Does not imply approval.

Error format

Errors follow RFC 9457 (application/problem+json). code is a stable machine-readable string, details names the offending field when applicable, and correlationId identifies the request: quote it when you contact support.

{
  "type": "about:blank",
  "title": "Validation error",
  "status": 400,
  "detail": "Validation error",
  "instance": "/api/entity/v1/entities",
  "code": "CUSTOM_FIELDS_INVALID",
  "correlationId": "fff39bf8-1cb2-40c7-ac99-37478d819943",
  "details": [
    {
      "field": "numberOfEmployees",
      "issue": "NOT_IN_OPTIONS"
    },
    {
      "field": "legacyNote",
      "issue": "UNKNOWN_FIELD"
    }
  ]
}

A conflict without field details:

{
  "type": "about:blank",
  "title": "Conflict",
  "status": 409,
  "detail": "Conflict",
  "instance": "/api/entity/v1/entities/7c9e6679-7425-40de-944b-e07fc1f90ae7/ubos",
  "code": "UBO_ALREADY_LINKED",
  "correlationId": "acdfa68b-e1da-4764-84df-0a1e949d0939",
  "details": []
}

Branch on code, not on title or detail: only code is guaranteed to stay stable.

Error codes

HTTPcodeCause
400CUSTOM_FIELDS_INVALIDattributes does not satisfy your custom-fields schema. details[] lists field and issue.
400MISSING_OR_INVALID_CLIENT_CODEYour merchant account could not be identified from the request. Check the credentials you are using.
400VALIDATION_ERRORA field, header, path or query parameter is missing, unknown or invalid. details[] lists field and issue.
401MISSING_OR_INVALID_ACTORThe access token does not identify the user performing the action.
401UNAUTHORIZEDMissing or invalid access token.
403TENANT_MISMATCHThe request mixes identifiers of two merchant accounts. Check the credentials you are using.
404CLIENT_NOT_FOUNDThe merchant account in your credentials does not exist in Localpayment.
404CUSTOM_FIELD_SCHEMA_NOT_FOUNDNo custom-fields schema is published for your merchant.
404DOCUMENT_NOT_FOUNDThe document does not exist, was deleted, or belongs to another merchant.
404ENTITY_NOT_FOUNDThe entity does not exist or belongs to another merchant.
404PROOF_NOT_FOUNDThe proof does not exist or belongs to another merchant.
404UBO_NOT_FOUNDThe UBO link does not exist, has already ended, or belongs to another merchant.
409CONCURRENT_MODIFICATIONTwo uploads of the same proofType on the same document happened at the same time. Retry the request.
409DUPLICATE_ENTITYexternalId, or the pair type + id of a document, already exists in your merchant.
409ENTITY_IN_REVIEWThe entity is IN_REVIEW: its data, documents, files, and UBO links are frozen until Localpayment Compliance resolves it.
409ENTITY_NOT_EDITABLEThe entity is REJECTED, BLOCKED or CLOSED, or the operation would remove the primary document or the only document.
409INVALID_STATUS_TRANSITIONThe entity is not in a status that allows this operation (for example, an entity that is already CLOSED).
409PROOF_APPROVEDThe proof is APPROVED: it cannot be replaced or deleted.
409PROOF_SUPERSEDEDThe proof was replaced by a newer upload of the same proofType on the same document. Only the active proof is reviewed.
409UBO_ALREADY_LINKEDThe person already has an active UBO link with this company.
409UBO_LIMIT_EXCEEDEDThe company already has 50 active UBO links.
412VERSION_CONFLICTIf-Match does not match the current entity version. Read the entity again and retry.
413FILE_TOO_LARGEThe uploaded file exceeds 10 MB.
413PAYLOAD_TOO_LARGEattributes exceeds 64 KB.
415UNSUPPORTED_FILE_TYPEThe uploaded file is not a JPG, PNG or PDF.
415UNSUPPORTED_MEDIA_TYPEThe request Content-Type is not the one the endpoint expects (application/json, or multipart/form-data for uploads).
422ENTITY_NOT_ACTIVEThe company (or the person) is CLOSED, BLOCKED or REJECTED.
422INCOMPLETE_KYC_DATAMinimum KYC data is missing: name and lastname for INDIVIDUAL, name for COMPANY.
422INVALID_CONTROL_ROLEcontrolRole is not one of the role codes listed in Link a UBO. Codes are case-sensitive: director returns this error.
422INVALID_ENTITY_TYPEcompanyId must be a COMPANY and personId an INDIVIDUAL.
422INVALID_PERCENTAGEownershipPercentage is outside 0 to 100 or has more than two decimals.
422INVALID_VALIDITY_RANGEvalidTo is earlier than validFrom.
422NO_PROOFS_UPLOADEDThe entity has no uploaded files. Upload at least one file before requesting verification.
502STORAGE_WRITE_FAILEDThe file could not be stored. Retry the upload.
503CLIENT_DIRECTORY_UNAVAILABLELocalpayment could not resolve your merchant account at this moment. Retry later.

Errors about your merchant account (MISSING_OR_INVALID_CLIENT_CODE, CLIENT_NOT_FOUND, TENANT_MISMATCH, MISSING_OR_INVALID_ACTOR, CLIENT_DIRECTORY_UNAVAILABLE) come from the credentials in your access token, not from the request body. Check that you use the access token of the right merchant account, and contact support with the correlationId if the error persists.