<?php

abstract class Type_CieloApiTipoFinalizacao extends EnumBasic{
   const Tp_CieloApiFinalCheckout   = 0 ;
   const Tp_CieloApiFinalPosterior  = 1 ;

   protected static $nickname = array(
     self::Tp_CieloApiFinalCheckout   => 'Finalização do Pedido',
     self::Tp_CieloApiFinalPosterior  => 'Posterior'
   );
}

abstract class Type_CieloApiBandeira extends EnumBasic{
  const Tp_Visa        = 1 ;
  const Tp_Mastercard  = 2 ;
  const Tp_Amex        = 3 ;
  const Tp_Diners      = 4 ;
  const Tp_Elo         = 5 ;
  const Tp_Discover    = 6 ;
  const Tp_Hipercard   = 7 ;

  protected static $nickname = array(
    self::Tp_Visa       => 'visa',
    self::Tp_Mastercard => 'master',
    self::Tp_Amex       => 'amex',
    self::Tp_Diners     => 'diners',
    self::Tp_Elo        => 'elo',
    self::Tp_Discover   => 'discover',
    self::Tp_Hipercard  => 'hipercard'
  );
}

abstract class Type_CieloApiStatusPgto extends EnumBasic{
   const Tp_CieloApiCancelado  = 0 ;
   const Tp_CieloApiPago       = 1 ;
   const Tp_CieloApiAguardando = 2 ;
   const Tp_CieloApiNegado     = 3 ;

   protected static $nickname = array(
     self::Tp_CieloApiCancelado  => 'Cancelado',
     self::Tp_CieloApiPago       => 'Pago',
     self::Tp_CieloApiAguardando => 'Aguardando',
     self::Tp_CieloApiNegado     => 'Negado'
   );
}

abstract class Type_CieloApiStatus extends EnumBasic{
  const Tp_Aguardando           =  '0';
  const Tp_AptoAFinalizar       =  '1';
  const Tp_Finalizado           =  '2';
  const Tp_Negado               =  '3';
  const Tp_Cancelado            =  '10';
  const Tp_CanceladoAposHorario =  '11';
  const Tp_AguardandoStatusIF   =  '12';
  const Tp_CanceladoFalha       =  '13';
  const Tp_Recorrencia          =  '20';

  protected static $nickname = array(
    self::Tp_Aguardando           =>   '0 - Aguardando atualização de status',
    self::Tp_AptoAFinalizar       =>   '1 - Pagamento apto a ser capturado ou definido como pago',
    self::Tp_Finalizado           =>   '2 - Pagamento confirmado e finalizado',
    self::Tp_Negado               =>   '3 - Pagamento negado por Autorizador',
    self::Tp_Cancelado            =>   '10 - Pagamento cancelado',
    self::Tp_CanceladoAposHorario =>   '11 - Pagamento cancelado após 23:59 do dia de autorização',
    self::Tp_AguardandoStatusIF   =>   '12 - Aguardando Status de instituição financeira',
    self::Tp_CanceladoFalha       =>   '13 - Pagamento cancelado por falha no processamento',
    self::Tp_Recorrencia          =>   '20 - Recorrência agendada'
  );
}

abstract class Type_CieloApiRetorno extends EnumBasic{
  const Tp_CieloApiRetorno0    =  '0';
  const Tp_CieloApiRetorno1    =  '1';
  const Tp_CieloApiRetorno2    =  '2';
  const Tp_CieloApiRetorno3    =  '3';
  const Tp_CieloApiRetorno4    =  '4';
  const Tp_CieloApiRetorno5    =  '5';
  const Tp_CieloApiRetorno6    =  '6';
  const Tp_CieloApiRetorno9    =  '9';
  const Tp_CieloApiRetorno10   =  '10';
  const Tp_CieloApiRetorno12c  =  '12c';
  const Tp_CieloApiRetorno00   =  '00';
  const Tp_CieloApiRetorno000  =  '000';
  const Tp_CieloApiRetorno01   =  '01';
  const Tp_CieloApiRetorno02   =  '02';
  const Tp_CieloApiRetorno03   =  '03';
  const Tp_CieloApiRetorno04   =  '04';
  const Tp_CieloApiRetorno05   =  '05';
  const Tp_CieloApiRetorno06   =  '06';
  const Tp_CieloApiRetorno07   =  '07';
  const Tp_CieloApiRetorno08   =  '08';
  const Tp_CieloApiRetorno11   =  '11';
  const Tp_CieloApiRetorno12   =  '12';
  const Tp_CieloApiRetorno13   =  '13';
  const Tp_CieloApiRetorno14   =  '14';
  const Tp_CieloApiRetorno15   =  '15';
  const Tp_CieloApiRetorno19   =  '19';
  const Tp_CieloApiRetorno21   =  '21';
  const Tp_CieloApiRetorno22   =  '22';
  const Tp_CieloApiRetorno23   =  '23';
  const Tp_CieloApiRetorno24   =  '24';
  const Tp_CieloApiRetorno25   =  '25';
  const Tp_CieloApiRetorno28   =  '28';
  const Tp_CieloApiRetorno30   =  '30';
  const Tp_CieloApiRetorno39   =  '39';
  const Tp_CieloApiRetorno41   =  '41';
  const Tp_CieloApiRetorno43   =  '43';
  const Tp_CieloApiRetorno51   =  '51';
  const Tp_CieloApiRetorno52   =  '52';
  const Tp_CieloApiRetorno53   =  '53';
  const Tp_CieloApiRetorno54   =  '54';
  const Tp_CieloApiRetorno55   =  '55';
  const Tp_CieloApiRetorno57   =  '57';
  const Tp_CieloApiRetorno58   =  '58';
  const Tp_CieloApiRetorno59   =  '59';
  const Tp_CieloApiRetorno60   =  '60';
  const Tp_CieloApiRetorno61   =  '61';
  const Tp_CieloApiRetorno62   =  '62';
  const Tp_CieloApiRetorno63   =  '63';
  const Tp_CieloApiRetorno64   =  '64';
  const Tp_CieloApiRetorno65   =  '65';
  const Tp_CieloApiRetorno67   =  '67';
  const Tp_CieloApiRetorno70   =  '70';
  const Tp_CieloApiRetorno72   =  '72';
  const Tp_CieloApiRetorno74   =  '74';
  const Tp_CieloApiRetorno75   =  '75';
  const Tp_CieloApiRetorno76   =  '76';
  const Tp_CieloApiRetorno77   =  '77';
  const Tp_CieloApiRetorno78   =  '78';
  const Tp_CieloApiRetorno80   =  '80';
  const Tp_CieloApiRetorno82   =  '82';
  const Tp_CieloApiRetorno83   =  '83';
  const Tp_CieloApiRetorno85   =  '85';
  const Tp_CieloApiRetorno86   =  '86';
  const Tp_CieloApiRetorno89   =  '89';
  const Tp_CieloApiRetorno90   =  '90';
  const Tp_CieloApiRetorno91   =  '91';
  const Tp_CieloApiRetorno92   =  '92';
  const Tp_CieloApiRetorno93   =  '93';
  const Tp_CieloApiRetorno96   =  '96';
  const Tp_CieloApiRetorno97   =  '97';
  const Tp_CieloApiRetorno98   =  '98';
  const Tp_CieloApiRetorno99   =  '99';
  const Tp_CieloApiRetorno999  =  '999';
  const Tp_CieloApiRetornoAA   =  'AA';
  const Tp_CieloApiRetornoAC   =  'AC';
  const Tp_CieloApiRetornoAE   =  'AE';
  const Tp_CieloApiRetornoAF   =  'AF';
  const Tp_CieloApiRetornoAG   =  'AG';
  const Tp_CieloApiRetornoAH   =  'AH';
  const Tp_CieloApiRetornoAI   =  'AI';
  const Tp_CieloApiRetornoAJ   =  'AJ';
  const Tp_CieloApiRetornoAV   =  'AV';
  const Tp_CieloApiRetornoBD   =  'BD';
  const Tp_CieloApiRetornoBL   =  'BL';
  const Tp_CieloApiRetornoBM   =  'BM';
  const Tp_CieloApiRetornoBN   =  'BN';
  const Tp_CieloApiRetornoBO   =  'BO';
  const Tp_CieloApiRetornoBP   =  'BP';
  const Tp_CieloApiRetornoBV   =  'BV';
  const Tp_CieloApiRetornoCF   =  'CF';
  const Tp_CieloApiRetornoCG   =  'CG';
  const Tp_CieloApiRetornoDA   =  'DA';
  const Tp_CieloApiRetornoDF   =  'DF';
  const Tp_CieloApiRetornoDM   =  'DM';
  const Tp_CieloApiRetornoDQ   =  'DQ';
  const Tp_CieloApiRetornoDS   =  'DS';
  const Tp_CieloApiRetornoEB   =  'EB';
  const Tp_CieloApiRetornoEE   =  'EE';
  const Tp_CieloApiRetornoEK   =  'EK';
  const Tp_CieloApiRetornoFA   =  'FA';
  const Tp_CieloApiRetornoFC   =  'FC';
  const Tp_CieloApiRetornoFD   =  'FD';
  const Tp_CieloApiRetornoFE   =  'FE';
  const Tp_CieloApiRetornoFF   =  'FF';
  const Tp_CieloApiRetornoFG   =  'FG';
  const Tp_CieloApiRetornoGA   =  'GA';
  const Tp_CieloApiRetornoHJ   =  'HJ';
  const Tp_CieloApiRetornoIA   =  'IA';
  const Tp_CieloApiRetornoJB   =  'JB';
  const Tp_CieloApiRetornoKA   =  'KA';
  const Tp_CieloApiRetornoKB   =  'KB';
  const Tp_CieloApiRetornoKE   =  'KE';
  const Tp_CieloApiRetornoN7   =  'N7';
  const Tp_CieloApiRetornoR1   =  'R1';
  const Tp_CieloApiRetornoU3   =  'U3';
  const Tp_CieloApiRetornoGD   =  'GD';

