Recuperando dados do pagamento

Para recuperar os dados do pagamento, na activity de resposta, acesse a intent recebida. Então, use o parâmetro data da intent para obter a URI com as informações da transação.

val responseIntent = intent
if (Intent.ACTION_VIEW == responseIntent.action) {
   val uri = responseIntent.data
   val response = uri.getQueryParameter("response")
   val data = Base64.decode(response, Base64.DEFAULT)
   val json = String(data)
}
ℹ️

O parâmetro response é o mesmo que foi configurado como resposta na chamada de pagamento.

Assim que o pagamento é concluído, a Cielo Smart envia uma resposta para a URI configurada previamente. Essa resposta será um JSON contendo os dados da transação, seguindo o formato exemplificado abaixo:

{
   "createdAt":"Jun 8, 2018 1:51:58 PM",
   "id":"ba583f85-9252-48b5-8fed-12719ff058b9",
   "items":[
      {
         "description":"",
         "details":"",
         "id":"898e7f40-fa21-42d0-94d4-b4e95c4fd615",
         "name":"cocacola",
         "quantity":2,
         "reference":"",
         "sku":"1234",
         "unitOfMeasure":"unidade",
         "unitPrice":250
      },
      {
         "description":"",
         "details":"",
         "id":"4baea4c2-5499-4783-accc-0f8904970861",
         "name":"pepsi",
         "quantity":2,
         "reference":"",
         "sku":"4321",
         "unitOfMeasure":"unidade",
         "unitPrice":280
      }
   ],
   "notes":"",
   "number":"",
   "paidAmount":1450,
   "payments":[
      {
         "accessKey":"XXXXXXXXXXXXXXX",
         "amount":1450,
         "applicationName":"com.ads.lio.uriappclient",
         "authCode":"140126",
         "brand":"Visa",
         "cieloCode":"799871",
         "description":"",
         "discountedAmount":0,
         "externalId":"6d5f6f86-7870-4aed-b79f-0a26d6c61743",
         "id":"bb9c6305-95e5-4024-8152-503d064c0224",
         "installments":0,
         "mask":"424242-4242",
         "merchantCode":"0000000000000003",
         "paymentFields":{
            "isDoubleFontPrintAllowed":"false",
            "hasPassword":"false",
            "primaryProductCode":"1000",
            "isExternalCall":"true",
            "primaryProductName":"CREDITO",
            "receiptPrintPermission":"1",
            "isOnlyIntegrationCancelable":"false",
            "upFrontAmount":"0",
            "creditAdminTax":"0",
            "firstQuotaDate":"0",
            "isFinancialProduct":"true",
            "hasSignature":"true",
            "hasPrintedClientReceipt":"false",
            "hasWarranty":"false",
            "applicationName":"com.ads.lio.uriappclient",
            "interestAmount":"0",
            "changeAmount":"0",
            "serviceTax":"0",
            "cityState":"Barueri - SP",
            "hasSentReference":"false",
            "secondaryProductName":"A VISTA",
            "paymentTransactionId":"6d5f6f86-7870-4aed-b79f0a26d6c61743",
            "avaiableBalance":"0",
            "pan":"424242-4242",
            "originalTransactionId":"0",
            "originalTransactionDate":"08/06/18",
            "secondaryProductCode":"1",
            "hasSentMerchantCode":"false",
            "documentType":"J",
            "statusCode":"1",
            "merchantAddress":"Alameda Grajau, 219",
            "merchantCode":"0000000000000003",
            "paymentTypeCode":"1",
            "hasConnectivity":"true",
            "productName":"CREDITO A VISTA - I",
            "merchantName":"POSTO ABC",
            "entranceMode":"141010104080",
            "firstQuotaAmount":"0",
            "cardCaptureType":"1",
            "totalizerCode":"0",
            "requestDate":"1528476655000",
            "boardingTax":"0",
            "applicationId":"cielo.launcher",
            "numberOfQuotas":"0",
            "document":"000000000000000"
         },
         "primaryCode":"1000",
         "requestDate":"1528476655000",
         "secondaryCode":"1",
         "terminal":"69000007"
      }
   ],
"pendingAmount":0,
"price":1060,
"reference":"Order",
"status":"ENTERED",
"type":"PAYMENT",
"updatedAt":"Jun 8, 2018 1:51:58 PM"
}
👍

