One-time user enrollment
Learn how to enroll users for Pix with Biometrics payments.
The one-time biometric enrollment requires merchants to create an enrollment request via dLocal's API, establishing the user's biometric authentication profile for future payments.
Flow launch options
The enrollment flow can be adapted to match the merchant's preferred user experience. It is possible to either redirect users to dLocal's standardized interface for a pre-built biometric authentication journey or use the embedded SDK to integrate the biometric flow directly into a native mobile app (iOS / Android) while maintaining your brand experience.
- Redirect approach: Users are directed to dLocal's secure interface, where they authorize their bank account and register their biometric data (face or fingerprint verification).
- Embedded SDK: The same enrollment process occurs within your application, providing a seamless branded experience.
Once enrollment is completed successfully, dLocal provides an enrollment ID via API that uniquely identifies the approved biometric profile, enabling future payments without requiring additional biometric registration.
Exploring embedded SDK integration? Our team can grant access to the native experience integration toolkit. Contact your designated Technical Account Manager or email us at [email protected].
Overall flow

Biometric enrollment process
This process performs a one-time biometric enrollment that enables future biometric-authenticated payments.
User flow

The screenshots illustrate an example of the Pix with Biometrics user enrollment flow
Example request
curl -X POST \
-H 'X-Date: {X-Date}' \
-H 'X-Login: {X-Login}' \
-H 'X-Trans-Key: {X-Trans-Key}' \
-H 'Content-Type: application/json' \
-H 'X-Version: 2.1' \
-H 'User-Agent: MerchantTest / 1.0 ' \
-H 'Authorization: V2-HMAC-SHA256, Signature: {Signature}' \
-d '{body}'
https://api.dlocal.com/enrollments
{
"currency": "BRL",
"country": "BR",
"type": "ON_DEMAND",
"payment_method_id": "XV",
"payment_method_flow": "REDIRECT",
"payer": {
"name": "Thiago Gabriel",
"document": "53033315550",
"email": "[email protected]"
},
"external_id": "31231jj223",
"description": "PIX Biometrics enrollment",
"notification_url": "http://merchantsite.com/notifications",
"callback_url": "http://merchantsite.com/callback"
}
{
"id": "E-4-32e1218f-b6ec-3f21-13d5-50v12ere2ca4",
"external_id": "31231jj223",
"currency": "BRL",
"country": "BR",
"type": "ON_DEMAND",
"payment_method_id": "XV",
"payment_method_flow": "REDIRECT",
"payment_method_type": "TICKET",
"created_date": "2025-12-26T20:37:20.000+0000",
"status": "PENDING",
"status_detail": "The enrollment is pending.",
"status_code": "100",
"redirect_url": "https://pay.dlocal.com/gmf-apm/payments/E-4-32e1218f-b6ec-3f21-13d5-50v12ere2ca4",
"notification_url": "http://merchantsite.com/notifications"
}
{
"id": "E-4-32e1218f-b6ec-3f21-13d5-50v12ere2ca4",
"external_id": "31231jj223",
"currency": "BRL",
"country": "BR",
"type": "ON_DEMAND",
"payment_method_id": "XV",
"payment_method_flow": "REDIRECT",
"payment_method_type": "TICKET",
"created_date": "2025-12-26T20:37:20.000+0000",
"status": "ACTIVE",
"status_detail": "The enrollment is active.",
"status_code": "200",
"notification_url": "http://merchantsite.com/notifications"
}
Request params
| Field | Type | Description | Required |
|---|---|---|---|
currency | String | BRL or USDTransaction currency in ISO 4217. | Yes |
country | ISO 3166-1 alpha-2 code | BRTransaction country in ISO 3166. | Yes |
type | String | Type of enrollment. Always send ON-DEMAND for Pix with Biometrics. | Yes |
payment_method_id | String | XVID of the selected payment method. | Yes |
payment_method_flow | String | REDIRECT | Yes |
| Payer Object | |||
payer.name | String (max. 100) | Name of the payer. | Yes |
payer.document | 11–14 digits Full CPF validation | Document of the payer (CPF or CNPJ). | Yes |
payer.email | String (max. 100) | Email of the payer. | Yes |
external_id | String | An identifier used by the merchant to identify the enrollment in their system. | Yes |
description | String | Enrollment description. | No |
notification_url | String (max. 200) | Notifications will be sent on every change of status to the notification_url specified by the merchant. | No |
callback_url | String | URL where the user will be redirected after approval of the transaction. | Yes |
Response params
| Field | Type | Description |
|---|---|---|
enrollment.id | String | Enrollment ID provided by dLocal, which must be used for future biometric payments. |
Updated about 5 hours ago
