Autorização

Confira os eventos relativos à autorização.

beta

Contexto e nome do evento

Nos eventos de autorização, o campo context sempre informará “Authorization”, enquanto o campo name poderá variar de acordo com a transação, conforme a tabela a seguir:

Nome do evento (name)Descrição
TRANSACTION_WAS_PROCESSEDA transação foi processada. Ela pode ter sido aprovada ou não.
TRANSACTION_WAS_REVERTEDA transação foi revertida parcial ou totalmente.
TRANSACTION_WAS_EXPIREDO tempo de reserva de saldo da transação expirou e a transação foi revertida. Esse fluxo ocorre em transações pré-pagas.

EntityId

O campo entityId é o identificador da entidade emissora do evento e seu valor depende do contexto de sua emissão.

No contexto de autorização, o entityId é o authorizationTransactionId (identificador único da transação).

Exemplos de eventos

{
  "entityId": "d4d61574-8c8a-4ed9-b797-b2a17f92e3ef",
  "companyKey": "COMPANY_KEY",
  "name": "TRANSACTION_WAS_PROCESSED",
  "timestamp": "2022-04-25T12:14:43.5839658Z",
  "correlationId": "f5303972-4559-4f37-ad98-7972b104f1dd",
  "metadata": null,
  "data": {
    "account": {
      "branch": "0001",
      "number": "123456",
      "bank": {
        "ispb": "13140088",
        "code": "332",
        "name": "Acesso Soluções De Pagamento S.A."
      },
      "type": null,
      "status": null,
      "pockets": null,
      "label": null,
      "balance": null
    },
    "amount": {
      "value": 9.96,
      "currency": "BRL"
    },
    "withoutFeeAmount": {
      "value": 9.96,
      "currency": "BRL"
    },
    "iofAmount": null,
    "markupAmount": null,
    "withdrawalFeeAmount": null,
    "fees": null,
    "deniedRules": [
      
    ],
    "status": "SUCCESS",
    "transactionTimeStamp": "2022-04-25T09:14:39",
    "channel": {
      "settlement": {
        "value": 2.12,
        "currency": "USD"
      },
      "localAmount": {
        "value": 9.96,
        "currency": "BRL"
      },
      "entryMode": {
        "code": "07",
        "description": "PAN auto-entry via contactless M/Chip",
        "cardPresent": true
      },
      "authorizationCode": "LBJ5F3",
      "transactionType": {
        "code": "00",
        "description": "Purchase"
      },
      "wallet": {
        "code": "0",
        "name": "Unknown"
      },
      "retrievalReferenceNumber": "429866500009",
      "merchant": {
        "mcc": "5912",
        "mcg": "Care",
        "city": "MANAUS",
        "stateOrCountryCode": "BRA",
        "state": "",
        "name": "MERCADO",
        "zipCode": "",
        "terminalId": "",
        "acquirerCode": ""
      },
      "numberOfInstallments": 1,
      "authorizationId": 56161250,
      "name": "CARD_NETWORK"
    },
    "authorizationTransactionId": "d4d61574-8c8a-4ed9-b797-b2a17f92e3ef",
    "card": {
      "proxy": "0000000000000000000",
      "alias": "Card Physic Pos",
      "function": "Pos",
      "type": "Physical"
    }
  },
  "context": "Authorization",
  "idempotencyKey": "f5303972-4559-4f37-ad98-7972b104f1dd"
}
{
  "entityId": "8c25e204-5c92-4cc2-8a9f-f7b4a2ea1a40",
  "companyKey": "COMPANY_KEY",
  "name": "TRANSACTION_WAS_REVERTED",
  "timestamp": "2022-04-25T12:07:57.1779332Z",
  "correlationId": "23247612-9b04-4dd0-8764-31ed27ab5e40",
  "metadata": null,
  "data": {
    "amount": {
      "value": 7.93,
      "currency": "BRL"
    },
    "withoutFeeAmount": {
      "value": 7.93,
      "currency": "BRL"
    },
    "iofAmount": null,
    "markupAmount": null,
    "withdrawalFeeAmount": null,
    "dollarExchangeRate": null,
    "reversalReason": "PosRequest",
    "channel": {
      "settlement": {
        "value": 1.69,
        "currency": "USD"
      },
      "localAmount": {
        "value": 7.93,
        "currency": "BRL"
      },
      "name": "CARD_NETWORK"
    },
    "authorizationTransactionId": "8c25e204-5c92-4cc2-8a9f-f7b4a2ea1a40",
    "card": {
      "proxy": "0000000000000000000",
      "alias": "Alias Name",
      "function": "Pre",
      "type": null
    }
  },
  "context": "Authorization",
  "idempotencyKey": "23247612-9b04-4dd0-8764-31ed27ab5e40"
}
{
  "entityId": "a1349dde-817a-4913-91d0-84fa2d787755",
  "companyKey": "COMPANY_KEY",
  "name": "TRANSACTION_WAS_EXPIRED",
  "timestamp": "2022-04-25T12:00:02.2180183Z",
  "correlationId": "9b76feea-98a0-4001-b2bf-ab83ae57adce",
  "metadata": null,
  "data": {
    "authorizationTransactionId": "a1349dde-817a-4913-91d0-84fa2d787755",
    "card": {
      "proxy": "0000000000000000000",
      "alias": "0921",
      "function": "Pre",
      "type": null
    }
  },
  "context": "Authorization",
  "idempotencyKey": "9b76feea-98a0-4001-b2bf-ab83ae57adce"
}

