1. Link
  2. APIs de Conciliação

Link

APIs de Conciliação

Verificação do Status da Venda via API

Embora o Sistema Bass Pago envie automaticamente um WebHook (se configurado no Link de Pagamento) assim que o processo de pagamento for finalizado, com status APPROVED ou REJECTED, é possível verificar o status e os detalhes da venda a qualquer momento por meio de uma solicitação à seguinte API:

URL
https://serviceappi.com/basspago-sandbox/api/public/payments/obtain-pagamento-detail
HEADERS
Content-Type application/json
BODY - raw
        {
    "token" : "ZPLKZF1GGUW3DA1V80MCZUYL69BTZ4QZIUWFSPXK0QVS59QX0O",
    "key" : "Z7di23yJXbhmPc9dAClSbhYplqk57vT9",
    "referenceNumber" : "PCHIQ8TY924"
}

      

Campos da consulta:

  • token: Identificador exclusivo do Link de pagamento.
  • key: Chave do Link de pagamento.
  • referenceNumber: Um identificador exclusivo gerado pelo Sistema Bass Pago para cada venda. É enviado no webhook.

Campos de Resposta Detalhados:

  • referenceNumber: Um identificador exclusivo gerado pelo Sistema Bass Pago.
  • externalId: Identificador do Link de Pagamento dado pelo cliente.
  • externalLinkName: Nome do Link de Pagamento.
  • token: Identificador exclusivo do Link de pagamento.
  • status: Status atual do pagamento. (PENDING, APPROVED, REJECTED)
  • createdAt: Data de criação da Venda.
  • updatedAt: Data de atualização da Venda.
  • amount: Valor a ser pago de acordo com o tipo de operação.
  • keyCurrencyCode: Código da moeda.
  • payment: Objeto contendo detalhes do pagamento. Se o pagamento não foi efetuado (Status diferente de APPROVED), este objeto será retornado como NULL.
  • products: Lista de produtos incluídos na venda.

Esses campos fornecem uma visão abrangente dos detalhes associados a um Checkout, permitindo compreender o estado do pagamento, os valores envolvidos e outros dados relevantes para uma gestão eficiente das transações.

Objeto payment:

  • paymentType: Tipo de pagamento efetuado(PIX, BOLETO).
  • amountPayed: Valor pago pelo usuário.
  • amountCredited: Valor creditado na conta da empresa.
  • discountByPaymentType: Desconto aplicado pelo tipo de pagamento.
  • discountByPaymentTypeType: Tipo de Desconto aplicado pelo tipo de pagamento(LINEAR, PERCENT).
  • generalDiscount: Desconto geral sobre o valor da venda.
  • generalDiscountType: Tipo de Desconto geral aplicado(LINEAR, PERCENT).
  • dataPayment: Data em que o pagamento foi realizado.
  • pagadorNome: Nome do pagador.
  • pagadorInscricaoNacional: CPF/CNPJ do pagador.
  • pagadorCep: CEP do pagador.
  • pagadorEndereco: Endereço do pagador.
  • pagadorBairro: Bairro do pagador.
  • pagadorCidade: Cidade do pagador.
  • pagadorUf: UF do pagador.
  • pagadorTelefone: Telefone do pagador.
  • pagadorMail: Mail do pagador.

Objeto products:

  • productName: Nome do producto.
  • productExternalId: Identificador externo do produto.
  • productSaleQty: Quantidade de produto vendido.
  • productSalePrice: Preço de venda do produto.
  • productFinalSalePrice: Preço final de venda do Produto, descontos aplicados se configurados.
  • totalPayedByProduct: Total pagado por el producto.
  • discountValue: Valor de desconto.
  • discountType: Tipo de desconto(LINEAR, PERCENT).
  • quantityFromWhichToApplyDiscount: Valor a partir do qual o desconto é aplicado.
