Authorization solicitations
These endpoints only matter if you chose the notification route (journey 1): instead of showing a QR code, you ask the payer's institution to alert them in their banking app to authorize the recurrence. If you use the QR code, you can skip this page.
Available Endpoints
- Production:
https://api.pixtopay.com.br/v2/automatic-pix/solicitations
How it works
The solicitation status describes the path of the alert, not the payer's decision. RECEIVED means the bank received it, not that the payer authorized. The authorization appears in the recurrence status, which moves to APPROVED or REJECTED.
Create solicitation
Asks the payer's institution to alert them to authorize the recurrence. There is one active solicitation at a time per recurrence.
Route
POST /v2/automatic-pix/solicitations
Headers
{
"Authorization": "YOUR_API_KEY",
"Content-Type": "application/json"
}Body
| Parameter | Type | Required | Description |
|---|---|---|---|
recurrence_id | string | Yes | The recurrence to be authorized. It must exist and belong to your account. |
expires_at | string (ISO 8601) | Yes | Until when the solicitation is valid, with time zone (e.g. "2026-10-10T00:00:00-03:00" or "2026-10-10T03:00:00Z"). Once the deadline passes with no answer, the recurrence moves to EXPIRED. |
destination | object | Yes | The payer's account that will receive the alert. |
destination.agency | string | Yes | Branch, up to 4 characters, without check digit. |
destination.account | string | Yes | Account, up to 20 characters. |
destination.document_number | string | Yes | Account holder's CPF (11) or CNPJ (14), digits only. The check digit is validated. |
destination.ispb | string | Yes | ISPB of the payer's institution: exactly 8 digits. It is the Banco Central code that identifies the institution, not the bank number (e.g. 60701190, not 341). A wrong ISPB produces an alert that never arrives. |
Request example:
curl --location 'https://api.pixtopay.com.br/v2/automatic-pix/solicitations' \
--header 'Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"recurrence_id": "RR9012345620260922f3a1c7b28e4",
"expires_at": "2026-10-10T00:00:00Z",
"destination": {
"agency": "0001",
"account": "123456",
"document_number": "12345678909",
"ispb": "60701190"
}
}'Response model [2xx]
| Parameter | Type | Description |
|---|---|---|
solicitation_id | string | Solicitation identifier |
recurrence_id | string | The recurrence the solicitation belongs to |
status | string | CREATED, SENT, RECEIVED or CANCELLED |
Response 201:
{
"solicitation_id": "SR9012345620260922c4d5e6f7a8b",
"recurrence_id": "RR9012345620260922f3a1c7b28e4",
"status": "CREATED"
}Response 404:
{
"message": "Recurrence not found"
}Response 400 invalid ISPB:
{
"type": "ValidationError",
"message": "body.destination.ispb must be exactly 8 characters"
}Get solicitation
Gets the current state of a solicitation.
Route
GET /v2/automatic-pix/solicitations/:solicitation_id
Headers
{
"Authorization": "YOUR_API_KEY"
}Request example:
curl --location 'https://api.pixtopay.com.br/v2/automatic-pix/solicitations/SR9012345620260922c4d5e6f7a8b' \
--header 'Authorization: API_KEY'Response 200:
{
"solicitation_id": "SR9012345620260922c4d5e6f7a8b",
"recurrence_id": "RR9012345620260922f3a1c7b28e4",
"status": "RECEIVED"
}Response 404:
{
"message": "Solicitation not found"
}Cancel solicitation
Cancels a solicitation that has not been answered yet. Only cancellation is accepted, and the status field is required. Cancelling the solicitation does not cancel the recurrence.
Route
PATCH /v2/automatic-pix/solicitations/:solicitation_id
Headers
{
"Authorization": "YOUR_API_KEY",
"Content-Type": "application/json"
}Body
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | Yes | CANCELLED |
Request example:
curl --location --request PATCH 'https://api.pixtopay.com.br/v2/automatic-pix/solicitations/SR9012345620260922c4d5e6f7a8b' \
--header 'Authorization: API_KEY' \
--header 'Content-Type: application/json' \
--data-raw '{
"status": "CANCELLED"
}'Response 200:
{
"solicitation_id": "SR9012345620260922c4d5e6f7a8b",
"recurrence_id": "RR9012345620260922f3a1c7b28e4",
"status": "CANCELLED"
}Response 400 invalid status:
{
"type": "ValidationError",
"message": "body.status must be one of the following values: CANCELLED"
}