🚧

Importante

Para conhecer a estrutura básica dos eventos com os campos que chegarão à sua API, consulte nossa documentação específica de Eventos.

Objeto data nos eventos de autorização

O objeto data traz detalhes específicos do evento transmitido. No caso de eventos de autorização, esse objeto poderá conter os seguintes campos:

  • account: os dados da conta do pagador;
    • label: nome dado à conta no momento de sua configuração;
    • branch: número da agência;
    • bank: objeto contendo o ISPB, o código e o nome do banco a qual a conta pertence;
    • number: número da conta;
  • amount: objeto contendo o valor total da transação e a moeda utilizada;
  • withoutFeeAmount: objeto contendo o valor da transação sem taxas e a moeda utilizada;
  • iofAmount: valor calculado do IOF da transação;
  • markupAmount: valor calculado do markup da transação;
  • withdrawalFeeAmount: valor da tarifa de saque (somente para transações de saque);
  • fees: taxas aplicadas na transação;
    • markup: o percentual do markup;
    • iof: o percentual do IOF;
    • dollarExchangeRate: objeto contendo a cotação atual do dólar e a moeda em que ele é cotado;
  • deniedRules: lista dos motivos pelos quais a transação foi negada. Confira a lista completa na sessão, Denied rules, logo abaixo;
  • status: status da transação, o qual pode ser: “SUCCESS” ou “DENIED”;
  • transactionTimeStamp: a data e a hora em que ocorreu a transação;
  • channel: canal por onde passam as informações recebidas da rede de cartões;
    • numberOfInstallments: quantidade de parcelas da transação;
    • transactionType: tipo da transação de acordo com a ISO 8583;
      • code: código da transação, o qual pode ser: “00”, “01”, ou “20”;
      • description: descrição do código, a qual pode ser “purchase” para “00”, “withdraw” para “01” ou “voucher” para “20”;
    • settlement: objeto contendo o valor da transação sem taxas e a moeda utilizada;
    • localAmount: objeto contendo o valor da transação sem taxas e a moeda do local da transação.
    • entryMode:
      • code: o código do modo de entrada de acordo com a ISO 8583;
      • description: a descrição do modo de entrada;
      • cardPresent: define se este modo de entrada está presente no cartão;
    • authorizationCode: um identificador da transação da rede do cartão;
    • wallet: objeto contendo o código e a descrição da carteira. Veja alguns exemplos na tabela ao final da página;
    • retrievalReferenceNumber: um identificador de transação da rede do cartão;
    • merchant: informações referentes ao estabelecimento/comerciante que aceitou a transação. Seus campos são baseados na ISO 8583:
      • mcc: o código mcc da transação;
      • mcg: a descrição do tipo do mcc;
      • city: a cidade do merchant para identificar parte de sua localização;
      • stateOrCountryCode: o código do estado ou do país do merchant para identificar parte da sua localização;
      • state: estado do merchant para identificar parte de sua localização;
      • name: nome do merchant;
      • zipCode: CEP do merchant;
      • terminalId: id do terminal do merchant;
      • acquirerCode: código do credenciador;
    • authorizationId: identificador da autorização da processadora;
    • name: nome do canal que iniciou a transação no banco. No contexto do autorizador, o canal será sempre “CARD_NETWORK”;
  • authorizationTransactionId: o identificador da transação gerado pela plataforma de autorização do Bankly;
  • dollarExchangeRate: a cotação atual do dólar, em reais;
  • card:
    • proxy: código identificador do cartão;
    • alias: apelido definido pelo proprietário do cartão;
    • function: função do cartão, a qual pode ser: “Pre”, “Pos”, “Debit”;
    • type: tipo do cartão, o qual pode ser: “Physical” ou “Virtual”;
  • reversalReason: motivo da reversão da transação. Exemplo: “SystemFault”, “PosRequest”, “DebitReversal”;
  • clearingDate: data de confirmação processada pela plataforma de autorização do Bankly.