  protected static $nickname = array(
     self::Tp_CieloApiRetorno0    =>   '0 - Criada',
     self::Tp_CieloApiRetorno1    =>   '1 - Em andamento',
     self::Tp_CieloApiRetorno2    =>   '2 - Autenticada',
     self::Tp_CieloApiRetorno3    =>   '3 - Não Autenticada',
     self::Tp_CieloApiRetorno4    =>   '4 - Autorizada',
     self::Tp_CieloApiRetorno5    =>   '5 - Não Autorizada',
     self::Tp_CieloApiRetorno6    =>   '6 - Capturada',
     self::Tp_CieloApiRetorno9    =>   '9 - Cancelada',
     self::Tp_CieloApiRetorno10   =>   '10 - Em autenticação',
     self::Tp_CieloApiRetorno12c  =>   '12 - Em cancelamento',
     self::Tp_CieloApiRetorno00   =>   '00 - Transação autorizada com sucesso.',
     self::Tp_CieloApiRetorno000  =>   '000 - Transação autorizada com sucesso.',
     self::Tp_CieloApiRetorno01   =>   '01 - Transação não autorizada. Transação referida.',
     self::Tp_CieloApiRetorno02   =>   '02 - Transação não autorizada. Transação referida.',
     self::Tp_CieloApiRetorno03   =>   '03 - Transação não permitida. Erro no cadastramento do código do estabelecimento no arquivo de configuração do TEF',
     self::Tp_CieloApiRetorno04   =>   '04 - Transação não autorizada. Cartão bloqueado pelo banco emissor.',
     self::Tp_CieloApiRetorno05   =>   '05 - Transação não autorizada. Cartão inadimplente (Do not honor).',
     self::Tp_CieloApiRetorno06   =>   '06 - Transação não autorizada. Cartão cancelado.',
     self::Tp_CieloApiRetorno07   =>   '07 - Transação negada. Reter cartão condição especial',
     self::Tp_CieloApiRetorno08   =>   '08 - Transação não autorizada. Código de segurança inválido.',
     self::Tp_CieloApiRetorno11   =>   '11 - Transação autorizada com sucesso para cartão emitido no exterior',
     self::Tp_CieloApiRetorno12   =>   '12 - Transação inválida, erro no cartão.',
     self::Tp_CieloApiRetorno13   =>   '13 - Transação não permitida. Valor da transação Inválido.',
     self::Tp_CieloApiRetorno14   =>   '14 - Transação não autorizada. Cartão Inválido',
     self::Tp_CieloApiRetorno15   =>   '15 - Banco emissor indisponível ou inexistente.',
     self::Tp_CieloApiRetorno19   =>   '19 - Refaça a transação ou tente novamente mais tarde.',
     self::Tp_CieloApiRetorno21   =>   '21 - Cancelamento não efetuado. Transação não localizada.',
     self::Tp_CieloApiRetorno22   =>   '22 - Parcelamento inválido. Número de parcelas inválidas.',
     self::Tp_CieloApiRetorno23   =>   '23 - Transação não autorizada. Valor da prestação inválido.',
     self::Tp_CieloApiRetorno24   =>   '24 - Quantidade de parcelas inválido.',
     self::Tp_CieloApiRetorno25   =>   '25 - Pedido de autorização não enviou número do cartão',
     self::Tp_CieloApiRetorno28   =>   '28 - Arquivo temporariamente indisponível.',
     self::Tp_CieloApiRetorno30   =>   '30 - Transação não autorizada. Decline Message',
     self::Tp_CieloApiRetorno39   =>   '39 - Transação não autorizada. Erro no banco emissor.',
     self::Tp_CieloApiRetorno41   =>   '41 - Transação não autorizada. Cartão bloqueado por perda.',
     self::Tp_CieloApiRetorno43   =>   '43 - Transação não autorizada. Cartão bloqueado por roubo.',
     self::Tp_CieloApiRetorno51   =>   '51 - Transação não autorizada. Limite excedido/sem saldo.',
     self::Tp_CieloApiRetorno52   =>   '52 - Cartão com dígito de controle inválido.',
     self::Tp_CieloApiRetorno53   =>   '53 - Transação não permitida. Cartão poupança inválido',
     self::Tp_CieloApiRetorno54   =>   '54 - Transação não autorizada. Cartão vencido',
     self::Tp_CieloApiRetorno55   =>   '55 - Transação não autorizada. Senha inválida',
     self::Tp_CieloApiRetorno57   =>   '57 - Transação não permitida para o cartão',
     self::Tp_CieloApiRetorno58   =>   '58 - Transação não permitida. Opção de pagamento inválida.',
     self::Tp_CieloApiRetorno59   =>   '59 - Transação não autorizada. Suspeita de fraude.',
     self::Tp_CieloApiRetorno60   =>   '60 - Transação não autorizada.',
     self::Tp_CieloApiRetorno61   =>   '61 - Banco emissor indisponível.',
     self::Tp_CieloApiRetorno62   =>   '62 - Transação não autorizada. Cartão restrito para uso doméstico',
     self::Tp_CieloApiRetorno63   =>   '63 - Transação não autorizada. Violação de segurança',
     self::Tp_CieloApiRetorno64   =>   '64 - Transação não autorizada. Valor abaixo do mínimo exigido pelo banco emissor.',
     self::Tp_CieloApiRetorno65   =>   '65 - Transação não autorizada. Excedida a quantidade de transações para o cartão.',
     self::Tp_CieloApiRetorno67   =>   '67 - Transação não autorizada. Cartão bloqueado para compras hoje.',
     self::Tp_CieloApiRetorno70   =>   '70 - Transação não autorizada. Limite excedido/sem saldo.',
     self::Tp_CieloApiRetorno72   =>   '72 - Cancelamento não efetuado. Saldo disponível para cancelamento insuficiente.',
     self::Tp_CieloApiRetorno74   =>   '74 - Transação não autorizada. A senha está vencida.',
     self::Tp_CieloApiRetorno75   =>   '75 - Senha bloqueada. Excedeu tentativas de cartão.',
     self::Tp_CieloApiRetorno76   =>   '76 - Cancelamento não efetuado. Banco emissor não localizou a transação original',
     self::Tp_CieloApiRetorno77   =>   '77 - Cancelamento não efetuado. Não foi localizado a transação original',
     self::Tp_CieloApiRetorno78   =>   '78 - Transação não autorizada. Cartão bloqueado primeiro uso.',
     self::Tp_CieloApiRetorno80   =>   '80 - Transação não autorizada. Divergencia na data de transação/pagamento.',
     self::Tp_CieloApiRetorno82   =>   '82 - Transação não autorizada. Cartão inválido.',
     self::Tp_CieloApiRetorno83   =>   '83 - Transação não autorizada. Erro no controle de senhas',
     self::Tp_CieloApiRetorno85   =>   '85 - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetorno86   =>   '86 - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetorno89   =>   '89 - Erro na transação.',
     self::Tp_CieloApiRetorno90   =>   '90 - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetorno91   =>   '91 - Transação não autorizada. Banco emissor temporariamente indisponível.',
     self::Tp_CieloApiRetorno92   =>   '92 - Transação não autorizada. Tempo de comunicação excedido.',
     self::Tp_CieloApiRetorno93   =>   '93 - Transação não autorizada. Violação de regra - Possível erro no cadastro.',
     self::Tp_CieloApiRetorno96   =>   '96 - Falha no processamento.',
     self::Tp_CieloApiRetorno97   =>   '97 - Valor não permitido para essa transação.',
     self::Tp_CieloApiRetorno98   =>   '98 - Sistema/comunicação indisponível.',
     self::Tp_CieloApiRetorno99   =>   '99 - Sistema/comunicação indisponível.',
     self::Tp_CieloApiRetorno999  =>   '999 - Sistema/comunicação indisponível.',
     self::Tp_CieloApiRetornoAA   =>   'AA - Tempo Excedido',
     self::Tp_CieloApiRetornoAC   =>   'AC - Transação não permitida. Cartão de débito sendo usado com crédito. Use a função débito.',
     self::Tp_CieloApiRetornoAE   =>   'AE - Tente Mais Tarde',
     self::Tp_CieloApiRetornoAF   =>   'AF - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetornoAG   =>   'AG - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetornoAH   =>   'AH - Transação não permitida. Cartão de crédito sendo usado com débito. Use a função crédito.',
     self::Tp_CieloApiRetornoAI   =>   'AI - Transação não autorizada. Autenticação não foi realizada.',
     self::Tp_CieloApiRetornoAJ   =>   'AJ - Transação não permitida. Transação de crédito ou débito em uma operação que permite apenas Private Label. Tente novamente selecionando a opção Private Label.',
     self::Tp_CieloApiRetornoAV   =>   'AV - Transação não autorizada. Dados Inválidos',
     self::Tp_CieloApiRetornoBD   =>   'BD - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetornoBL   =>   'BL - Transação não autorizada. Limite diário excedido.',
     self::Tp_CieloApiRetornoBM   =>   'BM - Transação não autorizada. Cartão Inválido',
     self::Tp_CieloApiRetornoBN   =>   'BN - Transação não autorizada. Cartão ou conta bloqueado.',
     self::Tp_CieloApiRetornoBO   =>   'BO - Transação não permitida. Falha da operação.',
     self::Tp_CieloApiRetornoBP   =>   'BP - Transação não autorizada. Conta corrente inexistente.',
     self::Tp_CieloApiRetornoBV   =>   'BV - Transação não autorizada. Cartão vencido',
     self::Tp_CieloApiRetornoCF   =>   'CF - Transação não autorizada.C79:J79 Falha na validação dos dados.',
     self::Tp_CieloApiRetornoCG   =>   'CG - Transação não autorizada. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoDA   =>   'DA - Transação não autorizada. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoDF   =>   'DF - Transação não permitida. Falha no cartão ou cartão inválido.',
     self::Tp_CieloApiRetornoDM   =>   'DM - Transação não autorizada. Limite excedido/sem saldo.',
     self::Tp_CieloApiRetornoDQ   =>   'DQ - Transação não autorizada. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoDS   =>   'DS - Transação não permitida para o cartão',
     self::Tp_CieloApiRetornoEB   =>   'EB - Transação não autorizada. Limite diário excedido.',
     self::Tp_CieloApiRetornoEE   =>   'EE - Transação não permitida. Valor da parcela inferior ao mínimo permitido.',
     self::Tp_CieloApiRetornoEK   =>   'EK - Transação não permitida para o cartão',
     self::Tp_CieloApiRetornoFA   =>   'FA - Transação não autorizada.',
     self::Tp_CieloApiRetornoFC   =>   'FC - Transação não autorizada. Ligue Emissor',
     self::Tp_CieloApiRetornoFD   =>   'FD - Transação negada. Reter cartão condição especial',
     self::Tp_CieloApiRetornoFE   =>   'FE - Transação não autorizada. Divergencia na data de transação/pagamento.',
     self::Tp_CieloApiRetornoFF   =>   'FF - Cancelamento OK',
     self::Tp_CieloApiRetornoFG   =>   'FG - Transação não autorizada. Ligue AmEx.08007285090',
     self::Tp_CieloApiRetornoGA   =>   'GA - Aguarde Contato',
     self::Tp_CieloApiRetornoHJ   =>   'HJ - Transação não permitida. Código da operação inválido.',
     self::Tp_CieloApiRetornoIA   =>   'IA - Transação não permitida. Indicador da operação inválido.',
     self::Tp_CieloApiRetornoJB   =>   'JB - Transação não permitida. Valor da operação inválido.',
     self::Tp_CieloApiRetornoKA   =>   'KA - Transação não permitida. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoKB   =>   'KB - Transação não permitida. Selecionado a opção incorrente.',
     self::Tp_CieloApiRetornoKE   =>   'KE - Transação não autorizada. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoN7   =>   'N7 - Transação não autorizada. Código de segurança inválido.',
     self::Tp_CieloApiRetornoR1   =>   'R1 - Transação não autorizada. Cartão inadimplente (Do not honor).',
     self::Tp_CieloApiRetornoU3   =>   'U3 - Transação não permitida. Falha na validação dos dados.',
     self::Tp_CieloApiRetornoGD   =>   'GD - Transação não permitida'
   );
}