O campo statusCode informa o tipo de operação realizada na transação. Quando o valor é 0 ou 1, significa que se trata de um pagamento, sendo que o código 0 é usado exclusivamente para pagamentos via Pix. Já quando o valor é 2, indica que houve um cancelamento da transação.

Payment Fields: atributo do objeto Payment


CampoTipoDescriçãoValor de exemplo
clientNamestringNome do PortadorVISA ACQUIRER TEST CARD 03
hasPasswordbooleanValidar se a operação pediu senhatrue
primaryProductCodestringCódigo do produto primário1000
primaryProductNamestringNome do produto primárioCREDITO
upFrontAmountnumberValor da entrada da transação2500
creditAdminTaxnumberValor da taxa de administração de crédito0
firstQuotaDatestringData de débito da primeira parcela25/12/2018 (dd/MM/yyyy)
externalCallMerchantCodestringNúmero do Estabelecimento Comercial. Formato: 00+ (EC: 10 dígitos) + (Loja do EC: 4 dígitos) = (Total de 16 dígitos)0010000244470001
hasSignaturebooleanValidar se a operação pediu assinaturafalse
hasPrintedClientReceiptbooleanValidar se imprimiu a via do clientefalse
applicationNamestringPacote da aplicaçãocielo.launcher
interestAmountnumberValor de juros5000
changeAmountnumberValor de troco4500
serviceTaxnumberTaxa de serviço2000
cityStatestringCidade - EstadoBarueri - SP
secondaryProductNamestringNome do produto secundárioPARC. ADM
paymentTransactionIdstringID da transação de pagamento4c613b44-19b8-497c-b072-60d5dd6807e7
binstringNúmero cartão tokenizado (6 primeiros dígitos – 4 últimos dígitos ou 4 últimos)476173-0036 ou **********4242
originalTransactionIdstringID da transação original, nos casos de cancelamento729d32ac-6c8d-4b0c-b670-263552f07000
cardLabelApplicationstringTipo de aplicação utilizada pelo cartão na transaçãoCREDITO DE VISA
secondaryProductCodestringCódigo do produto secundário1
documentTypestring(J) = Pessoa Jurídica (F) = Pessoa FísicaJ
statusCodestringStatus da transação: 0(PIX), 1 - Autorizada, 2 - Cancelada1
merchantAddressstringEndereço do estabelecimento comercial (lojista)Alameda Grajau, 219
merchantCodestringNúmero do Estabelecimento Comercial. Formato: 00+ (EC: 10 dígitos) + (Loja do EC: 4 dígitos) = (Total de 16 dígitos)0010000244470001
hasConnectivitybooleanValida se a transação foi onlinetrue
productNamestringForma de pagamento compiladaCREDITO PARCELADO ADM - I
merchantNamestringNome Fantasia do Estabelecimento ComercialLOJA ON
firstQuotaAmoutnumberValor da primeira parcela0
cardCaptureTypestringCódigos do tipo de captura do cartão (EMV = 0; DIGITADO: 1; TRILHA_1 e TRILHA_2 = 2; CTLS_EMV e CTLS_TRILHA = 3; QRCODE = 6; NONE, TIBC_10, TIBC_30 e EASY_ENTRY = -1.1
requestDatenumberData da requisição em milisegundos1293857600000
boardingTaxnumberTaxa de embarque1200
applicationIdstringPacote de aplicaçãocielo.launcher
numberOfQuotasnumberNúmero de parcelas2

Valores aceitos nos campos de produto e código primário e secundário

Abaixo, você encontra a lista completa de valores aceitos nos campos primaryProductCode e primaryCode bem como para secondaryProductCode e secondaryCode que devem ser utilizados na configuração da requisição.


Nome do ProdutoProduto PrimárioCódigo PrimárioProduto SecundárioCódigo Secundário
Débito à vistaDEBITO2000VISTA1
Pagamento de fatura de débitoDEBITO2000PAGTO FATURA DEBITO4
Crédito à vistaCREDITO1000VISTA1
Crédito parcelado na lojaCREDITO1000PARCELADO LOJA2
Crédito parcelado pela administradoraCREDITO1000PARCELADO ADM3
Crédito parcelado pelo bancoCREDITO1000PARCELADO BANCO6
Pré-autorizaçãoCREDITO1000PRE-AUTORIZACAO5
Crediário no créditoCREDITO1000CREDIARIO NO CREDITO7
Voucher alimentaçãoVOUCHER3000ALIMENTACAO2
Voucher refeiçãoVOUCHER3000REFEICAO1
Voucher automotivoVOUCHER3000AUTOMOTIVO3
Voucher culturaVOUCHER3000CULTURA4
Voucher pedágioVOUCHER3000PEDAGIO5
Voucher benefíciosVOUCHER3000BENEFICIOS6
Voucher autoVOUCHER3000AUTO7
Consulta de saldoVOUCHER3000CONSULTA DE SALDO8
Vale pedágioVOUCHER3000VALE PEDAGIO9

Exemplos de retorno

Abaixo, você encontra exemplos de retorno com sucesso e erro nas operações via intent. Em ambos os cenários, o conteúdo da URI e o campo response estão em formato Base64.

Retorno de sucesso

order://response?response=eyJjcmVhdGVkQXQiOiJKYW4gMzEsIDIwMjQgMTE6Mzc6MjYgQU0iLCJpZCI6IjFkYjU1NzdmLWZjZDAtNDllOC04Y2FjLTVlMjRhYWZiMjUxZiIsIml0ZW1zIjpbeyJkZXNjcmlwdGlvbiI6IiIsImRl
dGFpbHMiOiIiLCJpZCI6IjkzMzA5ODkyLWMyMGItNDUyYy1iYTZmLTY4Mjc5NmI0YTk2ZSIsIm5hbWUiOiJwcm9kdXRvIiwicXVhbnRpdHkiOjEsInJlZmVyZW5jZSI6IiIsInNrdSI6IjQ2ODIiLCJ1bml0T2ZNZWFzdXJlIjoidW5pZGFkZSIsInVuaXRQcmljZSI6OTI1fV0sIm5vdGVzIjoiIiwibnVtYmVyIjoiIiwicGFpZEFtb3VudCI6OTI1LCJwYXltZW50cyI6W3siYWNjZXNzS2V5IjoiclNBcU5QR3ZGUEpJIiwiYW1vdW50Ijo5MjUsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImF1dGhDb2RlIjoiMTEzNzMwIiwiYnJhbmQiOiIiLCJjaWVsb0NvZGUiOiI4NDcyNjIiLCJkZXNjcmlwdGlvbiI6IiIsImRpc2NvdW50ZWRBbW91bnQiOjAsImV4dGVybmFsSWQiOiI0OGZhNjNjOS05NWVlLTQ4M2UtOWU3Yi1jZTMyNjMzZjEyOWIiLCJpZCI6IjgwY2U1MjhjLTJjY2MtNDgwMC1iZGMxLTViNWRkZGU1OGZiMSIsImluc3RhbGxtZW50cyI6MCwibWFzayI6IioqKioqKioqKioqKjAwMDAiLCJtZXJjaGFudENvZGUiOiIwMDAwMDAwMDAwMDAwMDAzIiwicGF5bWVudEZpZWxkcyI6eyJpc0RvdWJsZUZvbnRQcmludEFsbG93ZWQiOiJmYWxzZSIsImJpbiI6IjAiLCJoYXNQYXNzd29yZCI6ImZhbHNlIiwicHJpbWFyeVByb2R1Y3RDb2RlIjoiNCIsImlzRXh0ZXJuYWxDYWxsIjoidHJ1ZSIsInByaW1hcnlQcm9kdWN0TmFtZSI6IkNSRURJVE8iLCJyZWNlaXB0UHJpbnRQZXJtaXNzaW9uIjoiMSIsImlzT25seUludGVncmF0aW9uQ2FuY2VsYWJsZSI6ImZhbHNlIiwidXBGcm9udEFtb3VudCI6IjAiLCJjcmVkaXRBZG1pblRheCI6IjAiLCJleHRlcm5hbENhbGxNZXJjaGFudENvZGUiOiIwMDAwMDAwMDAwMDAwMDAzIiwiZmlyc3RRdW90YURhdGUiOiIwIiwiaXNGaW5hbmNpYWxQcm9kdWN0IjoidHJ1ZSIsImhhc1ByaW50ZWRDbGllbnRSZWNlaXB0IjoiZmFsc2UiLCJoYXNTaWduYXR1cmUiOiJmYWxzZSIsImFwcGxpY2F0aW9uTmFtZSI6ImNvbS5hZHMubGlvLnVyaWFwcGNsaWVudCIsImhhc1dhcnJhbnR5IjoiZmFsc2UiLCJpbnRlcmVzdEFtb3VudCI6IjAiLCJjaGFuZ2VBbW91bnQiOiIwIiwic2VydmljZVRheCI6IjAiLCJjaXR5U3RhdGUiOiJCYXJ1ZXJpIC0gU1AiLCJoYXNTZW50UmVmZXJlbmNlIjoiZmFsc2UiLCJ2NDBDb2RlIjoiNCIsInNlY29uZGFyeVByb2R1Y3ROYW1lIjoiQSBWSVNUQSIsInBheW1lbnRUcmFuc2FjdGlvbklkIjoiNDhmYTYzYzktOTVlZS00ODNlLTllN2ItY2UzMjYzM2YxMjliIiwiYXZhaWFibGVCYWxhbmNlIjoiMCIsInBhbiI6IioqKioqKioqKioqKjAwMDAiLCJvcmlnaW5hbFRyYW5zYWN0aW9uSWQiOiIwIiwib3JpZ2luYWxUcmFuc2FjdGlvbkRhdGUiOiIzMS8wMS8yNCIsInNlY29uZGFyeVByb2R1Y3RDb2RlIjoiMjA0IiwiZG9jdW1lbnRUeXBlIjoiSiIsImhhc1NlbnRNZXJjaGFudENvZGUiOiJmYWxzZSIsInN0YXR1c0NvZGUiOiIxIiwibWVyY2hhbnRBZGRyZXNzIjoiQWxhbWVkYSBHcmFqYXUsIDIxOSIsIm1lcmNoYW50Q29kZSI6IjAwMDAwMDAwMDAwMDAwMDMiLCJwYXltZW50VHlwZUNvZGUiOiIxIiwiaGFzQ29ubmVjdGl2aXR5IjoidHJ1ZSIsInByb2R1Y3ROYW1lIjoiQ1JFRElUTyBBIFZJU1RBIC0gSSIsIm1lcmNoYW50TmFtZSI6IlBPU1RPIEFCQyIsImVudHJhbmNlTW9kZSI6IjY2MTAxMDEwNzA4MCIsImNhcmRDYXB0dXJlVHlwZSI6IjYiLCJmaXJzdFF1b3RhQW1vdW50IjoiMCIsInRvdGFsaXplckNvZGUiOiIwIiwicmVxdWVzdERhdGUiOiIxNzA2NzEwMzg0NDAyIiwiYXBwbGljYXRpb25JZCI6ImNpZWxvLmxhdW5jaGVyIiwiYm9hcmRpbmdUYXgiOiIwIiwibnVtYmVyT2ZRdW90YXMiOiIwIiwiZG9jdW1lbnQiOiIwMDAwMDAwMDAwMDAwMCJ9LCJwcmltYXJ5Q29kZSI6IjQiLCJyZXF1ZXN0RGF0ZSI6IjE3MDY3MTAzODQ0MDIiLCJzZWNvbmRhcnlDb2RlIjoiMjA0IiwidGVybWluYWwiOiI2MjAwMDExMiJ9XSwicGVuZGluZ0Ftb3VudCI6MCwicHJpY2UiOjkyNSwicmVmZXJlbmNlIjoiUmVmZXJlbmNlIiwic3RhdHVzIjoiRU5URVJFRCIsInR5cGUiOiJQQVlNRU5UIiwidXBkYXRlZEF0IjoiSmFuIDMxLCAyMDI0IDExOjM3OjMxIEFNIn0=&responsecode=0

Retorno de erro

Se houver algum erro no pagamento, seja ele cancelado por usuário ou por saldo insuficiente, o campo response retornará um Base64 com o motivo do erro.

order://response?response=eyJjb2RlIjoxLCJyZWFzb24iOiJDQU5DRUxBRE8gUEVMTyBVU1XDgVJJTyJ9&responsecode=0

Após a decodificação da string Base64, o conteúdo é convertido em um objeto JSON estruturado, que facilita a interpretação do erro:

{
   "code":1,
   "reason":"CANCELADO PELO USUÁRIO"
}


Did this page help you?