O 3DS é um protocolo de autenticação de comércio eletrônico que permite o processamento seguro de transações de cartões para pagamentos.
ATENÇÃO
Antes de criar o pedido com autenticação 3DS, a criptografia é um passo obrigatário. Para criptografar o cartão clique aqui.
IMPORTANTE
Para
payment_method.type
=DEBIT_CARD
é obrigatória a presença do objetoauthentication_method
para o processamento da transação.
Ao informar o id no objeto authentication_method
com type
= THREEDS
, a cobrança de uma transação que passou pela Autenticação 3DS PagSeguro será realizada.
curl --location 'https://sandbox.api.pagseguro.com/orders' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer {{TOKEN}}' \
--data-raw '{
"reference_id": "ex-00001",
"customer": {
"name": "Jose da Silva",
"email": "[email protected]",
"tax_id": "12345678909",
"phones": [
{
"country": "55",
"area": "11",
"number": "999999999",
"type": "MOBILE"
}
]
},
"items": [
{
"reference_id": "referencia do item",
"name": "nome do item",
"quantity": 1,
"unit_amount": 500
}
],
"shipping": {
"address": {
"street": "Avenida Brigadeiro Faria Lima",
"number": "1384",
"complement": "apto 12",
"locality": "Pinheiros",
"city": "São Paulo",
"region_code": "SP",
"country": "BRA",
"postal_code": "01452002"
}
},
"notification_urls": [
"https://meusite.com/notificacoes"
],
"charges": [
{
"reference_id": "referencia da cobranca",
"description": "descricao da cobranca",
"amount": {
"value": 500,
"currency": "BRL"
},
"payment_method":{
"type":"CREDIT_CARD",
"installments":1,
"capture":true,
"soft_descriptor":"My Store",
"card":{
"number":"4111111111111111",
"exp_month":"03",
"exp_year":"2026",
"security_code":"123",
"holder":{
"name":"Jose da Silva"
}
},
"authentication_method":{
"type":"THREEDS",
"id":"3DS_15CB7893-4D23-44FA-97B7-AC1BE516D418"
}
}
}
]
}'
{
"id": "ORDE_A4AD41D9-B0E8-4CB6-AC0F-0227E5A6C05A",
"reference_id": "ex-00001",
"created_at": "2023-02-16T17:26:00.335-03:00",
"customer": {
"name": "Jose da Silva",
"email": "[email protected]",
"tax_id": "12345678909",
"phones": [
{
"type": "MOBILE",
"country": "55",
"area": "11",
"number": "999999999"
}
]
},
"items": [
{
"reference_id": "referencia do item",
"name": "nome do item",
"quantity": 1,
"unit_amount": 500
}
],
"shipping": {
"address": {
"street": "Avenida Brigadeiro Faria Lima",
"number": "1384",
"complement": "apto 12",
"locality": "Pinheiros",
"city": "São Paulo",
"region_code": "SP",
"country": "BRA",
"postal_code": "01452002"
}
},
"charges": [
{
"id": "CHAR_F18B8713-39BB-4862-AE69-EB3684B8DCC2",
"reference_id": "referencia da cobranca",
"status": "PAID",
"created_at": "2023-02-16T17:26:00.821-03:00",
"paid_at": "2023-02-16T17:26:01.000-03:00",
"description": "descricao da cobranca",
"amount": {
"value": 500,
"currency": "BRL",
"summary": {
"total": 500,
"paid": 500,
"refunded": 0
}
},
"payment_response": {
"code": "20000",
"message": "SUCESSO",
"reference": "032416400102"
},
"payment_method": {
"type": "CREDIT_CARD",
"installments": 1,
"capture": true,
"card": {
"brand": "visa",
"first_digits": "411111",
"last_digits": "1111",
"exp_month": "3",
"exp_year": "2026",
"holder": {
"name": "Jose da Silva"
}
},
"authentication_method":{
"type":"THREEDS",
"id":"3DS_15CB7893-4D23-44FA-97B7-AC1BE516D418"
},
"soft_descriptor": "MyStore"
},
"links": [
{
"rel": "SELF",
"href": "https://sandbox.api.pagseguro.com/charges/CHAR_F18B8713-39BB-4862-AE69-EB3684B8DCC2",
"media": "application/json",
"type": "GET"
},
{
"rel": "CHARGE.CANCEL",
"href": "https://sandbox.api.pagseguro.com/charges/CHAR_F18B8713-39BB-4862-AE69-EB3684B8DCC2/cancel",
"media": "application/json",
"type": "POST"
}
]
}
],
"notification_urls": [
"https://meusite.com/notificacoes"
],
"links": [
{
"rel": "SELF",
"href": "https://sandbox.api.pagseguro.com/orders/ORDE_A4AD41D9-B0E8-4CB6-AC0F-0227E5A6C05A",
"media": "application/json",
"type": "GET"
},
{
"rel": "PAY",
"href": "https://sandbox.api.pagseguro.com/orders/ORDE_A4AD41D9-B0E8-4CB6-AC0F-0227E5A6C05A/pay",
"media": "application/json",
"type": "POST"
}
]
}
Cenários de teste
Por se tratar de um ambiente controlado, devem ser informados os seguintes valores para simular diferentes cenários no ambiente Sandbox:
Valores | Response |
---|---|
VISApayment_method.card.number = 4000000000002701amount.value = 2701MASTERCARD payment_method.card.number = 5200000000001005amount.value = 1005ELO payment_method.card.number = 6505050000001005amount.value = 1000 | 3DS interno autenticado sem desafiostatus = PAIDthreeds.status = AUTHENTICATED |
VISApayment_method.card.number = 4000000000002503amount.value = 2503MASTERCARD payment_method.card.number = 5200000000001096amount.value = 1096ELO payment_method.card.number = 6505050000001091amount.value = 1091 | 3DS interno autenticado com desafiostatus = PAIDthreeds.status = AUTHENTICATED |
VISApayment_method.card.number = 4000000000002925amount.value = 2925MASTERCARD payment_method.card.number = 5200000000001013amount.value = 1013ELO payment_method.card.number = 6505050000001018amount.value = 1018 | 3DS interno não autenticado sem desafiostatus = PAIDthreeds.status = NOT_AUTHENTICATED |
VISApayment_method.card.number = 4000000000002370amount.value = 2370MASTERCARD payment_method.card.number = 5200000000001104amount.value = 1104ELO payment_method.card.number = 6505050000001109amount.value = 1109 | 3DS interno não autenticado com desafiostatus = PAIDthreeds.status = NOT_AUTHENTICATED |
VISApayment_method.card.number = 4000000000002701amount.value = 4001MASTERCARD payment_method.card.number = 5200000000001005amount.value = 5201ELO payment_method.card.number = 6505050000001000amount.value = 4001 | 3DS interno autenticado sem desafiostatus = DECLINEDthreeds.status = AUTHENTICATED |
VISApayment_method.card.number = 4000000000002503amount.value = 4003MASTERCARD payment_method.card.number = 5200000000001096amount.value = 5206ELO payment_method.card.number = 6505050000001091amount.value = 6501 | 3DS interno autenticado com desafiostatus = DECLINEDthreeds.status = AUTHENTICATED |
VISApayment_method.card.number = 4000000000002925amount.value = 4005MASTERCARD payment_method.card.number = 5200000000001013amount.value = 5203ELO payment_method.card.number = 6505050000001018amount.value = 6508 | 3DS interno não autenticado sem desafiostatus = DECLINEDthreeds.status = NOT_AUTHENTICATED |
VISApayment_method.card.number = 4000000000002370amount.value = 4000MASTERCARD payment_method.card.number = 5200000000001104amount.value = 5204ELO payment_method.card.number = 6505050000001109amount.value = 6509 | 3DS interno não autenticado com desafiostatus = DECLINEDthreeds.status = NOT_AUTHENTICATED |