abstract class Type_StatusAutorizacao extends EnumBasic{
  const Tp_Negada     = 0 ;
  const Tp_Autorizada = 1;
  const Tp_Retentativa = 2;
  
  protected static $nickname = array(
    self::Tp_Negada     => 'negada',
    self::Tp_Autorizada => 'autorizada',
    self::Tp_Retentativa => 'retentativa'
  );
}

//AntiFraude
abstract class Type_CieloAntiFraudeAnaliseFluxo extends EnumBasic{
  const Tp_AnalyseFirst     = 'AnalyseFirst' ;
  const Tp_AuthorizeFirst   = 'AuthorizeFirst' ;

  protected static $nickname = array(
    self::Tp_AnalyseFirst     => 'Análise antes da autorização',
    self::Tp_AuthorizeFirst   => 'Análise após a autorização'
  );
}

abstract class Type_CieloAntiFraudeAnaliseCriterio extends EnumBasic{
  const Tp_OnSuccess  = 'OnSuccess' ;
  const Tp_Always     = 'Always' ;
  
  protected static $nickname = array(
    self::Tp_OnSuccess  => 'Análise de risco somente se a transação for autorizada',
    self::Tp_Always     => 'Sempre analisar'
  );
}

abstract class Type_SandboxCieloFingerprint extends EnumBasic{
  const Tp_SandBox     = '1snn5n9w';
  const Tp_Producao    = 'k8vif92e';
  
