Skip to main content

· 3 min read
Marcel Nicolay

Major release to improve overall application's performance.

A partir de agora temos uma aplicação super otimizada para processar 30x o volume processado atualmente. Esta performance foi aferida através de teste de carga com 1000 usuários simultâneos, atingindo picos de 200 RPS e 5000 RPM. Entre os ajustes implementados para melhoria de performance podemos destacar: Separação dos serviços de processamento assincrono de notificações de status do serviço de processamento das requisições, permitindo escalar de maneira independente processamento sincrono de assincrono.

  • Atualização do middleware de processamento das requisições nos serviços do core transacional, 3x mais performático;
  • Implementação de divisão de carga nas operações de escrita e leitura no banco nos serviços do core transacional, nos permite escalar leitura sem sobrecarregar escrita;
  • Otimização nos healthchecks e criação de novos alarmes para monitorar saúde geral dos serviços;

Adicionamos também suporte a filtros no serviço de listagem de charges, através do qual os clientes podem buscar facilmente transações, combinando os seguintes filtros, todos opcionais:

limit: quantidade de registros por página 1-100
page: numero da pagina ativa
sort: ordenação DESC/ASC
merchantId: id do merchant processado na cobrança
id: id da cobrança
originalAmount: valor em centavos da cobrança
status: pending, pre_authorized, authorized, voided, canceled, charged_back
paymentType: credit, pix ou boleto
orderId: id da cobrança gerado pelo cliente

Ex de requisição com filtros:

GET /v1/charges?limit=10&page=1&sort=DESC&merchantId=${merchantId}&id=${chargeId}&originalAmount=1000&status=pre_authorized&paymentType=credit&orderId=32432432

Versão 25-03-202

Features
  1. PE-597: Padronizando o contrato da listagem para ter os mesmos campos da rota /v1/charges/${id} e inclusão de novos filtros
  2. PE-814: Inclusão dos dados do customer nas cobranças PIX pagarme, para permitir consulta dos dados no lado do provedor
  3. PE-865: Adicionar o atributo cardHolder name no serviço de detalhe de card por id GET /v1/cards/${cardId}
Bugs
  1. PE-583: Tratando retorno de erro 500 ao cancelar uma transação falhada
  2. PE-751: Validação do client_id responsável pelo merchant_id na criação do charge
  3. Corrigir nome do país em lowercase para fraudanalysis no adapter da pagarme
  4. Salvar corretamente campo description nas cobranças pix e boleto
  5. Recuperar detalhes de pix e boleto no get de charges quando cobrança aprovada não retornava dados
Technical Debts
  1. PE-838 Implementação conexão master/slave no typeorm transactions
  2. PE-822 Separação dos workers de consumo das filas no transactions e nos adapters
  3. PE-854: Remover os pings para outros serviços dos healthchecks das aplicações
  4. PE-826: Implementar Fastify no application server do serviço de cards, transactions e merchants (boost de performance)
  5. PE-866: Configurar Keepalive timeout no servidor para evitar fechar conexão com ALB
  6. Tratando dados sensíveis nos logs

· One min read
Marcel Nicolay

Versão 10-02-2022

Features
  1. Adicionar atributo boleto no retorno do transactionRequest, assim como request pix
  2. Adicionar atributos merchantId e originalAmount no detalhe do charge
Bug
  1. Transações do tipo pix e boleto não estão salvando transaction-id e provider-type no transaction request, corrigindo para retornar esses atributos preenchidos na criação;
  2. Transações do tipo pix não estão salvando idempotency-key, corrigindo para permitir tratamento adequado de idempotência
Technical debts
  1. Separando listener de atualização de boletos bs2
  2. Mascarando dados sensíveis de cartão no log (transactions, pagarme, cielo)

· One min read
Marcel Nicolay

Inclusão de novo provedor a lista integrações, suporte a pagamentos via cartão de crédito pelo mercado pago.

Versão 17-01-2022

Features
  1. Suporte a pagamentos por cartão de crédito através do Mercado Pago;
  2. Suporte a tradução das mensagens de erro através do header Accept-Language, podendo receber os valores pt-BR ou en-US, sendo as descrições de mensagens de erro traduzidas para o idioma em questão;

· 4 min read
Marcel Nicolay

Novo release com melhorias e correções no fluxo de tokenização de cartões. Atualmente nossa API realiza uma tentativa de validação dos dados do cartão, porém os bancos podem retornar falha na validação zerodollar mesmo quando o cartão é válido, ocasionando problemas de falso negativo, onde o cartão é retornado como inválido pela instituição financeira, porém os dados estão corretos. Para contornar essa limitação dos bancos, estamos melhorando nosso fluxo de tokenização para ter mais resiliência.