RESPONSE
        {
	{
    "referenceNumber": "PCHIQ8TY924",
    "externalId": "PLKOKATWWZG",
    "externalLinkName": "Loja Tenis Online",
    "token": "ZPLKZF1GGUW3DA1V80MCZUYL69BTZ4QZIUWFSPXK0QVS59QX0O",
    "status": "APPROVED",
    "createdAt": "2024-04-15T16:40:51.652Z",
    "updatedAt": "2024-04-15T16:43:02.123Z",
    "keyCurrencyCode": "BRL",
    "amount": 125.0,
    "payment": {
        "paymentType": "PIX",
        "amountPayed": 125.0,
        "amountCredited": 124.0,
        "discountByPaymentType": 0.0,
        "discountByPaymentTypeType": "LINEAR",
        "generalDiscount": 0.0,
        "generalDiscountType": "PERCENT",
        "dataPayment": "2024-04-15T16:43:02Z",
        "pagadorNome": "Luis Alvarez",
        "pagadorInscricaoNacional": "60292852037",
        "pagadorCep": "98300000",
        "pagadorEndereco": "Ivo Cecato",
        "pagadorBairro": "Solar",
        "pagadorCidade": "Palmeira das Missões",
        "pagadorUf": "RS",
        "pagadorTelefone": "55991611035",
        "pagadorMail": "[email protected]",
        "createdByName": null
    },
    "products": [
        {
            "productName": "Tenis Esportivo Academia",
            "productExternalId": "T000001",
            "productSaleQty": 1,
            "productSalePrice": 125.0,
            "productFinalSalePrice": 125.0,
            "totalPayedByProduct": 125.0,
            "discountValue": null,
            "discountType": null,
            "quantityFromWhichToApplyDiscount": null
        }
    ]
}

      
ERROR
        {
	"message": "notValidKey"
}

      

Esse objeto "payment" oferece informações cruciais sobre os detalhes financeiros do Checkout efetuado, incluindo o valor, tipo de Checkout, descontos, juros, multas e informações do pagador, permitindo uma visão abrangente e organizada do processo de transação.

Consultar lista de Vendas

É possível conciliar Checkouts recebidos de uma Chave.

URL
https://serviceappi.com/basspago-sandbox/api/public/payments/obtain-paycheckouts-api-list
HEADERS
Content-Type application/json
Encrypted-Security-Code 585709243631817c3125e41747a96782e06b1dedd5eb6d7cfc430189e5384b888531dbda
BODY - raw
        {
	"key": "BYJ0ZzDl9NtM59jaGPJVLVCEb5qR5Wp7"
}

      

O header "Encrypted-Security-Code", é uma assinatura HMAC gerada através de uma cadeia criada com a chave publica, deixando essa cadeia pronta para ser assinada com o SHA-512 HMAC, conforme o seguinte processo:

        key=CHAVE_PUBLICA

      

Um exemplo seria:

        key=xm9RSLfh3QW4PvFkIaDItbdjkdzyo2kZ

      

Uma vez assinado com SHA-512 HMAC permanece com este formato:

        585709243631817c3125e41747a96782e06b1dedd5eb6d7cfc430189e5384b888531dbda

      

A resposta é uma lista com paginação. Os campos do objeto são:

  • referenceNumber: Um identificador exclusivo gerado pelo Sistema Bass Pago.
  • externalId: Número de referência ou identificador exclusivo da transação. Este número não pode ser repetido para a mesma chave.
  • externalProductId*: Número de identificação do produto no sistema externo.
  • status: Status atual do Checkout. (PENDING, APPROVED, REJECTED)
  • type: Tipo de Checkout efetuado.
RESPONSE
        [
    {
        "referenceNumber": "PCHH051EX9Z",
        "externalId": "ABCD00002",
        "externalProductId": "P00001",
        "status": "APPROVED",
        "type": "PIX"
    },
    {
        "referenceNumber": "PCH64YBCN5Z",
        "externalId": "ABCD00001",
        "externalProductId": "P00001",
        "status": "APPROVED",
        "type": "PIX"
    }
]

      
INFO

No header da resposta, tem o campo X-Total-Count, que retorna o valor total dos elementos na consulta. O que permite percorrer a paginação, até o último elemento

Aplicando paginação e filtros à consulta

Quando a quantidade dos Checkouts em uma consulta é muito grande, o ideal é paginar a resposta. Isso evita sobrecarga de memória e também resposta lenta. O número máximo de elementos por página no sistema é 50 (o padrão é 10 elementos).

Paginar a resposta:

URL
https://serviceappi.com/basspago-sandbox/api/public/payments/obtain-paycheckouts-api-list?page=0&size=10

Campos do paginado:

  • page: Aponte para a página onde a solicitação está sendo feita. A primeira página está sempre no valor 0.
  • size: Número de elementos que a consulta retornará.

Filtros:

É possível aplicar filtros à consulta, bem como ordená-la

URL
https://serviceappi.com/basspago-sandbox/api/public/payments/obtain-pagamentos-list?page=0&size=10&sort=createdAt,asc&status.in=APPROVED&createdAt.greaterThanOrEqual=2024-03-07T00:00:00.000Z&createdAt.lessThanOrEqual=2024-03-11T23:59:59.999Z

Ordenar:

  • sort: É possível ordenar por campo, Crescente (Asc) ou Decrescente (Desc)

Filtrar:

  • createdAt: Data de criação do Checkout
  • updatedAt: Data da última atualização de Checkout
  • status: Status do Checkout(PENDING, APPROVED, REJECTED)
INFO

Para mais opções de gerenciamento de filtros, recomendamos consultar a documentação a seguir: https://www.jhipster.tech/entities-filtering/