  protected static $nickname = array(
    self::Tp_SandBox    => 'Sandbox',
    self::Tp_Producao   => 'Producao',
  );
}
//Type_HotListInfoCode Type_FactorCode Type_InternetInfoCode Type_VelocityInfoCode
abstract class Type_VerificacaoAntifraudeTable extends EnumBasic{
  const Tp_FactorCode       = 1;
  const Tp_IdentityInfoCode = 2;
  const Tp_AddressInfoCode  = 3;
  const Tp_HotListInfoCode  = 4;
  const Tp_InternetInfoCode = 5;
  const Tp_VelocityInfoCode = 6;

  protected static $nickname = array(
    self::Tp_FactorCode       => 'Type_FactorCode',
    self::Tp_IdentityInfoCode => 'Type_IdentityInfoCode',
    self::Tp_AddressInfoCode  => 'Type_AddressInfoCode',
    self::Tp_HotListInfoCode  => 'Type_HotListInfoCode',
    self::Tp_InternetInfoCode => 'Type_InternetInfoCode',
    self::Tp_VelocityInfoCode => 'Type_VelocityInfoCode',
  );
  
  protected static $description = array(
    self::Tp_FactorCode       => 'Resultados que afetaram a pontuação da análise.',
    self::Tp_IdentityInfoCode => 'Resultados que indicam mudanças de identidade excessivas.',
    self::Tp_AddressInfoCode  => 'Resultados indicam incompatibilidades entre os endereços de cobrança e entrega do comprador.',
    self::Tp_HotListInfoCode  => 'Resultados que indicam que os dados do comprador estão associados em listas de positivas ou negativas.',
    self::Tp_InternetInfoCode => 'Resultados que indicam problemas com o endereço de e-mail, o endereço IP ou o endereço de cobrança.',
    self::Tp_VelocityInfoCode => 'Resultados que indicam que o comprador tem uma alta frequência de compras.',
  );
}


abstract class Type_IdentityInfoCode extends EnumBasic{
  const Tp_MorphB     = 1;
  const Tp_MorphC     = 2;
  const Tp_MorphE     = 3;
  const Tp_MorphI     = 4;
  const Tp_MorphP     = 5;
  const Tp_MorphS     = 6;

  protected static $nickname = array(
    self::Tp_MorphB    => 'MORPH-B',
    self::Tp_MorphC    => 'MORPH-C',
    self::Tp_MorphE    => 'MORPH-E',
    self::Tp_MorphI    => 'MORPH-I',
    self::Tp_MorphP    => 'MORPH-P',
    self::Tp_MorphS    => 'MORPH-S',        
  );