Foi implementado também uma mudança no fluxo de captura e estorno de transações para garantir o correto tratamento dos casos de exceção retornado pelos provedores nestas operações. A partir desse release, ao recebermos erro na captura/estorno, a requisição passa a retornar como HTTP Status Code 201, sendo criado um transactionRequest com o status failed, porém não modifica o status original da transação. É recomendado que o cliente 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. Até então nossa API retornava um erro 500 não descritivo.

Melhorias no fluxo de tokenização:

  1. O atributo cvvchecked identifica se o cartão teve ou não seus dados validados na tokenização. Algumas bandeiras como AMEX não permitem validação zero dollar, nesse caso o cartão passa a ser criado como status=active e cvvchecked=false.
  2. O status active continua identificando se o cartão está disponível para uso no fluxo transaciona, porém não é garantia de que um cartão status=active retornar sucesso na cobrança, é possível retorno de falha na cobrança por parte dos bancos.
  3. O status failed continua identificando um cartão que NÃO pode ser usado no fluxo transacional, é um token já identificado como inválido e não poderá ser utilizado.
  4. O status pending passa a identificar os casos de impossibilidade de validação dos dados cartão na sua criação. Enquanto o status estiver pending o cartão pode ser usado para criar transação durante um intervalo de 1hora, garantindo maior resiliência do transacional. Um cartão status=pending ao ser utilizado para uma cobrança, tem seu status atualizado para active se os dados do cartão forem válidos, e atualizado para failed se os dados do cartão forem inválidos. Após 1 hora um cartão criado como pending tem seu token expirado e é atualizado automaticamente para failed ficando invalidado para uso futuro.
  5. Suporte ao envio de CVV no caso de cobrança com cartão tokenizado. É recomendável que sempre que o comprador esteja presente no momento da compra, seja coletado e enviado o código de segurança do cartão na cobrança. Basta incluir o atributo cardCvv no paymentSource.

Versão 23-12-2021

Features
  1. Suporte a validação de dados de cartão para bandeira ELO
  2. Cartões de bandeiras que não permitem validação passam a ser criados como status=active cvvchecked=false, evitando ficarem com status=pending caso não sejam utilizados
  3. Atualizar status do cartão criado como pending sempre ao final do fluxo transacional, mudando para active ou failed.
  4. Cartões com status=pending quando criados e não utilizados dentro de 1h devem ter seu status atualizado para failed
  5. Criação de domínio secundário em produção api.plugpagamentos.com.br como fallback ao domínio principal api.plugpagamentos.com.
  6. Suporte ao envio de CVV no caso de cobrança com cartão tokenizado. Deve incluir o atributo cardCvv no paymentSource sempre que for possível coletar essa informação.
Bug Fixes
  1. Cartões bandeira visa/master que teve falha na validação zero auth, e não é usado em cobrança, ficava travado com status pending, dando erro no fluxo transacional quando usado depois de 1h da criação.
  2. Cartões bandeira AMEX, que não permite validação zero auth, e não é usado em cobrança, ficava com status pending, dando erro no fluxo transacional quando usado depois de 1h da criação
  3. Cartões criados como pending, por falha na validação, ficam como pending, dando erro no fluxo transacional
  4. Cartões criado como pending (seja por erro no zero auth, ou por ser de bandeira que não permite validação), quando é usado para cobrança dentro de 1h tem seu status atualizado somente no caso de sucesso na cobrança, caso a cobrança falhe por qualquer motivo o cartão não tem seu status atualizado, permanecendo com pending para sempre, gerando o erro 404 no charge
  5. O transacional quando não consegue processar uma cobrança por cartão estar no status pending, retorna um erro 404 genérico,
  6. Criar fingerprint de cartão para fluxo de cobrança oneshot, hoje só é criado o fingerprint para cartão tokenizado
  7. Envio do parâmetro statement-descriptor para os provedores
  8. Autorizações de captura e estorno negadas devem retornar erro e não alterar o estado do charge

· One min read
Marcel Nicolay

Incluimos suporte a cobrança por cartão de crédito pela REDE e pix pelo BS2. Melhoramos também nosso roteamento para permitir cadastrar provedores com suporte a diferentes meios de pagamento no mesmo merchant id, ficando sob responsabilidade do nosso roteamento identificar os provedores suportados para cada meio de cobrança, não sendo necessário mais a criação de vários merchants para suportar cobranças por credit, pix e boleto.

Versão 29-11-2021

Features
  1. Suporte a cobrança paymentSource=customer com débito no cartão associado ao customer;
  2. Novas regras para roteamento entre provedores com suporte à diferentes metodos de cobrança;
  3. Suporte a pagamentos por pix através do BS2;
  4. Suporte a pagamentos por cartão de crédito através da Rede;
