Guia de integração
Antes de transacionar com Apple Pay na Malga, você precisará gerar alguns certificados disponibilizados pela Apple que permitirão que a Malga possa processar seus pagamentos, sendo eles:
Configurando o Apple Pay na Malga e no seu provedor
O certificado de processamento de pagamento deverá ser enviado no suporte do time Malga, enquanto que o certificado de identidade de comerciante deverá ser enviado para o seu provedor, também via suporte. Com os dois configurados adequadamente na Malga e no provedor, você já poderá enviar transações Apple Pay via Malga, configurando seu fluxo inteligente via Dashboard da maneira desejada.
Criando uma cobrança Apple Pay
-
Para criar uma transação com Apple Pay basta o cliente informar o meio de pagamento apple_pay na criação de uma cobrança e os tokens provenientes da wallet;
-
Uma cobrança é feita no cartão através do provedor configurado no fluxo inteligente;
-
Após confirmação do pagamento, o provedor enviará uma notificação para a Malga informando que o pagamento foi realizado;
-
Posteriormente o cliente recebedor será notificado de que o pagamento foi efetuado e a cobrança finalizada com sucesso.
Realize uma cobrança a partir dos dados do cartão de crédito sem tokenizar usando o Serviço de Charges.
Requisição para criar cobrança com Apple Pay
Requisição para criar cobrança com Apple Pay
Os dados que são enviados dentro da paymentData
são disponibilizados pelos SDK’s de carteira digital, podendo ser, na web, o Payment Request API ou o Apple Pay JS API e, no mobile, com o PassKit.
Quando criada na Malga, a cobrança do tipo Apple Pay credit
:
-
É registrada com status
authorized
,pre_authorized
oufailed
; -
É possível realizar o estorno total ou parcial da cobrança;
-
É possível realizar a pré-autorização e captura da cobrança.
Notificação de alteração de status
objeto | evento | descrição |
---|---|---|
transaction | pending | Evento enviado quando a cobrança é criada na Malga |
transaction | pre_authorized | Evento enviado quando é pre-autorizado o pagamento, com reserva de saldo |
transaction | authorized | Evento enviado quando é autorizado o pagamento |
transaction | failed | Evento enviado quando a cobrança é negada pela instituição financeira antes de ter sido autorizada, sem estorno financeiro |
transaction | canceled | Evento enviado quando a cobrança é cancelada antes ter sido capturada, não produzindo um estorno financeiro |
transaction | voided | Evento enviado quando a cobrança é cancelada após ter sido autorizada, produzindo um estorno financeiro |
transaction | charged_back | Evento enviado quando a cobrança é contestada por fraude |
Pré-autorização e captura
No fluxo de pagamentos por cartão é possível realizar uma autorização que reserva o saldo e fica pendente de uma captura posterior, ou você pode já autorizar o pagamento de maneira definitiva. A vantagem de estornar uma transação que ainda não tenha sido “capturada” é que o estorno é feito imediatamente na fatura do comprador, em alguns casos quando você tenta estornar uma transação já capturada pode levar até 30 dias para constar o estorno na fatura, por isso muitos lojistas optam por não capturar automaticamente e fazer isso manualmente depois.
O flag de capture
serve para indicar se a transação deve ou não ser capturada.
Na nossa API caso você envie o atributo capture: false
iremos retornar a transação autorizada (saldo reservado no cartão) com status pre_authorized
sendo necessário que você faça um request no Serviço de Captura para forçar manualmente a captura da transação e liberar para liquidação na conta do provedor. Se a transação não for capturada em 7 dias o adquirente pode desfazer automaticamente a transação.
Caso você envie o atributo capture: true
iremos retornar a transação autorizada com status authorized
, não sendo necessário mais nenhuma ação, a transação já fica liberada para liquidação no adquirente e não precisa chamar o Serviço de Captura.
Em nosso dashboard, também é possível capturar.
Estorno Total ou Parcial
No fluxo de pagamento por Apple Pay, é possível realizar um estorno no valor total ou parcial da cobrança. No caso de estorno parcial, o lojista opta por realizar um estorno com valor inferior ao valor da venda, sendo feito o reembolso do valor parcial estornado para o comprador, permanecendo a cobrança como autorizada para liquidação do valor restante para o lojista.
Para realizar um estorno parcial, basta enviar na requisição de void um amount
inferior ao valor original da transação, sendo este amount
do estorno o valor a ser estornado. Uma vez aprovado a solicitação de estorno parcial junto ao emissor do cartão, o amount
da transação é então atualizado para o valor residual da transação após o estorno (valor da cobrança - valor estornado),
O atributo originalAmount
do objeto charge
se mantém como o valor
originalmente autorizado na transação, é o valor inicial da transação quando
aprovada. Já o atributo amount
do objeto charge
é alterado a cada
solicitação de estorno parcial, mantendo o saldo residual a receber pelo
lojista.
Importante ressaltar que podem ser realizadas diversas requisições de estorno parcial para uma mesma transação, sendo que a cada requisição nosso sistema verifica se o valor a ser estornado, (o valor enviado na requisição de void
), é menor ou igual ao valor residual da transação, não sendo possível estornar um valor superior. O histórico de requisições de estorno pode ser encontrado na listagem de transactionRequests
do objeto charge
.
O status da transação permanecerá como authorized
ou pre_authorized
enquanto restar valor a ser pago ao lojista, sendo alterado para voided
somente quando o estorno zera todo o valor a receber do lojista.
Embora raro, um reembolso pode falhar após você ter recebido um webhook de REEMBOLSO com success: true. Um webhook de REEMBOLSO bem-sucedido significa que nossas validações foram bem-sucedidas e enviamos a solicitação de reembolso para o esquema do cartão. No entanto, o esquema do cartão ainda pode rejeitar o reembolso. Isso pode acontecer mesmo alguns dias após você enviar a solicitação de reembolso.
Na maioria das vezes, a Adyen pode corrigir o problema, para que o comprador eventualmente receba os fundos. Às vezes, no entanto, você precisa tomar medidas por conta própria. Para saber por que um reembolso pode falhar e o que, se necessário, você precisa fazer em cada caso, consulte Reembolsos falhados.
Tratando erros na captura e estorno
As modificações feitas em uma cobrança para fins de estorno total, estorno parcial, ou captura podem retornar com erro no provedor. A fim de garantir o correto tratamento dos casos de exceção retornado pelos provedores nestas operações, nossa API, ao receber erro na captura/estorno, retorna HTTP Status Code 201, sendo criado um novo transactionRequest com o status failed
, porém não é modificado o status original da transação. É recomendado que você verifique o status do objeto charge retornado, ou o status do primeiro objeto da lista de transactionRequests para se certificar que a operação foi realizada com sucesso.