  protected static $description = array(
    self::Tp_MorphB    => 'O mesmo endereço de cobrança tem sido utilizado várias vezes com identidades de múltiplos compradores',
    self::Tp_MorphC    => 'O mesmo cartão de crédito tem sido utilizado várias vezes com identidades de múltiplos compradores',
    self::Tp_MorphE    => 'O mesmo endereço de e-mail tem sido utilizado várias vezes com identidades de múltiplos compradores',
    self::Tp_MorphI    => 'O mesmo endereço IP tem sido utilizado várias vezes com identidades de múltiplos compradores',
    self::Tp_MorphP    => 'O mesmo número de telefone tem sido usado várias vezes com identidades de múltiplos compradores',
    self::Tp_MorphS    => 'O mesmo endereço de entrega tem sido utilizado várias vezes com identidades de múltiplos compradores',   
  );
}

abstract class Type_AddressInfoCode extends EnumBasic{
  const Tp_COR_BA   = 1;
  const Tp_COR_SA   = 2;
  const Tp_INTL_BA  = 3;
  const Tp_INTL_SA  = 4;
  const Tp_MIL_USA  = 5;
  const Tp_MM_A     = 6;
  const Tp_MM_BIN   = 7;
  const Tp_MM_C     = 8;
  const Tp_MM_CO    = 9;
  const Tp_MM_ST    = 10;
  const Tp_MM_Z     = 11;
  const Tp_UNV_ADDR = 12;

  protected static $nickname = array(
    self::Tp_COR_BA   => 'COR-BA',	
    self::Tp_COR_SA   => 'COR-SA',	
    self::Tp_INTL_BA  => 'INTL-BA',
    self::Tp_INTL_SA  => 'INTL-SA',
    self::Tp_MIL_USA  => 'MIL-USA',
    self::Tp_MM_A     => 'MM-A',
    self::Tp_MM_BIN   => 'MM-BIN',	
    self::Tp_MM_C     => 'MM-C',	
    self::Tp_MM_CO    => 'MM-CO',	
    self::Tp_MM_ST    => 'MM-ST',	
    self::Tp_MM_Z     => 'MM-Z',	
    self::Tp_UNV_ADDR => 'UNV-ADDR'
  );

  protected static $description = array(
    self::Tp_COR_BA   => 'O endereço de cobrança pode ser normalizado',
    self::Tp_COR_SA   => 'O endereço de entrega pode ser normalizado',
    self::Tp_INTL_BA  => 'O país do endereço de cobrança está fora dos EUA',
    self::Tp_INTL_SA  => 'O país do endereço de entrega está fora dos EUA',
    self::Tp_MIL_USA  => 'Endereço militar nos EUA',
    self::Tp_MM_A     => 'Os endereços de cobrança e entrega usam nomes de ruas diferentes',
    self::Tp_MM_BIN   => 'O BIN do cartão (os seis primeiros dígitos do número do cartão) não corresponde ao país',
    self::Tp_MM_C     => 'Os endereços de cobrança e entrega usam cidades diferentes',
    self::Tp_MM_CO    => 'Os endereços de cobrança e entrega usam países diferentes',
    self::Tp_MM_ST    => 'Os endereços de cobrança e entrega usam estados diferentes',
    self::Tp_MM_Z     => 'Os endereços de cobrança e entrega usam códidos postais diferentes',
    self::Tp_UNV_ADDR => 'O endereço é inverificável'
  );
}

abstract class Type_FactorCode extends EnumBasic{
  const Tp_A  = 1;
  const Tp_B	= 2;
  const Tp_C	= 3;
  const Tp_D	= 4;
  const Tp_E	= 5;
  const Tp_F	= 6;
  const Tp_G	= 7;
  const Tp_H	= 8;
  const Tp_I	= 9; 
  const Tp_N	= 10;
  const Tp_O	= 11;
  const Tp_P	= 12;
  const Tp_Q	= 13;
  const Tp_R	= 14;
  const Tp_T	= 15;
  const Tp_U	= 16;
  const Tp_V	= 17;
  const Tp_W	= 18;
  const Tp_Y	= 19;
  const Tp_Z	= 20;

  protected static $nickname = array(
    self::Tp_A  => 'A',
    self::Tp_B	=> 'B',
    self::Tp_C	=> 'C',
    self::Tp_D	=> 'D',
    self::Tp_E	=> 'E',
    self::Tp_F	=> 'F',
    self::Tp_G	=> 'G',
    self::Tp_H	=> 'H',
    self::Tp_I	=> 'I',
    self::Tp_N	=> 'N',
    self::Tp_O	=> 'O',
    self::Tp_P	=> 'P',
    self::Tp_Q	=> 'Q',
    self::Tp_R	=> 'R',
    self::Tp_T	=> 'T',
    self::Tp_U	=> 'U',
    self::Tp_V	=> 'V',
    self::Tp_W	=> 'W',
    self::Tp_Y	=> 'Y',
    self::Tp_Z	=> 'Z'
  );

  protected static $description = array(
    self::Tp_A  => 'Mudança de endereço excessiva. O comprador mudou o endereço de cobrança duas ou mais vezes nos últimos seis meses',	
    self::Tp_B	=> 'BIN do cartão ou autorização de risco. Os fatores de risco estão relacionados com BIN de cartão de crédito e/ou verificações de autorização do cartão',	
    self::Tp_C	=> 'Elevado números de cartões de créditos. O comprador tem usado mais de seis números de cartões de créditos nos últimos seis meses',	
    self::Tp_D	=> 'Impacto do endereço de e-mail. O comprador usa um provedor de e-mail gratuito ou o endereço de email é arriscado',	
    self::Tp_E	=> 'Lista positiva. O comprador está na sua lista positiva',	
    self::Tp_F	=> 'Lista negativa. O número da conta, endereço, endereço de e-mail ou endereço IP para este fim aparece sua lista negativa',	
    self::Tp_G	=> 'Inconsistências de geolocalização. O domínio do comprador de e-mail, número de telefone, endereço de cobrança, endereço de envio ou endereço IP é suspeito',	
    self::Tp_H	=> 'Excessivas mudanças de nome. O comprador mudou o nome duas ou mais vezes nos últimos seis meses',	
    self::Tp_I	=> 'Inconsistências de internet. O endereço IP e de domínio de e-mail não são consistentes com o endereço de cobrança',	
    self::Tp_N	=> 'Entrada sem sentido. O nome do comprador e os campos de endereço contém palavras sem sentido ou idioma',	
    self::Tp_O	=> 'Obscenidades. Dados do comprador contém palavras obscenas',	
    self::Tp_P	=> 'Identidade morphing. Vários valores de um elemento de identidade estão ligados a um valor de um elemento de identidade diferentes. Por exemplo, vários números de telefones estão ligados a um número de conta única',	
    self::Tp_Q	=> 'Inconsistências do telefone. O número de telefone do comprador é suspeito',	
    self::Tp_R	=> 'Ordem arriscada. A transação, o comprador e o lojista mostram informações correlacionadas de alto risco',	
    self::Tp_T	=> 'Cobertura Time. O comprador está a tentar uma compra fora do horário esperado',	
    self::Tp_U	=> 'Endereço não verificável. O endereço de cobrança ou de entrega não pode ser verificado',	
    self::Tp_V	=> 'O cartão foi usado muitas vezes nos últimos 15 minutos',	
    self::Tp_W	=> 'Marcado como suspeito. O endereço de cobrança ou de entrega é semelhante a um endereço previamente marcado como suspeito',	
    self::Tp_Y	=> 'O endereço, cidade, estado ou país dos endereços de cobrança e entrega não se correlacionam',	
    self::Tp_Z	=> 'Valor inválido. Como a solicitação contém um valor inesperado, um valor padrão foi substituído. Embora a transação ainda possa ser processada, examinar o pedido com cuidado para detectar anomalias'
  );
}