Bug Fixes
  1. Criação de transação cartão amex quando cliente não suporta validação zero-auth;
  2. Autorizaçãoes de captura e estorno negadas devem retornar erro e não realizar a operação;
  3. Sonda para garantir estorno das requisições perdidas por timeout ou internal_error na comunicação com provedor;
  4. Retornar bad request quando merchant id inválido ou não existe nenhum provider, e não erro 500;

· 2 min read
Marcel Nicolay

Novo release do Plug Checkout, um drop-in (componente) de interface para web e mobile altamente customizável e extensível. Através do Checkout SDK você tem disponível para integração uma interface pronta para realizar cobranças por cartão de crédito, pix e boleto sem ter que desenvolver uma linha de código, basta plugar no seu site ou aplicativo e usar.

Adicionamos também suporte a integração com antifraude dos provedores através de um contrato unificado.

Versão 08-11-2021

Features
  1. Suporte a atributos de antifraude dos adquirentes com novo contrato atributo fraudAnalysis (pagarme / cielo)
  2. Permitir criação de customer sem erro conflito (409) de regra de documento/email quando dados enviados embedados do request de cobrança (pix/boleto)
  3. Novo release do Plug Checkout SDK com suporte a PIX, boleto e cartão de crédito (javascript, react, vue, angular)
Bug Fixes
  1. Delay no processamento das notificações de pix/boleto pago da pagarme
  2. Correção da regra de retentativa para não retentar transações negadas por motivos de dados inválidos
  3. Serviço de merchants deve retornar erro 404 no get by id, e get provider by id, quando id inválido
  4. Correção do adapter da cielo retornando estorno com sucesso quando cancelamento não concluído com sucesso

· 2 min read
Marcel Nicolay

Versão 2021-10-20

Features
  1. Suporte pagamentos por PIX através da Pagarme;
  2. Criação de fingerprint de cartão para evitar validação de dados de cartão já validados previamente
  3. Melhoria na performance do tratamento dos cenários de pagamento e notificacões assíncronas recebidas dos provedores
  4. Estorno automático de tentativas de cobrança falhadas por timeout na comunicação com o provedor, uso de sonda async para validar status e estornar caso tenha sido autorizada
  5. Melhoria nos fluxos de estorno e captura para garantir tratamento do idempotency-key nos requests
Bug Fixes
  1. Correção dos dados de retorno na autorização de cobrança em Sandbox (boleto/pix)
  2. Correção do mapeamento do parâmetro de message, declined_code e category nas transação negadas
  3. Fallback na validação de cartões quando emissor retorna autorização negada no zeroauth mas o cartão é válido, a partir de agora o cartão passa a retornar como status pending, podendo ser usado na cobrança, sendo seu status alterado para failed ou active dado o retorno da cobrança.
  4. Validação em sandbox do cvv enviado em cobrança oneshot, agora passamos a validar o final do cvv também no fluxo oneshot, retornando cobrança negada em sandbox quando cvv não termina em zero.
  5. Retornando erro 404 quando tentativa de estorno/captura de transação não existente
  6. Ordenação dos requests por ordem decrescente na lista de transactionRequests do objeto charge.

· One min read
Marcel Nicolay

Versão 2021-10-20

Features
  1. Notificação de pix e boleto pagos em realtime através dos webhooks da plug;
  2. Notificação de eventos de charged_back recebidos dos providers pagseguro e pagarme através de webhooks;
  3. Suporte a pagamento por boleto em sandbox;
  4. Suporte a pagamento por boleto pelo provider pagarme;
  5. Serviço para permitir teste de pix/boleto pago e notificação de charged_back em sandbox (POST /v1/charges/{chargeId});
  6. Suporte a criação de customers com documento e endereço de outros paises;
  7. Suporte a createOrUpdate de customer, evitando conflito de documento/email já existentes (?force=true);
Bug Fixes
  1. Correção na funcionalidade de criação de transação com idempotencyKey, evitando duplicidade nas cobranças por cartão de crédito quando enviado header X-Idempotency-Key

· One min read
Marcel Nicolay

O release 2021-07-28 contém suporte a transação PIX com customer integrado e cadastro de id de pedido.

Release 2021-07-28

Features
  1. Features adicionadas na versão 2021-07-28 da API de pagamento da Plug:
  2. Criação de transação com dados de customer integrado
  3. Criação de transação com orderId, id de pedido no lojista

· One min read
Marcel Nicolay

Seja bem vindo à nossa seção de release notes.

Aqui você encontrará uma lista com todas as atualizações, melhorias, correções e lançamentos feitos nos produtos da Plug.

Temos também um canal de comunicação no Discord da Plug, lá podemos interagir mais de perto, você pode tirar dúvidas e falar com nosso time de desenvolvedores especialistas em pagamentos.