To validate your integration, you may simulate transactions using specific values in our test mode environment.

🚧

Base URL for Sandbox

https://api.sandbox.international.pagseguro.com



Simulation of success scenarios

Create Transaction

To simulate a transaction creation you can send a request following the field specifications documented here.

Below are sample request payloads and responses:

Payload
curl --location '<https://api.sandbox.international.pagseguro.com>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <value>' \
--header 'Idempotency-Key: <value>'
--data-raw '{
    "integration": {
        "reference": "REF-XXX-${{random}}",
        "notification_url": "https://www.merchantwebsite.com/notify?type=transaction",
        "language": "pt_BR"
    },
    "order": {
        "currency": "BRL",
        "items": [
            {
                "quantity": 1,
                "description": "Product description",
                "unit_price": 101.10
            }
        ]
    },
    "charge": {
        "country": "BR",
        "type": "CREDIT_CARD",
        "credit_card": {
            "raw": {
                "number":"4073020000000002",
                "cvc":"123",
                "expiration_month":"12",
                "expiration_year":"2028"
            },
            "holder_name": "jonh doe"
        }
    },
    "payer": {
        "email": "[email protected]",
        "ip": "192.0.2.146",
        "person": {
            "name": "Jonh Doe",
            "birth_date": "1970-01-01",
            "document": {
                "type": "CPF",
                "number": "29002996080"
            },            
            "phone": {
                "country_code": "55",
                "number": "44900000000"
            }
        }
    }
}'
Response
{
    "code": "46c214d0-51b7-4b2c-b5b2-e8d0683070f9",
    "reference": "REF-XXX-1737137850",
    "amount": 101.1,
    "status": "PENDING",
    "currency": "BRL",
    "country": "BR",
    "created_at": "2025-01-17T18:17:29Z"
}

📘

Post creation

After creating your transactions, you can simulate their status changes. This will allow you to receive notifications about these status changes through the integration.notification_url provided during creation.

Simulator

PagSeguro offers a panel for properly simulating all statuses and the integration flow. See the section: Sandbox Environment

Search API

PagSeguro offers an API to retrieve transaction details, this is useful so that you can check the transaction current status. See the section: Search API



Error simulation with special values

Idempotency Errors

Request Already In Progress

To simulate this scenario in transactions in test mode, you must send the following idempotency key header:

Idempotency-Key: a5b6c9c8-e98c-40d5-aaf7-646c4771bcb
Payload
curl --location 'https://api.sandbox.international.pagseguro.com' \
--header 'Authorization: <value>' \
--header 'Idempotency-Key: a5b6c9c8-e98c-40d5-aaf7-646c4771bcb' \
--header 'Content-Type: application/json' \
--data-raw '{
    "integration": {
        "reference": "REF-XXX-1737140601",
        "notification_url": "https://www.merchantwebsite.com/notify?type=transaction",
        "language": "pt_BR"
    },
    "order": {
        "currency": "BRL",
        "items": [
            {
                "quantity": 1,
                "description": "Product description",
                "unit_price": 101.10
            }
        ]
    },
    "charge": {
        "country": "BR",
        "type": "CREDIT_CARD",
        "credit_card": {
            "raw": {
                "number":"4073020000000002",
                "cvc":"123",
                "expiration_month":"12",
                "expiration_year":"2028"
            },
            "holder_name": "jonh doe"
        }
    },
    "payer": {
        "email": "[email protected]",
        "ip": "192.0.2.146",
        "person": {
            "name": "Mr. Payer Full Name",
            "birth_date": "1970-01-01",
            "document": {
                "type": "CPF",
                "number": "29002996080"
            },            
            "phone": {
                "country_code": "55",
                "number": "44900000000"
            }
        }
    }
}'
Response
{  
    "message": "request_already_in_progress"  
}

Request body mismatched with same idempotency key

To simulate this scenario, you must send the same idempotency key twice, with a different body in each request.

Response
{  
    "errors": {  
        "message": "Request body mismatched with same idempotency key",  
        "location": "header.idempotency_key"  
    }  
}


Domain Errors

payer_buy_limit_exceed

To simulate this error in transactions in test mode you can use the following data set:

CountryDocument TypeDocument Number
BRCPF36898228072
COCC1112223334
COCEZ778899
PECEBC11122233
MXCURPdcba001122habcde12
PEDNI87654321b
CONIT2222222222
MXRFCzbc123456pl2
CLRUT12345678k
COTI01234567891
PERUC0123456789
Payload
curl --location '<https://api.sandbox.international.pagseguro.com>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <value>' \
--header 'Idempotency-Key: <value>'
--data-raw '{
    "integration": {
        "reference": "REF-XXX-${{random}}",
        "notification_url": "https://www.merchantwebsite.com/notify?type=transaction",
        "language": "pt_BR"
    },
    "order": {
        "currency": "BRL",
        "items": [
            {
                "quantity": 1,
                "description": "Product description",
                "unit_price": 101.10
            }
        ]
    },
    "charge": {
        "country": "BR",
        "type": "CREDIT_CARD",
        "credit_card": {
            "raw": {
                "number":"4073020000000002",
                "cvc":"123",
                "expiration_month":"12",
                "expiration_year":"2028"
            },
            "holder_name": "jonh doe"
        }
    },
    "payer": {
        "email": "[email protected]",
        "ip": "192.0.2.146",
        "person": {
            "name": "Jonh Doe",
            "birth_date": "1970-01-01",
            "document": {
                "type": "CPF",
                "number": "36898228072"
            },            
            "phone": {
                "country_code": "55",
                "number": "44900000000"
            }
        }
    }
}'
Response
{
     "error": "payer_buy_limit_exceed"
}

integration_reference_already_exists

To simulate this error in transactions in test mode you can send a reference more than once.

Payload
curl --location '<https://api.sandbox.international.pagseguro.com>' \
--header 'Content-Type: application/json' \
--header 'Authorization: Basic <value>' \
--header 'Idempotency-Key: ef226ae8-05ff-47cf-91f1-6bd47fe37e0f'
--data-raw '{
    "integration": {
        "reference": "REF-XXX-123",
        "notification_url": "https://www.merchantwebsite.com/notify?type=transaction",
        "language": "pt_BR"
    },
    "order": {
        "currency": "BRL",
        "items": [
            {
                "quantity": 1,
                "description": "Product description",
                "unit_price": 101.10
            }
        ]
    },
    "charge": {
        "country": "BR",
        "type": "CREDIT_CARD",
        "credit_card": {
            "raw": {
                "number":"4073020000000002",
                "cvc":"123",
                "expiration_month":"12",
                "expiration_year":"2028"
            },
            "holder_name": "jonh doe"
        }
    },
    "payer": {
        "email": "[email protected]",
        "ip": "192.0.2.146",
        "person": {
            "name": "Jonh Doe",
            "birth_date": "1970-01-01",
            "document": {
                "type": "CPF",
                "number": "36898228072"
            },            
            "phone": {
                "country_code": "55",
                "number": "44900000000"
            }
        }
    }
}'
Response
{
     "error": "integration_reference_already_exists"
}

🚧

Errors Unavailable - TestMode

Other domain errors not listed on this page are not yet available in the test mode. We are working to make your experience as assertive as possible.


Did this page help you?