abstract class Type_HotListInfoCode extends EnumBasic{
  const Tp_CON_POSNEG	=1;
  const Tp_NEG_BA	    =2;
  const Tp_NEG_BCO	  =3;	
  const Tp_NEG_BIN	  =4;	
  const Tp_NEG_BINCO	=5;	
  const Tp_NEG_BZC	  =6;	
  const Tp_NEG_CC	    =7;
  const Tp_NEG_EM     =8;
  const Tp_NEG_EMCO	  =9;	
  const Tp_NEG_EMDOM	=10;	
  const Tp_NEG_FP     =11;
  const Tp_NEG_HIST	  =12;	
  const Tp_NEG_ID     =13;
  const Tp_NEG_IP     =14;
  const Tp_NEG_IP3	  =15;
  const Tp_NEG_IPCO	  =16;
  const Tp_NEG_PEM	  =17;
  const Tp_NEG_PH     =18;
  const Tp_NEG_PID	  =19;
  const Tp_NEG_PPH	  =20;
  const Tp_NEG_SA     =21;
  const Tp_NEG_SCO	  =22;
  const Tp_NEG_SZC	  =23;
  const Tp_POS_TEMP	  =24;
  const Tp_POS_PERM	  =25;
  const Tp_REV_BA     =26;
  const Tp_REV_BCO	  =27;
  const Tp_REV_BIN	  =28;
  const Tp_REV_BINCO	=29;
  const Tp_REV_BZC	  =30;
  const Tp_REV_CC     =31;
  const Tp_REV_EM     =32;
  const Tp_REV_EMCO	  =33;
  const Tp_REV_EMDOM	=34;
  const Tp_REV_FP     =35;
  const Tp_REV_ID     =36;
  const Tp_REV_IP     =37;
  const Tp_REV_IP3	  =38;
  const Tp_REV_IPCO	  =39;
  const Tp_REV_PEM	  =40;
  const Tp_REV_PH     =41;
  const Tp_REV_PID	  =42;
  const Tp_REV_PPH	  =43;
  const Tp_REV_SA     =44;
  const Tp_REV_SCO	  =45;
  const Tp_REV_SZC	  =46;

  protected static $nickname = array(
    self::Tp_CON_POSNEG	=> 'CON-POSNEG',   
    self::Tp_NEG_BA	    => 'NEG-BA',
    self::Tp_NEG_BCO	  => 'NEG-BCO',	
    self::Tp_NEG_BIN	  => 'NEG-BIN',	
    self::Tp_NEG_BINCO	=> 'NEG-BINCO',	
    self::Tp_NEG_BZC	  => 'NEG-BZC',	
    self::Tp_NEG_CC	    => 'NEG-CC',
    self::Tp_NEG_EM     => 'NEG-EM',
    self::Tp_NEG_EMCO	  => 'NEG-EMCO',	
    self::Tp_NEG_EMDOM	=> 'NEG-EMDOM',	
    self::Tp_NEG_FP     => 'NEG-FP',
    self::Tp_NEG_HIST	  => 'NEG-HIST',	
    self::Tp_NEG_ID     => 'NEG-ID',
    self::Tp_NEG_IP     => 'NEG-IP',
    self::Tp_NEG_IP3	  => 'NEG-IP3',
    self::Tp_NEG_IPCO	  => 'NEG-IPCO',
    self::Tp_NEG_PEM	  => 'NEG-PEM',
    self::Tp_NEG_PH     => 'NEG-PH',
    self::Tp_NEG_PID	  => 'NEG-PID',
    self::Tp_NEG_PPH	  => 'NEG-PPH',
    self::Tp_NEG_SA     => 'NEG-SA',
    self::Tp_NEG_SCO	  => 'NEG-SCO',
    self::Tp_NEG_SZC	  => 'NEG-SZC',
    self::Tp_POS_TEMP 	=> 'POS-TEMP',
    self::Tp_POS_PERM	  => 'POS-PERM',
    self::Tp_REV_BA     => 'REV-BA',
    self::Tp_REV_BCO	  => 'REV-BCO',
    self::Tp_REV_BIN	  => 'REV-BIN',
    self::Tp_REV_BINCO	=> 'REV-BINCO',
    self::Tp_REV_BZC	  => 'REV-BZC',
    self::Tp_REV_CC     => 'REV-CC',
    self::Tp_REV_EM     => 'REV-EM',
    self::Tp_REV_EMCO	  => 'REV-EMCO',
    self::Tp_REV_EMDOM	=> 'REV-EMDOM',
    self::Tp_REV_FP     => 'REV-FP',
    self::Tp_REV_ID     => 'REV-ID',
    self::Tp_REV_IP     => 'REV-IP',
    self::Tp_REV_IP3  	=> 'REV-IP3',
    self::Tp_REV_IPCO	  => 'REV-IPCO',
    self::Tp_REV_PEM	  => 'REV-PEM',
    self::Tp_REV_PH     => 'REV-PH',
    self::Tp_REV_PID	  => 'REV-PID',
    self::Tp_REV_PPH	  => 'REV-PPH',
    self::Tp_REV_SA     => 'REV-SA',
    self::Tp_REV_SCO	  => 'REV-SCO',
    self::Tp_REV_SZC	  => 'REV-SZC'
  );

