Looking for the previous documentation?Go to v1.docs.pluggy.ai
POST/pix-biometric/enrollments/{id}/revoke

Revoke enrollment

Revokes the link at the institution. Returns the enrollment with status REVOKED and revokedBy CLIENT, and sends `pix_biometric_enrollment/revoked`. It cannot be undone: the payer links again to pay with biometrics. An enrollment already REJECTED, REVOKED or EXPIRED is returned unchanged, so retrying is safe.

Parameters

Path Parameters

NameType
idrequired
string (uuid)

Responses

200The revoked enrollment
object

A linked account (enrollment): the payer's account at one institution, linked to the device and browser where they created the passkey. Only the payer creates one, on the payment page.

idrequiredstring (uuid)

Enrollment primary identifier. Payment intents reference it as `enrollmentId`.

statusrequiredstring

CREATED: the payer started linking and has not finished. AUTHORIZED: the link is active. REJECTED: the link was not completed (rejected, or not finished in time). REVOKED: revoked at the bank or through the API. EXPIRED: the link reached its expiration date or became inactive at the institution. REJECTED, REVOKED and EXPIRED are final.

CREATEDAUTHORIZEDREJECTEDREVOKEDEXPIRED
connectorrequiredobject | null

Institution where the account is held

Any of:
option 1object
option 2null | null
debtorrequiredobject | null

The linked account. Null until the institution reports it.

Any of:
option 1object

The linked account, as the institution reported it.

option 2null | null
cpfrequiredstring | null

Payer's CPF, masked

cnpjrequiredstring | null

Payer's CNPJ, masked

customerIdrequiredstring (uuid) | null

Payment Customer of the payment request where the link was created. Null when the payer typed their CPF.

limitsrequiredobject | null

Limits the payer set at the bank, in BRL. Null until the institution reports them.

Any of:
option 1object
option 2null | null
expiresAtrequiredstring (date-time) | null

When the link expires, as set by the institution

dataConsentrequiredobject | null

Balance-sharing permission. Null when the payment request did not offer it or the payer chose not to share.

Any of:
option 1object
option 2null | null
revokedByrequiredstring | null

Who revoked the link: BANK (the payer or the institution, at the bank) or CLIENT (you, through the API). Null unless `status` is REVOKED.

BANKCLIENTPAYERnull
errorDetailrequiredobject | null

Reason the institution gave when the link was rejected

Any of:
option 1object
option 2null | null
createdAtrequiredstring (date-time)

Date the enrollment was created

updatedAtrequiredstring (date-time)

Date the enrollment was last updated

Example response

json
{
  "id": "c91a5e2b-7d0f-4f3e-9a51-2f6b8e1d4c77",
  "status": "AUTHORIZED",
  "connector": {
    "id": 608,
    "name": "Santander",
    "imageUrl": "https://cdn.pluggy.ai/assets/connector-icons/208.svg"
  },
  "debtor": {
    "name": "John Doe",
    "taxNumber": "***.456.789-**",
    "bankAccount": {
      "agency": "1234",
      "account": "****4821",
      "name": "Santander"
    }
  },
  "cpf": "***.456.789-**",
  "cnpj": null,
  "customerId": "a2d4c1e8-5b7f-4c3a-9e2d-1f6b8c0d7e55",
  "limits": {
    "transaction": 1000,
    "daily": 3000,
    "dailyUsed": 149.9
  },
  "expiresAt": "2027-10-28T13:05:00.000Z",
  "dataConsent": null,
  "revokedBy": null,
  "errorDetail": null,
  "createdAt": "2026-10-28T13:02:00.000Z",
  "updatedAt": "2026-10-28T13:05:00.000Z"
}
curl -X POST \
'https://api.pluggy.ai/pix-biometric/enrollments/{id}/revoke' \
-H 'Content-Type: application/json' \
-H 'X-API-KEY: YOUR_API_KEY'
Sample response
{
"id": "c91a5e2b-7d0f-4f3e-9a51-2f6b8e1d4c77",
"status": "AUTHORIZED",
"connector": {
"id": 608,
"name": "Santander",
"imageUrl": "https://cdn.pluggy.ai/assets/connector-icons/208.svg"
},
"debtor": {
"name": "John Doe",
"taxNumber": "***.456.789-**",
"bankAccount": {
"agency": "1234",
"account": "****4821",
"name": "Santander"
}
},
"cpf": "***.456.789-**",
"cnpj": null,
"customerId": "a2d4c1e8-5b7f-4c3a-9e2d-1f6b8c0d7e55",
"limits": {
"transaction": 1000,
"daily": 3000,
"dailyUsed": 149.9
},
"expiresAt": "2027-10-28T13:05:00.000Z",
"dataConsent": null,
"revokedBy": null,
"errorDetail": null,
"createdAt": "2026-10-28T13:02:00.000Z",
"updatedAt": "2026-10-28T13:05:00.000Z"
}