Exemplos de conteúdo do campo wallet

CódigoDescrição
101MasterpassByMastercard
103ApplePay
216GooglePay
217SamsungPay
327MerchantTokenizationProgram
0Unknown
00Unknown

📘

Nota

No contexto de autorização (Authorization), os subcampos type, status, pockets, balance e label do campo Account geralmente são enviados como null.

Denied rules

O evento de autorização TRANSACTION_WAS_PROCESSED traz o campo deniedRules, que pode conter os seguintes motivos de negação:

Bankly

MotivoDescrição
NOT_ALLOWED_ADVICE_FOR_DENIED_TRANSACTION_HOLDA reversão por falha sistêmica não foi permitida porque a autorização foi negada.
OPERATION_NOT_IMPLEMENTEDA interpretação da requisição recebida não resultou em nenhuma operação válida (autorização, advice ou reversão).
DUPLICATED_TRANSACTIONTransação duplicada.
TRANSACTION_NOT_EXISTSTransação não existe.
BLOCKED_BY_CARD_INTEGRATIONErro de comunicação interna com o serviço de cartão.
NOT_ALLOWED_WITHDRAWALNão é permitido saque.
NOT_ALLOWED_PURCHASE_INTERNATIONALNão é permitida compra internacional.
NOT_ALLOWED_PURCHASE_ONLINENão é permitida compra online.
NOT_ALLOWED_PURCHASE_PHYSICALNão é permitida compra física.
NOT_ALLOWED_PRE_AUTHORIZATIONNão é permitida pré-autorização.
NOT_ALLOWED_MORE_THAN_ONE_INSTALLMENTNão é permitido parcelamento.
CONSTITUTION_NOT_FOUNDErro interno na consulta de configurações do cartão.
NOT_ALLOWED_CONTACTLESSNão é permitido contactless.
NOT_ALLOWED_MCCMCC não permitido.
NOT_ALLOWED_CARD_NOT_VALIDCartão não ativo.
NOT_ALLOWED_CARD_LOCKEDCartão bloqueado.
NOT_ALLOWED_CARD_CANCELEDCartão cancelado.
NOT_ALLOWED_CARD_IS_BUILDINGCartão ainda em processo de impressão.
NOT_ALLOWED_REVERSAL_AMOUNT_GREATER_THAN_ORIGINAL_AMOUNTReversão não permitida, pois o valor é maior que o original.
NOT_ALLOWED_REVERSAL_FOR_ALREADY_PROCESSED_TRANSACTION_IN_SECOND_INSTANCENão é permitida a reversão para a transação já conciliada.
NOT_ALLOWED_PARTIAL_WITHDRAWAL_REVERSALNão é permitida a reversão de saque parcial.
BLOCKED_BY_CORE_BANK_VALIDATIONFalha na integração com core bancário.
BLOCKED_BY_LIMIT_VALIDATIONBloqueado por validação de limite de quantidade de transações ou montante por CPF por ciclo (transacional, diário ou mensal).
BLOCKED_BY_RISK_ANALYSISBloqueado para análise de risco (enviado em transações pré-pagas).
BLOCKED_BY_RISK_ANALYSIS_AND_LIMIT_VALIDATIONBloqueado por análise de risco e validação de limite.
INVALID_OPERATIONA compra foi passada em uma operação (débito ou crédito) não permitida.
NOT_ALLOWED_CARD_WITH_STATUS_CREATEDCartão com status de Criação.
NOT_ALLOWED_CARD_WITH_STATUS_BLOCKEDCartão com status Bloqueado.
NOT_ALLOWED_CARD_WITH_STATUS_WARNINGCartão com status de Atenção.
NOT_ALLOWED_CARD_WITH_STATUS_CANCELLED_OR_CLIENTORDERCartão com status Cancelado.
NOT_ALLOWED_CARD_WITH_STATUS_FRAUDCartão com status de Fraude.
NOT_ALLOWED_CARD_WITH_STATUS_LOSTCartão com status Perdido.
NOT_ALLOWED_CARD_WITH_STATUS_ROBBED_OR_THEFTCartão com status Roubado.
NOT_ALLOWED_CARD_WITH_STATUS_DELETEDCartão com status Excluído.
NOT_ALLOWED_CARD_WITH_STATUS_UNRECEIVEDCartão com status Não Recebido.
NOT_ALLOWED_CARD_WITH_STATUS_INOPERATIVECartão com status Inoperante.
NOT_ALLOWED_PURCHASE_WITH_CURRENCY_UNMATCH_COUNTRYA compra foi realizada em BRL, mas o estabelecimento é internacional.
NOT_ALLOWED_CARD_WITH_STATUS_OTHERCartão com status Outros.
TRANSACTION_IS_NOT_ON_HOLDTransação já revertida.
NOT_ALLOWED_REVERSAL_CURRENCY_UNMATCH_ORIGINAL_CURRENCYMoeda de reversão diferente da utilizada na autorização.