  protected static $description = array(
    self::Tp_CON_POSNEG	=> 'A ordem disparada bate tanto com a lista positiva e negativa. O resultado da lista positiva sobrescreve a lista negativa',	
    self::Tp_NEG_BA	    => 'O endereço de cobrança está na lista negativa',	
    self::Tp_NEG_BCO	  => 'O país do endereço de cobrança está na lista negativa',	
    self::Tp_NEG_BIN	  => 'O BIN do cartão de crédito (os seis primeiros dígitos do número do cartão) está na lista negativa',	
    self::Tp_NEG_BINCO	=> 'O país em que o cartão de crédito foi emitido está na lista negativa',	
    self::Tp_NEG_BZC	  => 'O código postal do endereço de cobrança está na lista negativa',	
    self::Tp_NEG_CC	    => 'O número de cartão de crédito está na lista negativa',	
    self::Tp_NEG_EM     => 'O endereço de e-mail está na lista negativa',	
    self::Tp_NEG_EMCO	  => 'O país em que o endereço de e-mail está localizado na lista negativa',	
    self::Tp_NEG_EMDOM	=> 'O domínio de e-mail (por exemplo, mail.example.com) está na lista negativa',	
    self::Tp_NEG_FP     => 'O device fingerprint está na lista negativa',	
    self::Tp_NEG_HIST	  => 'A transação foi encontrada na lista negativa',	
    self::Tp_NEG_ID     => 'Identificador do comprador (CPF ou CNPJ) está na lista negativa',	
    self::Tp_NEG_IP     => 'O endereço IP (por exemplo, 10.1.27.63) está na lista negativa',	
    self::Tp_NEG_IP3	  => 'O endereço IP de rede (por exemplo, 10.1.27.63) está na lista negativa. Um endereço de IP da rede inclui até 256 endereços IP',	
    self::Tp_NEG_IPCO	  => 'O país em que o endereço IP está localizado está na lista negativa',	
    self::Tp_NEG_PEM	  => 'O endereço de e-mail do passageiro está na lista negativa',	
    self::Tp_NEG_PH     => 'O número do telefone está na lista negativa',	
    self::Tp_NEG_PID	  => 'Identificador do passageiro está na lista negativa',	
    self::Tp_NEG_PPH	  => 'O número do telefone do passageiro está na lista negativa',	
    self::Tp_NEG_SA     => 'O endereço de entrega está na lista negativa',	
    self::Tp_NEG_SCO	  => 'O país do endereço de entrega está na lista negativa',	
    self::Tp_NEG_SZC	  => 'O código postal do endereço de entrega está na lista negativa',	
    self::Tp_POS_TEMP 	=> 'O comprador está temporariamente na lista positiva',	
    self::Tp_POS_PERM	  => 'O comprador está permanente na lista positiva',	
    self::Tp_REV_BA     => 'O endereço de cobrança esta na lista de revisão',	
    self::Tp_REV_BCO	  => 'O país do endereço de cobrança está na lista de revisão',	
    self::Tp_REV_BIN	  => 'O BIN do cartão de crédito (os seis primeiros dígitos do número do cartão) está na lista de revisão',	
    self::Tp_REV_BINCO	=> 'O país em que o cartão de crédito foi emitido está na lista de revisão',	
    self::Tp_REV_BZC	  => 'O código postal do endereço de cobrança está na lista de revisão',	
    self::Tp_REV_CC     => 'O número do cartão de crédito está na lista de revisão',	
    self::Tp_REV_EM     => 'O endereço de e-mail está na lista de revisão',	
    self::Tp_REV_EMCO	  => 'O país em que o endereço de e-mail está localizado está na lista de revisão',	
    self::Tp_REV_EMDOM	=> 'O domínio de e-mail (por exemplo, mail.example.com) está na lista de revisão',	
    self::Tp_REV_FP     => 'O device fingerprint está na lista de revisão',	
    self::Tp_REV_ID     => 'Identificador do comprador (CPF ou CNPJ) está na lista de revisão',	
    self::Tp_REV_IP     => 'O endereço IP (por exemplo, 10.1.27.63) está na lista de revisão',	
    self::Tp_REV_IP3  	=> 'O endereço IP de rede (por exemplo, 10.1.27.63) está na lista de revisão. Um endereço de IP da rede inclui até 256 endereços IP',	
    self::Tp_REV_IPCO	  => 'O país em que o endereço IP está localizado está na lista de revisão',	
    self::Tp_REV_PEM	  => 'O endereço de e-mail do passageiro está na lista de revisão',	
    self::Tp_REV_PH     => 'O número do telefone está na lista de revisão',	
    self::Tp_REV_PID	  => 'Identificador do passageiro está na lista de revisão',	
    self::Tp_REV_PPH	  => 'O número do telefone do passageiro está na lista de revisão',	
    self::Tp_REV_SA     => 'O endereço de entrega está na lista de revisão',	
    self::Tp_REV_SCO	  => 'O país do endereço de entrega está na lista de revisão',	
    self::Tp_REV_SZC	  => 'O código postal do endereço de entrega está na lista de revisão',	  
  );
}

abstract class Type_InternetInfoCode extends EnumBasic{
  const Tp_FREE_EM	  = 1;
  const Tp_INTL_IPCO 	= 2;
  const Tp_INV_EM	   	= 3;
  const Tp_MM_EMBCO  	= 4;
  const Tp_MM_IPBC	  = 5;
  const Tp_MM_IPBCO  	= 6;
  const Tp_MM_IPBST  	= 7;
  const Tp_MM_IPEM	  = 8;
  const Tp_RISK_EM	  = 9;
  const Tp_UNV_NID	  = 10;
  const Tp_UNV_RISK  	= 11;
  const Tp_UNV_EMBCO 	= 12;

  protected static $nickname = array(
    self::Tp_FREE_EM	  =>'FREE-EM',
    self::Tp_INTL_IPCO 	=>'INTL-IPCO',
    self::Tp_INV_EM	   	=>'INV-EM',
    self::Tp_MM_EMBCO  	=>'MM-EMBCO',
    self::Tp_MM_IPBC	  =>'MM-IPBC',
    self::Tp_MM_IPBCO  	=>'MM-IPBCO',
    self::Tp_MM_IPBST  	=>'MM-IPBST',
    self::Tp_MM_IPEM	  =>'MM-IPEM',
    self::Tp_RISK_EM	  =>'RISK-EM',
    self::Tp_UNV_NID	  =>'UNV-NID',
    self::Tp_UNV_RISK  	=>'UNV-RISK',
    self::Tp_UNV_EMBCO 	=>'UNV-EMBCO',  
  );
  
  protected static $description = array(
    self::Tp_FREE_EM	  => 'O endereço de e-mail do comprador é de um provedor de e-mail gratuito',	
    self::Tp_INTL_IPCO	=> 'O país do endereço de e-mail do comprador está fora dos EUA',	
    self::Tp_INV_EM	  	=> 'O endereço de e-mail do comprador é inválido',	
    self::Tp_MM_EMBCO 	=> 'O domínio do endereço de e-mail do comprador não é consistente com o país do endereço de cobrança',	
    self::Tp_MM_IPBC	  => 'O endereço de e-mail do comprador não é consistente com a cidade do endereço de cobrança',	
    self::Tp_MM_IPBCO 	=> 'O endereço de e-mail do comprador não é consistente com o país do endereço de cobrança',	
    self::Tp_MM_IPBST 	=> 'O endereço IP do comprador não é consistente com o estado no endereço de cobrança. No entanto, este código de informação não pode ser devolvido quando a inconsistência é entre estados imediatamente adjacentes',	
    self::Tp_MM_IPEM	  => 'O endereço de e-mail do comprador não é consistente com o endereço IP',	
    self::Tp_RISK_EM	  => 'O domínio do e-mail do comprador (por exemplo, mail.example.com) está associado com alto risco',	
    self::Tp_UNV_NID	  => 'O endereço IP do comprador é de um proxy anônimo. Estas entidades escondem completamente informações sobre o endereço de IP',	
    self::Tp_UNV_RISK 	=> 'O endereço IP é de origem de risco',	
    self::Tp_UNV_EMBCO	=> 'O país do endereço de e-mail não corresponde ao país do endereço de cobrança',	  
  );

}

abstract class Type_VelocityInfoCode extends EnumBasic{
  const Tp_VEL_ADDR = 1;
  const Tp_VEL_CC	  = 2;
  const Tp_VEL_NAME = 3;
  const Tp_VELS_CC  = 4;
  const Tp_VELI_CC  = 5;
  const Tp_VELL_CC  = 6;
  const Tp_VELV_CC  = 7;
  const Tp_VELS_EM  = 8;
  const Tp_VELI_EM  = 9;
  const Tp_VELL_EM  = 10; 
  const Tp_VELV_EM  = 11;
  const Tp_VELS_FP  = 12;
  const Tp_VELI_FP  = 13;
  const Tp_VELL_FP  = 14;
  const Tp_VELV_FP  = 15;
  const Tp_VELS_IP  = 16;
  const Tp_VELI_IP  = 17;
  const Tp_VELL_IP  = 18;
  const Tp_VELV_IP  = 19;
  const Tp_VELS_SA  = 20;
  const Tp_VELI_SA  = 21;
  const Tp_VELL_SA  = 22;
  const Tp_VELV_SA  = 23;
  const Tp_VELS_TIP = 24;
  const Tp_VELI_TIP = 25;
  const Tp_VELL_TIP = 26; 

  protected static $nickname = array(
    self::Tp_VEL_ADDR => 'VEL-ADDR',
    self::Tp_VEL_CC	  => 'VEL-CC',	
    self::Tp_VEL_NAME => 'VEL-NAME',
    self::Tp_VELS_CC  => 'VELS-CC',	
    self::Tp_VELI_CC  => 'VELI-CC',	
    self::Tp_VELL_CC  => 'VELL-CC',	
    self::Tp_VELV_CC  => 'VELV-CC',	
    self::Tp_VELS_EM  => 'VELS-EM',	
    self::Tp_VELI_EM  => 'VELI-EM',	
    self::Tp_VELL_EM  => 'VELL-EM',	
    self::Tp_VELV_EM  => 'VELV-EM',	
    self::Tp_VELS_FP  => 'VELS-FP',	
    self::Tp_VELI_FP  => 'VELI-FP',	
    self::Tp_VELL_FP  => 'VELL-FP',	
    self::Tp_VELV_FP  => 'VELV-FP',	
    self::Tp_VELS_IP  => 'VELS-IP',	
    self::Tp_VELI_IP  => 'VELI-IP',	
    self::Tp_VELL_IP  => 'VELL-IP',	
    self::Tp_VELV_IP  => 'VELV-IP',	
    self::Tp_VELS_SA  => 'VELS-SA',	
    self::Tp_VELI_SA  => 'VELI-SA',	
    self::Tp_VELL_SA  => 'VELL-SA',	
    self::Tp_VELV_SA  => 'VELV-SA',	
    self::Tp_VELS_TIP => 'VELS-TIP',
    self::Tp_VELI_TIP => 'VELI-TIP',
    self::Tp_VELL_TIP => 'VELL-TIP',
  );

  protected static $description = array(
    self::Tp_VEL_ADDR => 'Diferente estados dos endereços de cobrança e/ou entrega (EUA e Canadá apenas) têm sido usadas várias vezes com o número do cartão de crédito e/ou endereço de email',	
    self::Tp_VEL_CC	  => 'Diferentes números de cartões de créditos foram usados várias vezes com o mesmo nome ou endereço de email',	
    self::Tp_VEL_NAME => 'Diferentes nomes foram usados várias vezes com o mesmo número do cartão de crédito e/ou endereço de email',	
    self::Tp_VELS_CC  => 'O número do cartão de crédito tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_CC  => 'O número do cartão de crédito tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_CC  => 'O número do cartão de crédito tem sido utilizado várias vezes durante um intervalo longo',	
    self::Tp_VELV_CC  => 'O número do cartão de crédito tem sido utilizado várias vezes durante um intervalo muito longo',	
    self::Tp_VELS_EM  => 'O endereço de e-mail tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_EM  => 'O endereço de e-mail tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_EM  => 'O endereço de e-mail tem sido utilizado várias vezes durante um intervalo longo',	
    self::Tp_VELV_EM  => 'O endereço de e-mail tem sido utilizado várias vezes durante um intervalo muito longo',	
    self::Tp_VELS_FP  => 'O device fingerprint tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_FP  => 'O device fingerprint tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_FP  => 'O device fingerprint tem sido utilizado várias vezes durante um intervalo longo',	
    self::Tp_VELV_FP  => 'O device fingerprint tem sido utilizado várias vezes durante um intervalo muito longo',	
    self::Tp_VELS_IP  => 'O endereço IP tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_IP  => 'O endereço IP tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_IP  => 'O endereço IP tem sido utilizado várias vezes durante um intervalo longo',	
    self::Tp_VELV_IP  => 'O endereço IP tem sido utilizado várias vezes durante um intervalo muito longo',	
    self::Tp_VELS_SA  => 'O endereço de entrega tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_SA  => 'O endereço de entrega tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_SA  => 'O endereço de entrega tem sido utilizado várias vezes durante um intervalo longo',	
    self::Tp_VELV_SA  => 'O endereço de entrega tem sido utilizado várias vezes durante um intervalo muito longo',	
    self::Tp_VELS_TIP => 'O endereço IP verdadeiro tem sido utilizado várias vezes durante um intervalo curto',	
    self::Tp_VELI_TIP => 'O endereço IP verdadeiro tem sido utilizado várias vezes durante um intervalo médio',	
    self::Tp_VELL_TIP => 'O endereço IP verdadeiro tem sido utilizado várias vezes durante um intervalo longo', 
  );
}  

//AntiFraude