Core bancário

MotivoDescrição
INSUFFICIENT_BALANCESaldo insuficiente.
AUTHORIZATION_HOLD_NOT_FOUNDErro ao tentar reverter uma autorização não efetuada.
WITHDRAWAL_LIMIT_EXCEEDEDO limite de retirada de dinheiro no core bancário foi excedido.
CORE_BANK_INTEGRATION_ERRORErro ao integrar com o core bancário.

Processadora

MotivoDescrição
INVALID_PASSWORDA senha informada na compra/saque não é válida.
PAN_NOT_FOUND_IN_PCI_DATABASECartão não encontrado pela processadora.
INVALID_EXPIRATION_DATEData de expiração inválida.
NOT_ALOWED_PURCHASE_WITH_STRIPE_CARDNão é permitido passar a compra com a tarja do cartão.
INVALID_ENTRY_MODENão é permitido passar a compra com a tarja do cartão, pois a máquina só aceita chip.
CVV_VALIDATION_WITH_SAFETY_AUTHENTICATION_MODE_VALIDATIONCVV inválido.
UNSAFETY_TRANSACTION_WITHOUT_VALIDATION_METHODNão foi informado nenhum dado de segurança, no momento da transação.
CVV_VALIDATION_WITH_EXPIRATION_DATE_VALIDATIONCartão temporário utilizado após o término do seu prazo de vida.
ANTI_FRAUD_VALIDATIONTransação pós-paga negada no antifraude do Bankly.
CANCEL_REQUEST_UNMATCH_ORIGINAL_TRANSACTIONTransação original não encontrada na processadora.
LIMIT_EXCEEDEDLimite da processadora excedido.
TIMEOUTTempo de comunicação expirado.
COMUNICATION_FAILComunicação indisponível.
CRIPTOGRAM_VALIDATION_HSMFalha na validação de segurança do criptograma.
OBSOLET_CARDHOLDER_VALIDATIONMétodo de validação do usuário é obsoleto.
INVALID_OPERATION_FOR_THE_PROGRAM_OR_ACCOUNTNão é permitido o parcelamento de compra com cartão de débito ou crédito pré.
NOT_ALOWED_TRANSACTION_DATE_BIGGER_THAN_CARD_EXPIRATION_DATECartão expirado.
RETRY_QUANTITY_EXCEEDEDNúmero de tentativas de senha foi excedido.
ATCDiscrepância entre o ATC (Application Transaction Counter) do chip e do autorizador.
NOT_ALLOWED_PURCHASE_FOR_BLOCKED_ACCOUNTConta bloqueada.
CRIPTOGRAM_VALIDATION_PER_ENTRY_MODECriptograma não enviado para o entry mode escolhido.