// ************************************************************************ //
// The types declared in this file were generated from data read from the
// WSDL File described below:
// WSDL     : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>0
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>1
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>2
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>3
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>4
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>5
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>6
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>7
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>8
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>9
//  >Import : https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl>10
// Encoding : utf-8
// Version  : 1.0
// (18/06/2020 13:50:17 - - $Rev: 76228 $)
// ************************************************************************ //

unit uFuncionalSoap3;

interface

uses Soap.InvokeRegistry, Soap.SOAPHTTPClient, System.Types, Soap.XSBuiltIns;

const
  IS_OPTN = $0001;
  IS_UNBD = $0002;
  IS_NLBL = $0004;
  IS_REF  = $0080;


type

  // ************************************************************************ //
  // The following types, referred to in the WSDL document are not being represented
  // in this file. They are either aliases[@] of other types represented or were referred
  // to but never[!] declared in the document. The types from the latter category
  // typically map to predefined/known XML or Embarcadero types; however, they could also 
  // indicate incorrect WSDL documents that failed to declare or import a schema type.
  // ************************************************************************ //
  // !:string          - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:decimal         - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:base64Binary    - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:boolean         - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:int             - "http://www.w3.org/2001/XMLSchema"[Gbl]
  // !:dateTime        - "http://www.w3.org/2001/XMLSchema"[Gbl]

  AuthenticationResponse2 = class;              { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblCplx] }
  DescontoProgOcorrencia2 = class;              { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  Descontocompra2      = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  Mensagem2            = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  Mensagem             = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  Titulo2              = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  Titulo               = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  DescontoCompraConjunta2 = class;              { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  DescontoCompraBonificada2 = class;            { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  DescontoCompraBonificada = class;             { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AuthenticationRequest2 = class;               { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblCplx] }
  DescontoProgOcorrencia = class;               { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  DescontoCompraConjunta = class;               { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  Descontocompra       = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AuthenticationRequest = class;                { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblElm] }
  AuthenticationResponse = class;               { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblElm] }
  ValidationResult2    = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"[GblCplx] }
  GetProgramaProdutoBaseResponse2 = class;      { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso"[GblCplx] }
  ValidationResult     = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"[GblElm] }
  ValidationError2     = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"[GblCplx] }
  ValidationError      = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"[GblElm] }
  DocumentoTransacaoRequest2 = class;           { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"[GblCplx] }
  DocumentoTransacaoRequest = class;            { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"[GblElm] }
  VendaPreAutorizadaProgramaAcessoRequest2 = class;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  VendaPreAutorizadaProgramaAcessoRequest = class;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AtualizaCupomRequest2 = class;                { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AtualizaCupomRequest = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  ApiKey2              = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblCplx] }
  ApiKey               = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"[GblElm] }
  CancelamentoResponse2 = class;                { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  CancelamentoResponse = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  CancelamentoRequest2 = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  CancelamentoRequest  = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  BeneficiarioResponse2 = class;                { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"[GblCplx] }
  BeneficiarioResponse = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"[GblElm] }
  AutorizacaoResponseTransacao2 = class;        { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AutorizacaoResponseTransacao = class;         { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  ResgataPreAutorizacaoResponse2 = class;       { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"[GblCplx] }
  ResgataPreAutorizacaoResponse = class;        { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"[GblElm] }
  AutorizacaoRequest2  = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AutorizacaoRequest   = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AutorizacaoRequestItem2 = class;              { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AutorizacaoRequestItem = class;               { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  Griddesconto2        = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  Griddesconto         = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AutorizacaoResponseItem2 = class;             { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AutorizacaoResponseItem = class;              { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  BeneficiarioResponsePrograma2 = class;        { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"[GblCplx] }
  BeneficiarioResponsePrograma = class;         { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"[GblElm] }
  AutorizacaoResponseItemStatus2 = class;       { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  AutorizacaoResponseItemStatus = class;        { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  ProgramaProdutoBase2 = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblCplx] }
  ProdutoRegraDescontoGridResponse2 = class;    { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ProdutoRegraDescontoGridResponse = class;     { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  GetProgramaProdutoBaseResponse = class;       { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso"[GblElm] }
  ProgramaBase2        = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblCplx] }
  AutorizacaoResponse2 = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  VendaPreAutorizadaResponse2 = class;          { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  VendaPreAutorizadaResponse = class;           { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  AutorizacaoResponse  = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblElm] }
  ProgramaProdutoBase  = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblElm] }
  DadosReceita2        = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblCplx] }
  DadosReceita         = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblElm] }
  ProgramaBase         = class;                 { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblElm] }

  {$SCOPEDENUMS ON}
  { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums"[GblSmpl] }
  TipoDocumentoTransacao = (Outros, Receita, CupomFiscal);

  { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums"[GblSmpl] }
  TipoPrograma = (PBM, ACESSO, REPOSICAO);

  { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums"[GblSmpl] }
  Conselhos = (CRM, CRO);

  {$SCOPEDENUMS OFF}

  ArrayOfDescontoProgOcorrencia = array of DescontoProgOcorrencia2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ArrayOfDescontoCompraConjunta = array of DescontoCompraConjunta2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ArrayOfDescontocompra = array of Descontocompra2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ArrayOfBeneficiarioResponsePrograma = array of BeneficiarioResponsePrograma2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"[GblCplx] }


  // ************************************************************************ //
  // XML       : AuthenticationResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  AuthenticationResponse2 = class(TRemotable)
  private
    FApiKey: ApiKey2;
    FApiKey_Specified: boolean;
    FResultadoValidacao: ValidationResult2;
    FResultadoValidacao_Specified: boolean;
    procedure SetApiKey(Index: Integer; const AApiKey2: ApiKey2);
    function  ApiKey_Specified(Index: Integer): boolean;
    procedure SetResultadoValidacao(Index: Integer; const AValidationResult2: ValidationResult2);
    function  ResultadoValidacao_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property ApiKey:             ApiKey2            Index (IS_OPTN or IS_NLBL) read FApiKey write SetApiKey stored ApiKey_Specified;
    property ResultadoValidacao: ValidationResult2  Index (IS_OPTN or IS_NLBL) read FResultadoValidacao write SetResultadoValidacao stored ResultadoValidacao_Specified;
  end;




  // ************************************************************************ //
  // XML       : DescontoProgOcorrencia, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoProgOcorrencia2 = class(TRemotable)
  private
    FDesconto: string;
    FDesconto_Specified: boolean;
    FEconomiaTotal: string;
    FEconomiaTotal_Specified: boolean;
    FNOcorrencia: string;
    FNOcorrencia_Specified: boolean;
    FQuantidade: string;
    FQuantidade_Specified: boolean;
    FTotalComDesconto: string;
    FTotalComDesconto_Specified: boolean;
    FValorsemDesconto: string;
    FValorsemDesconto_Specified: boolean;
    procedure SetDesconto(Index: Integer; const Astring: string);
    function  Desconto_Specified(Index: Integer): boolean;
    procedure SetEconomiaTotal(Index: Integer; const Astring: string);
    function  EconomiaTotal_Specified(Index: Integer): boolean;
    procedure SetNOcorrencia(Index: Integer; const Astring: string);
    function  NOcorrencia_Specified(Index: Integer): boolean;
    procedure SetQuantidade(Index: Integer; const Astring: string);
    function  Quantidade_Specified(Index: Integer): boolean;
    procedure SetTotalComDesconto(Index: Integer; const Astring: string);
    function  TotalComDesconto_Specified(Index: Integer): boolean;
    procedure SetValorsemDesconto(Index: Integer; const Astring: string);
    function  ValorsemDesconto_Specified(Index: Integer): boolean;
  published
    property Desconto:         string  Index (IS_OPTN or IS_NLBL) read FDesconto write SetDesconto stored Desconto_Specified;
    property EconomiaTotal:    string  Index (IS_OPTN or IS_NLBL) read FEconomiaTotal write SetEconomiaTotal stored EconomiaTotal_Specified;
    property NOcorrencia:      string  Index (IS_OPTN or IS_NLBL) read FNOcorrencia write SetNOcorrencia stored NOcorrencia_Specified;
    property Quantidade:       string  Index (IS_OPTN or IS_NLBL) read FQuantidade write SetQuantidade stored Quantidade_Specified;
    property TotalComDesconto: string  Index (IS_OPTN or IS_NLBL) read FTotalComDesconto write SetTotalComDesconto stored TotalComDesconto_Specified;
    property ValorsemDesconto: string  Index (IS_OPTN or IS_NLBL) read FValorsemDesconto write SetValorsemDesconto stored ValorsemDesconto_Specified;
  end;



  // ************************************************************************ //
  // XML       : Descontocompra, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Descontocompra2 = class(TRemotable)
  private
    FDesconto: string;
    FDesconto_Specified: boolean;
    FEconomiaTotal: string;
    FEconomiaTotal_Specified: boolean;
    FQuantidade: string;
    FQuantidade_Specified: boolean;
    FTotalComDesconto: string;
    FTotalComDesconto_Specified: boolean;
    FValorsemDesconto: string;
    FValorsemDesconto_Specified: boolean;
    procedure SetDesconto(Index: Integer; const Astring: string);
    function  Desconto_Specified(Index: Integer): boolean;
    procedure SetEconomiaTotal(Index: Integer; const Astring: string);
    function  EconomiaTotal_Specified(Index: Integer): boolean;
    procedure SetQuantidade(Index: Integer; const Astring: string);
    function  Quantidade_Specified(Index: Integer): boolean;
    procedure SetTotalComDesconto(Index: Integer; const Astring: string);
    function  TotalComDesconto_Specified(Index: Integer): boolean;
    procedure SetValorsemDesconto(Index: Integer; const Astring: string);
    function  ValorsemDesconto_Specified(Index: Integer): boolean;
  published
    property Desconto:         string  Index (IS_OPTN or IS_NLBL) read FDesconto write SetDesconto stored Desconto_Specified;
    property EconomiaTotal:    string  Index (IS_OPTN or IS_NLBL) read FEconomiaTotal write SetEconomiaTotal stored EconomiaTotal_Specified;
    property Quantidade:       string  Index (IS_OPTN or IS_NLBL) read FQuantidade write SetQuantidade stored Quantidade_Specified;
    property TotalComDesconto: string  Index (IS_OPTN or IS_NLBL) read FTotalComDesconto write SetTotalComDesconto stored TotalComDesconto_Specified;
    property ValorsemDesconto: string  Index (IS_OPTN or IS_NLBL) read FValorsemDesconto write SetValorsemDesconto stored ValorsemDesconto_Specified;
  end;



  // ************************************************************************ //
  // XML       : Mensagem, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Mensagem2 = class(TRemotable)
  private
    FMensgagemHTML: string;
    FMensgagemHTML_Specified: boolean;
    procedure SetMensgagemHTML(Index: Integer; const Astring: string);
    function  MensgagemHTML_Specified(Index: Integer): boolean;
  published
    property MensgagemHTML: string  Index (IS_OPTN or IS_NLBL) read FMensgagemHTML write SetMensgagemHTML stored MensgagemHTML_Specified;
  end;



  // ************************************************************************ //
  // XML       : Mensagem, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Mensagem = class(Mensagem2)
  private
  published
  end;


  // ************************************************************************ //
  // XML       : Titulo, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Titulo2 = class(TRemotable)
  private
    FApresentacao: string;
    FApresentacao_Specified: boolean;
    FEAN: string;
    FEAN_Specified: boolean;
    FmsgDesligamentoPopUpDesconto: string;
    FmsgDesligamentoPopUpDesconto_Specified: boolean;
    FnomeProduto: string;
    FnomeProduto_Specified: boolean;
    procedure SetApresentacao(Index: Integer; const Astring: string);
    function  Apresentacao_Specified(Index: Integer): boolean;
    procedure SetEAN(Index: Integer; const Astring: string);
    function  EAN_Specified(Index: Integer): boolean;
    procedure SetmsgDesligamentoPopUpDesconto(Index: Integer; const Astring: string);
    function  msgDesligamentoPopUpDesconto_Specified(Index: Integer): boolean;
    procedure SetnomeProduto(Index: Integer; const Astring: string);
    function  nomeProduto_Specified(Index: Integer): boolean;
  published
    property Apresentacao:                 string  Index (IS_OPTN or IS_NLBL) read FApresentacao write SetApresentacao stored Apresentacao_Specified;
    property EAN:                          string  Index (IS_OPTN or IS_NLBL) read FEAN write SetEAN stored EAN_Specified;
    property msgDesligamentoPopUpDesconto: string  Index (IS_OPTN or IS_NLBL) read FmsgDesligamentoPopUpDesconto write SetmsgDesligamentoPopUpDesconto stored msgDesligamentoPopUpDesconto_Specified;
    property nomeProduto:                  string  Index (IS_OPTN or IS_NLBL) read FnomeProduto write SetnomeProduto stored nomeProduto_Specified;
  end;



  // ************************************************************************ //
  // XML       : Titulo, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Titulo = class(Titulo2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : DescontoCompraConjunta, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoCompraConjunta2 = class(TRemotable)
  private
    FCondicao: string;
    FCondicao_Specified: boolean;
    FDescontonoProduto: string;
    FDescontonoProduto_Specified: boolean;
    FEconomiaTotal: string;
    FEconomiaTotal_Specified: boolean;
    FProdutoComDesconto: string;
    FProdutoComDesconto_Specified: boolean;
    FTotalComDesconto: string;
    FTotalComDesconto_Specified: boolean;
    procedure SetCondicao(Index: Integer; const Astring: string);
    function  Condicao_Specified(Index: Integer): boolean;
    procedure SetDescontonoProduto(Index: Integer; const Astring: string);
    function  DescontonoProduto_Specified(Index: Integer): boolean;
    procedure SetEconomiaTotal(Index: Integer; const Astring: string);
    function  EconomiaTotal_Specified(Index: Integer): boolean;
    procedure SetProdutoComDesconto(Index: Integer; const Astring: string);
    function  ProdutoComDesconto_Specified(Index: Integer): boolean;
    procedure SetTotalComDesconto(Index: Integer; const Astring: string);
    function  TotalComDesconto_Specified(Index: Integer): boolean;
  published
    property Condicao:           string  Index (IS_OPTN or IS_NLBL) read FCondicao write SetCondicao stored Condicao_Specified;
    property DescontonoProduto:  string  Index (IS_OPTN or IS_NLBL) read FDescontonoProduto write SetDescontonoProduto stored DescontonoProduto_Specified;
    property EconomiaTotal:      string  Index (IS_OPTN or IS_NLBL) read FEconomiaTotal write SetEconomiaTotal stored EconomiaTotal_Specified;
    property ProdutoComDesconto: string  Index (IS_OPTN or IS_NLBL) read FProdutoComDesconto write SetProdutoComDesconto stored ProdutoComDesconto_Specified;
    property TotalComDesconto:   string  Index (IS_OPTN or IS_NLBL) read FTotalComDesconto write SetTotalComDesconto stored TotalComDesconto_Specified;
  end;



  // ************************************************************************ //
  // XML       : DescontoCompraBonificada, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoCompraBonificada2 = class(TRemotable)
  private
    FCompre: string;
    FCompre_Specified: boolean;
    FEconomiaTotal: string;
    FEconomiaTotal_Specified: boolean;
    FGanhe: string;
    FGanhe_Specified: boolean;
    FQuantidade: string;
    FQuantidade_Specified: boolean;
    FTotalComDesconto: string;
    FTotalComDesconto_Specified: boolean;
    procedure SetCompre(Index: Integer; const Astring: string);
    function  Compre_Specified(Index: Integer): boolean;
    procedure SetEconomiaTotal(Index: Integer; const Astring: string);
    function  EconomiaTotal_Specified(Index: Integer): boolean;
    procedure SetGanhe(Index: Integer; const Astring: string);
    function  Ganhe_Specified(Index: Integer): boolean;
    procedure SetQuantidade(Index: Integer; const Astring: string);
    function  Quantidade_Specified(Index: Integer): boolean;
    procedure SetTotalComDesconto(Index: Integer; const Astring: string);
    function  TotalComDesconto_Specified(Index: Integer): boolean;
  published
    property Compre:           string  Index (IS_OPTN or IS_NLBL) read FCompre write SetCompre stored Compre_Specified;
    property EconomiaTotal:    string  Index (IS_OPTN or IS_NLBL) read FEconomiaTotal write SetEconomiaTotal stored EconomiaTotal_Specified;
    property Ganhe:            string  Index (IS_OPTN or IS_NLBL) read FGanhe write SetGanhe stored Ganhe_Specified;
    property Quantidade:       string  Index (IS_OPTN or IS_NLBL) read FQuantidade write SetQuantidade stored Quantidade_Specified;
    property TotalComDesconto: string  Index (IS_OPTN or IS_NLBL) read FTotalComDesconto write SetTotalComDesconto stored TotalComDesconto_Specified;
  end;



  // ************************************************************************ //
  // XML       : DescontoCompraBonificada, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoCompraBonificada = class(DescontoCompraBonificada2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AuthenticationRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  AuthenticationRequest2 = class(TRemotable)
  private
    FLogin: string;
    FLogin_Specified: boolean;
    FPassword: string;
    FPassword_Specified: boolean;
    procedure SetLogin(Index: Integer; const Astring: string);
    function  Login_Specified(Index: Integer): boolean;
    procedure SetPassword(Index: Integer; const Astring: string);
    function  Password_Specified(Index: Integer): boolean;
  published
    property Login:    string  Index (IS_OPTN or IS_NLBL) read FLogin write SetLogin stored Login_Specified;
    property Password: string  Index (IS_OPTN or IS_NLBL) read FPassword write SetPassword stored Password_Specified;
  end;



  // ************************************************************************ //
  // XML       : DescontoProgOcorrencia, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoProgOcorrencia = class(DescontoProgOcorrencia2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : DescontoCompraConjunta, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  DescontoCompraConjunta = class(DescontoCompraConjunta2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Descontocompra, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Descontocompra = class(Descontocompra2)
  private
  published
  end;

  ArrayOfDescontoCompraBonificada = array of DescontoCompraBonificada2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }


  // ************************************************************************ //
  // XML       : AuthenticationRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  AuthenticationRequest = class(AuthenticationRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AuthenticationResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  AuthenticationResponse = class(AuthenticationResponse2)
  private
  published
  end;

  ArrayOfProdutoRegraDescontoGridResponse = array of ProdutoRegraDescontoGridResponse2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ArrayOfProgramaBase = array of ProgramaBase2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblCplx] }
  ArrayOfValidationError = array of ValidationError2;   { "http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"[GblCplx] }


  // ************************************************************************ //
  // XML       : ValidationResult, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations
  // ************************************************************************ //
  ValidationResult2 = class(TRemotable)
  private
    FErrors: ArrayOfValidationError;
    FErrors_Specified: boolean;
    FIsValid: Boolean;
    FIsValid_Specified: boolean;
    FMessage_: string;
    FMessage__Specified: boolean;
    procedure SetErrors(Index: Integer; const AArrayOfValidationError: ArrayOfValidationError);
    function  Errors_Specified(Index: Integer): boolean;
    procedure SetIsValid(Index: Integer; const ABoolean: Boolean);
    function  IsValid_Specified(Index: Integer): boolean;
    procedure SetMessage_(Index: Integer; const Astring: string);
    function  Message__Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Errors:   ArrayOfValidationError  Index (IS_OPTN or IS_NLBL) read FErrors write SetErrors stored Errors_Specified;
    property IsValid:  Boolean                 Index (IS_OPTN) read FIsValid write SetIsValid stored IsValid_Specified;
    property Message_: string                  Index (IS_OPTN or IS_NLBL) read FMessage_ write SetMessage_ stored Message__Specified;
  end;



  // ************************************************************************ //
  // XML       : GetProgramaProdutoBaseResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso
  // ************************************************************************ //
  GetProgramaProdutoBaseResponse2 = class(ValidationResult2)
  private
    FProgramas: ArrayOfProgramaBase;
    FProgramas_Specified: boolean;
    procedure SetProgramas(Index: Integer; const AArrayOfProgramaBase: ArrayOfProgramaBase);
    function  Programas_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Programas: ArrayOfProgramaBase  Index (IS_OPTN or IS_NLBL) read FProgramas write SetProgramas stored Programas_Specified;
  end;



  // ************************************************************************ //
  // XML       : ValidationResult, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations
  // ************************************************************************ //
  ValidationResult = class(ValidationResult2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ValidationError, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations
  // ************************************************************************ //
  ValidationError2 = class(TRemotable)
  private
    FMessage_: string;
    FMessage__Specified: boolean;
    FStatusCode: Integer;
    FStatusCode_Specified: boolean;
    procedure SetMessage_(Index: Integer; const Astring: string);
    function  Message__Specified(Index: Integer): boolean;
    procedure SetStatusCode(Index: Integer; const AInteger: Integer);
    function  StatusCode_Specified(Index: Integer): boolean;
  published
    property Message_:   string   Index (IS_OPTN or IS_NLBL) read FMessage_ write SetMessage_ stored Message__Specified;
    property StatusCode: Integer  Index (IS_OPTN) read FStatusCode write SetStatusCode stored StatusCode_Specified;
  end;



  // ************************************************************************ //
  // XML       : ValidationError, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations
  // ************************************************************************ //
  ValidationError = class(ValidationError2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : DocumentoTransacaoRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao
  // ************************************************************************ //
  DocumentoTransacaoRequest2 = class(TRemotable)
  private
    FDataAutorizacao: TXSDateTime;
    FDataAutorizacao_Specified: boolean;
    FNumeroAutorizacao: Integer;
    FNumeroAutorizacao_Specified: boolean;
    FNumeroSequencial: Integer;
    FNumeroSequencial_Specified: boolean;
    FTipo: TipoDocumentoTransacao;
    FTipo_Specified: boolean;
    FFileName: string;
    FFileName_Specified: boolean;
    FConteudo: TByteDynArray;
    FConteudo_Specified: boolean;
    procedure SetDataAutorizacao(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
    function  NumeroAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroSequencial(Index: Integer; const AInteger: Integer);
    function  NumeroSequencial_Specified(Index: Integer): boolean;
    procedure SetTipo(Index: Integer; const ATipoDocumentoTransacao: TipoDocumentoTransacao);
    function  Tipo_Specified(Index: Integer): boolean;
    procedure SetFileName(Index: Integer; const Astring: string);
    function  FileName_Specified(Index: Integer): boolean;
    procedure SetConteudo(Index: Integer; const ATByteDynArray: TByteDynArray);
    function  Conteudo_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DataAutorizacao:   TXSDateTime             Index (IS_OPTN) read FDataAutorizacao write SetDataAutorizacao stored DataAutorizacao_Specified;
    property NumeroAutorizacao: Integer                 Index (IS_OPTN) read FNumeroAutorizacao write SetNumeroAutorizacao stored NumeroAutorizacao_Specified;
    property NumeroSequencial:  Integer                 Index (IS_OPTN) read FNumeroSequencial write SetNumeroSequencial stored NumeroSequencial_Specified;
    property Tipo:              TipoDocumentoTransacao  Index (IS_OPTN) read FTipo write SetTipo stored Tipo_Specified;
    property FileName:          string                  Index (IS_OPTN or IS_NLBL) read FFileName write SetFileName stored FileName_Specified;
    property Conteudo:          TByteDynArray           Index (IS_OPTN or IS_NLBL) read FConteudo write SetConteudo stored Conteudo_Specified;
  end;



  // ************************************************************************ //
  // XML       : DocumentoTransacaoRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao
  // ************************************************************************ //
  DocumentoTransacaoRequest = class(DocumentoTransacaoRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : VendaPreAutorizadaProgramaAcessoRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  VendaPreAutorizadaProgramaAcessoRequest2 = class(TRemotable)
  private
    FNumeroAutorizacao: Integer;
    FNumeroAutorizacao_Specified: boolean;
    FNumeroSequencial: Integer;
    FNumeroSequencial_Specified: boolean;
    FDataHora: TXSDateTime;
    FDataHora_Specified: boolean;
    procedure SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
    function  NumeroAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroSequencial(Index: Integer; const AInteger: Integer);
    function  NumeroSequencial_Specified(Index: Integer): boolean;
    procedure SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataHora_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property NumeroAutorizacao: Integer      Index (IS_OPTN) read FNumeroAutorizacao write SetNumeroAutorizacao stored NumeroAutorizacao_Specified;
    property NumeroSequencial:  Integer      Index (IS_OPTN) read FNumeroSequencial write SetNumeroSequencial stored NumeroSequencial_Specified;
    property DataHora:          TXSDateTime  Index (IS_OPTN) read FDataHora write SetDataHora stored DataHora_Specified;
  end;



  // ************************************************************************ //
  // XML       : VendaPreAutorizadaProgramaAcessoRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  VendaPreAutorizadaProgramaAcessoRequest = class(VendaPreAutorizadaProgramaAcessoRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AtualizaCupomRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AtualizaCupomRequest2 = class(TRemotable)
  private
    FNumeroAutorizacao: Integer;
    FNumeroAutorizacao_Specified: boolean;
    FDataAutorizacao: TXSDateTime;
    FDataAutorizacao_Specified: boolean;
    FNumeroCartao: string;
    FNumeroCartao_Specified: boolean;
    FDocumentoFiscal: string;
    FDocumentoFiscal_Specified: boolean;
    procedure SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
    function  NumeroAutorizacao_Specified(Index: Integer): boolean;
    procedure SetDataAutorizacao(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroCartao(Index: Integer; const Astring: string);
    function  NumeroCartao_Specified(Index: Integer): boolean;
    procedure SetDocumentoFiscal(Index: Integer; const Astring: string);
    function  DocumentoFiscal_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property NumeroAutorizacao: Integer      Index (IS_OPTN) read FNumeroAutorizacao write SetNumeroAutorizacao stored NumeroAutorizacao_Specified;
    property DataAutorizacao:   TXSDateTime  Index (IS_OPTN) read FDataAutorizacao write SetDataAutorizacao stored DataAutorizacao_Specified;
    property NumeroCartao:      string       Index (IS_OPTN or IS_NLBL) read FNumeroCartao write SetNumeroCartao stored NumeroCartao_Specified;
    property DocumentoFiscal:   string       Index (IS_OPTN or IS_NLBL) read FDocumentoFiscal write SetDocumentoFiscal stored DocumentoFiscal_Specified;
  end;



  // ************************************************************************ //
  // XML       : AtualizaCupomRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AtualizaCupomRequest = class(AtualizaCupomRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ApiKey, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  ApiKey2 = class(TRemotable)
  private
    FDataExpiracao: TXSDateTime;
    FDataExpiracao_Specified: boolean;
    FKey: string;
    FKey_Specified: boolean;
    procedure SetDataExpiracao(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataExpiracao_Specified(Index: Integer): boolean;
    procedure SetKey(Index: Integer; const Astring: string);
    function  Key_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DataExpiracao: TXSDateTime  Index (IS_OPTN) read FDataExpiracao write SetDataExpiracao stored DataExpiracao_Specified;
    property Key:           string       Index (IS_OPTN or IS_NLBL) read FKey write SetKey stored Key_Specified;
  end;



  // ************************************************************************ //
  // XML       : ApiKey, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication
  // ************************************************************************ //
  ApiKey = class(ApiKey2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : CancelamentoResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  CancelamentoResponse2 = class(ValidationResult2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : CancelamentoResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  CancelamentoResponse = class(CancelamentoResponse2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : CancelamentoRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  CancelamentoRequest2 = class(TRemotable)
  private
    FDataHora: TXSDateTime;
    FDataHora_Specified: boolean;
    FNumeroAutorizacao: Integer;
    FNumeroAutorizacao_Specified: boolean;
    FNumeroCartao: string;
    FNumeroCartao_Specified: boolean;
    FNumeroSequencial: Integer;
    FNumeroSequencial_Specified: boolean;
    FValorTransacao: TXSDecimal;
    FValorTransacao_Specified: boolean;
    procedure SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataHora_Specified(Index: Integer): boolean;
    procedure SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
    function  NumeroAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroCartao(Index: Integer; const Astring: string);
    function  NumeroCartao_Specified(Index: Integer): boolean;
    procedure SetNumeroSequencial(Index: Integer; const AInteger: Integer);
    function  NumeroSequencial_Specified(Index: Integer): boolean;
    procedure SetValorTransacao(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTransacao_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DataHora:          TXSDateTime  Index (IS_OPTN) read FDataHora write SetDataHora stored DataHora_Specified;
    property NumeroAutorizacao: Integer      Index (IS_OPTN) read FNumeroAutorizacao write SetNumeroAutorizacao stored NumeroAutorizacao_Specified;
    property NumeroCartao:      string       Index (IS_OPTN or IS_NLBL) read FNumeroCartao write SetNumeroCartao stored NumeroCartao_Specified;
    property NumeroSequencial:  Integer      Index (IS_OPTN) read FNumeroSequencial write SetNumeroSequencial stored NumeroSequencial_Specified;
    property ValorTransacao:    TXSDecimal   Index (IS_OPTN) read FValorTransacao write SetValorTransacao stored ValorTransacao_Specified;
  end;



  // ************************************************************************ //
  // XML       : CancelamentoRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  CancelamentoRequest = class(CancelamentoRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : BeneficiarioResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico
  // ************************************************************************ //
  BeneficiarioResponse2 = class(ValidationResult2)
  private
    FNome: string;
    FNome_Specified: boolean;
    FNumeroCartao: string;
    FNumeroCartao_Specified: boolean;
    FProgramas: ArrayOfBeneficiarioResponsePrograma;
    FProgramas_Specified: boolean;
    procedure SetNome(Index: Integer; const Astring: string);
    function  Nome_Specified(Index: Integer): boolean;
    procedure SetNumeroCartao(Index: Integer; const Astring: string);
    function  NumeroCartao_Specified(Index: Integer): boolean;
    procedure SetProgramas(Index: Integer; const AArrayOfBeneficiarioResponsePrograma: ArrayOfBeneficiarioResponsePrograma);
    function  Programas_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Nome:         string                               Index (IS_OPTN or IS_NLBL) read FNome write SetNome stored Nome_Specified;
    property NumeroCartao: string                               Index (IS_OPTN or IS_NLBL) read FNumeroCartao write SetNumeroCartao stored NumeroCartao_Specified;
    property Programas:    ArrayOfBeneficiarioResponsePrograma  Index (IS_OPTN or IS_NLBL) read FProgramas write SetProgramas stored Programas_Specified;
  end;



  // ************************************************************************ //
  // XML       : BeneficiarioResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico
  // ************************************************************************ //
  BeneficiarioResponse = class(BeneficiarioResponse2)
  private
  published
  end;

  ArrayOfAutorizacaoResponseItem = array of AutorizacaoResponseItem2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }


  // ************************************************************************ //
  // XML       : AutorizacaoResponseTransacao, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseTransacao2 = class(TRemotable)
  private
    FAprovada: Boolean;
    FAprovada_Specified: boolean;
    FNumeroAutorizacao: Integer;
    FNumeroAutorizacao_Specified: boolean;
    FNumeroSequencial: Integer;
    FNumeroSequencial_Specified: boolean;
    FDataHora: TXSDateTime;
    FDataHora_Specified: boolean;
    FValorTotal: TXSDecimal;
    FValorTotal_Specified: boolean;
    FValorVista: TXSDecimal;
    FValorVista_Specified: boolean;
    FValorCartao: TXSDecimal;
    FValorCartao_Specified: boolean;
    FValorTotalPMC: TXSDecimal;
    FValorTotalPMC_Specified: boolean;
    FValorTotalComReceita: TXSDecimal;
    FValorTotalComReceita_Specified: boolean;
    FValorTotalSemReceita: TXSDecimal;
    FValorTotalSemReceita_Specified: boolean;
    FValorTotalDesconto: TXSDecimal;
    FValorTotalDesconto_Specified: boolean;
    FItens: ArrayOfAutorizacaoResponseItem;
    FItens_Specified: boolean;
    FCodigoPlano: string;
    FCodigoPlano_Specified: boolean;
    FObrigatorioUploadReceita: Boolean;
    FObrigatorioUploadReceita_Specified: boolean;
    procedure SetAprovada(Index: Integer; const ABoolean: Boolean);
    function  Aprovada_Specified(Index: Integer): boolean;
    procedure SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
    function  NumeroAutorizacao_Specified(Index: Integer): boolean;
    procedure SetNumeroSequencial(Index: Integer; const AInteger: Integer);
    function  NumeroSequencial_Specified(Index: Integer): boolean;
    procedure SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataHora_Specified(Index: Integer): boolean;
    procedure SetValorTotal(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTotal_Specified(Index: Integer): boolean;
    procedure SetValorVista(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorVista_Specified(Index: Integer): boolean;
    procedure SetValorCartao(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorCartao_Specified(Index: Integer): boolean;
    procedure SetValorTotalPMC(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTotalPMC_Specified(Index: Integer): boolean;
    procedure SetValorTotalComReceita(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTotalComReceita_Specified(Index: Integer): boolean;
    procedure SetValorTotalSemReceita(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTotalSemReceita_Specified(Index: Integer): boolean;
    procedure SetValorTotalDesconto(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  ValorTotalDesconto_Specified(Index: Integer): boolean;
    procedure SetItens(Index: Integer; const AArrayOfAutorizacaoResponseItem: ArrayOfAutorizacaoResponseItem);
    function  Itens_Specified(Index: Integer): boolean;
    procedure SetCodigoPlano(Index: Integer; const Astring: string);
    function  CodigoPlano_Specified(Index: Integer): boolean;
    procedure SetObrigatorioUploadReceita(Index: Integer; const ABoolean: Boolean);
    function  ObrigatorioUploadReceita_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Aprovada:                 Boolean                         Index (IS_OPTN) read FAprovada write SetAprovada stored Aprovada_Specified;
    property NumeroAutorizacao:        Integer                         Index (IS_OPTN) read FNumeroAutorizacao write SetNumeroAutorizacao stored NumeroAutorizacao_Specified;
    property NumeroSequencial:         Integer                         Index (IS_OPTN) read FNumeroSequencial write SetNumeroSequencial stored NumeroSequencial_Specified;
    property DataHora:                 TXSDateTime                     Index (IS_OPTN) read FDataHora write SetDataHora stored DataHora_Specified;
    property ValorTotal:               TXSDecimal                      Index (IS_OPTN) read FValorTotal write SetValorTotal stored ValorTotal_Specified;
    property ValorVista:               TXSDecimal                      Index (IS_OPTN) read FValorVista write SetValorVista stored ValorVista_Specified;
    property ValorCartao:              TXSDecimal                      Index (IS_OPTN) read FValorCartao write SetValorCartao stored ValorCartao_Specified;
    property ValorTotalPMC:            TXSDecimal                      Index (IS_OPTN) read FValorTotalPMC write SetValorTotalPMC stored ValorTotalPMC_Specified;
    property ValorTotalComReceita:     TXSDecimal                      Index (IS_OPTN) read FValorTotalComReceita write SetValorTotalComReceita stored ValorTotalComReceita_Specified;
    property ValorTotalSemReceita:     TXSDecimal                      Index (IS_OPTN) read FValorTotalSemReceita write SetValorTotalSemReceita stored ValorTotalSemReceita_Specified;
    property ValorTotalDesconto:       TXSDecimal                      Index (IS_OPTN) read FValorTotalDesconto write SetValorTotalDesconto stored ValorTotalDesconto_Specified;
    property Itens:                    ArrayOfAutorizacaoResponseItem  Index (IS_OPTN or IS_NLBL) read FItens write SetItens stored Itens_Specified;
    property CodigoPlano:              string                          Index (IS_OPTN or IS_NLBL) read FCodigoPlano write SetCodigoPlano stored CodigoPlano_Specified;
    property ObrigatorioUploadReceita: Boolean                         Index (IS_OPTN) read FObrigatorioUploadReceita write SetObrigatorioUploadReceita stored ObrigatorioUploadReceita_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponseTransacao, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseTransacao = class(AutorizacaoResponseTransacao2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ResgataPreAutorizacaoResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao
  // ************************************************************************ //
  ResgataPreAutorizacaoResponse2 = class(ValidationResult2)
  private
    FItens: ArrayOfAutorizacaoResponseItem;
    FItens_Specified: boolean;
    procedure SetItens(Index: Integer; const AArrayOfAutorizacaoResponseItem: ArrayOfAutorizacaoResponseItem);
    function  Itens_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Itens: ArrayOfAutorizacaoResponseItem  Index (IS_OPTN or IS_NLBL) read FItens write SetItens stored Itens_Specified;
  end;



  // ************************************************************************ //
  // XML       : ResgataPreAutorizacaoResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao
  // ************************************************************************ //
  ResgataPreAutorizacaoResponse = class(ResgataPreAutorizacaoResponse2)
  private
  published
  end;

  ArrayOfAutorizacaoRequestItem = array of AutorizacaoRequestItem2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }


  // ************************************************************************ //
  // XML       : AutorizacaoRequest, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoRequest2 = class(TRemotable)
  private
    FNumeroCartao: string;
    FNumeroCartao_Specified: boolean;
    FItens: ArrayOfAutorizacaoRequestItem;
    FItens_Specified: boolean;
    procedure SetNumeroCartao(Index: Integer; const Astring: string);
    function  NumeroCartao_Specified(Index: Integer): boolean;
    procedure SetItens(Index: Integer; const AArrayOfAutorizacaoRequestItem: ArrayOfAutorizacaoRequestItem);
    function  Itens_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property NumeroCartao: string                         Index (IS_OPTN or IS_NLBL) read FNumeroCartao write SetNumeroCartao stored NumeroCartao_Specified;
    property Itens:        ArrayOfAutorizacaoRequestItem  Index (IS_OPTN or IS_NLBL) read FItens write SetItens stored Itens_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoRequest, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoRequest = class(AutorizacaoRequest2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoRequestItem, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoRequestItem2 = class(TRemotable)
  private
    FEAN: string;
    FEAN_Specified: boolean;
    FPreco: TXSDecimal;
    FPreco_Specified: boolean;
    FQuantidadeVenda: Integer;
    FQuantidadeVenda_Specified: boolean;
    FReceita: DadosReceita2;
    FReceita_Specified: boolean;
    procedure SetEAN(Index: Integer; const Astring: string);
    function  EAN_Specified(Index: Integer): boolean;
    procedure SetPreco(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  Preco_Specified(Index: Integer): boolean;
    procedure SetQuantidadeVenda(Index: Integer; const AInteger: Integer);
    function  QuantidadeVenda_Specified(Index: Integer): boolean;
    procedure SetReceita(Index: Integer; const ADadosReceita2: DadosReceita2);
    function  Receita_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property EAN:             string         Index (IS_OPTN or IS_NLBL) read FEAN write SetEAN stored EAN_Specified;
    property Preco:           TXSDecimal     Index (IS_OPTN) read FPreco write SetPreco stored Preco_Specified;
    property QuantidadeVenda: Integer        Index (IS_OPTN) read FQuantidadeVenda write SetQuantidadeVenda stored QuantidadeVenda_Specified;
    property Receita:         DadosReceita2  Index (IS_OPTN or IS_NLBL) read FReceita write SetReceita stored Receita_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoRequestItem, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoRequestItem = class(AutorizacaoRequestItem2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : Griddesconto, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Griddesconto2 = class(TRemotable)
  private
    FDescontoCompraBonificada: ArrayOfDescontoCompraBonificada;
    FDescontoCompraBonificada_Specified: boolean;
    FDescontoCompraConjunta: ArrayOfDescontoCompraConjunta;
    FDescontoCompraConjunta_Specified: boolean;
    FDescontoCompraDiferente: ArrayOfDescontocompra;
    FDescontoCompraDiferente_Specified: boolean;
    FDescontoLinear: ArrayOfDescontocompra;
    FDescontoLinear_Specified: boolean;
    FDescontoMesmaCompra: ArrayOfDescontocompra;
    FDescontoMesmaCompra_Specified: boolean;
    FDescontoProgOcorrencia: ArrayOfDescontoProgOcorrencia;
    FDescontoProgOcorrencia_Specified: boolean;
    FPrimeiraCompra: ArrayOfDescontocompra;
    FPrimeiraCompra_Specified: boolean;
    procedure SetDescontoCompraBonificada(Index: Integer; const AArrayOfDescontoCompraBonificada: ArrayOfDescontoCompraBonificada);
    function  DescontoCompraBonificada_Specified(Index: Integer): boolean;
    procedure SetDescontoCompraConjunta(Index: Integer; const AArrayOfDescontoCompraConjunta: ArrayOfDescontoCompraConjunta);
    function  DescontoCompraConjunta_Specified(Index: Integer): boolean;
    procedure SetDescontoCompraDiferente(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
    function  DescontoCompraDiferente_Specified(Index: Integer): boolean;
    procedure SetDescontoLinear(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
    function  DescontoLinear_Specified(Index: Integer): boolean;
    procedure SetDescontoMesmaCompra(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
    function  DescontoMesmaCompra_Specified(Index: Integer): boolean;
    procedure SetDescontoProgOcorrencia(Index: Integer; const AArrayOfDescontoProgOcorrencia: ArrayOfDescontoProgOcorrencia);
    function  DescontoProgOcorrencia_Specified(Index: Integer): boolean;
    procedure SetPrimeiraCompra(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
    function  PrimeiraCompra_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property DescontoCompraBonificada: ArrayOfDescontoCompraBonificada  Index (IS_OPTN or IS_NLBL) read FDescontoCompraBonificada write SetDescontoCompraBonificada stored DescontoCompraBonificada_Specified;
    property DescontoCompraConjunta:   ArrayOfDescontoCompraConjunta    Index (IS_OPTN or IS_NLBL) read FDescontoCompraConjunta write SetDescontoCompraConjunta stored DescontoCompraConjunta_Specified;
    property DescontoCompraDiferente:  ArrayOfDescontocompra            Index (IS_OPTN or IS_NLBL) read FDescontoCompraDiferente write SetDescontoCompraDiferente stored DescontoCompraDiferente_Specified;
    property DescontoLinear:           ArrayOfDescontocompra            Index (IS_OPTN or IS_NLBL) read FDescontoLinear write SetDescontoLinear stored DescontoLinear_Specified;
    property DescontoMesmaCompra:      ArrayOfDescontocompra            Index (IS_OPTN or IS_NLBL) read FDescontoMesmaCompra write SetDescontoMesmaCompra stored DescontoMesmaCompra_Specified;
    property DescontoProgOcorrencia:   ArrayOfDescontoProgOcorrencia    Index (IS_OPTN or IS_NLBL) read FDescontoProgOcorrencia write SetDescontoProgOcorrencia stored DescontoProgOcorrencia_Specified;
    property PrimeiraCompra:           ArrayOfDescontocompra            Index (IS_OPTN or IS_NLBL) read FPrimeiraCompra write SetPrimeiraCompra stored PrimeiraCompra_Specified;
  end;



  // ************************************************************************ //
  // XML       : Griddesconto, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  Griddesconto = class(Griddesconto2)
  private
  published
  end;

  ArrayOfMensagem = array of Mensagem2;         { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }
  ArrayOfTitulo = array of Titulo2;             { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"[GblCplx] }


  // ************************************************************************ //
  // XML       : AutorizacaoResponseItem, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseItem2 = class(TRemotable)
  private
    FTipoPrograma: TipoPrograma;
    FTipoPrograma_Specified: boolean;
    FEAN: string;
    FEAN_Specified: boolean;
    FDescricao: string;
    FDescricao_Specified: boolean;
    FPrecoMaximoConsumidor: TXSDecimal;
    FPrecoMaximoConsumidor_Specified: boolean;
    FPrecoRecebido: TXSDecimal;
    FPrecoRecebido_Specified: boolean;
    FPrecoFuncional: TXSDecimal;
    FPrecoFuncional_Specified: boolean;
    FPrecoVenda: TXSDecimal;
    FPrecoVenda_Specified: boolean;
    FQuantidadeVenda: Integer;
    FQuantidadeVenda_Specified: boolean;
    FReceita: DadosReceita2;
    FReceita_Specified: boolean;
    FStatus: AutorizacaoResponseItemStatus2;
    FStatus_Specified: boolean;
    procedure SetTipoPrograma(Index: Integer; const ATipoPrograma: TipoPrograma);
    function  TipoPrograma_Specified(Index: Integer): boolean;
    procedure SetEAN(Index: Integer; const Astring: string);
    function  EAN_Specified(Index: Integer): boolean;
    procedure SetDescricao(Index: Integer; const Astring: string);
    function  Descricao_Specified(Index: Integer): boolean;
    procedure SetPrecoMaximoConsumidor(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  PrecoMaximoConsumidor_Specified(Index: Integer): boolean;
    procedure SetPrecoRecebido(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  PrecoRecebido_Specified(Index: Integer): boolean;
    procedure SetPrecoFuncional(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  PrecoFuncional_Specified(Index: Integer): boolean;
    procedure SetPrecoVenda(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  PrecoVenda_Specified(Index: Integer): boolean;
    procedure SetQuantidadeVenda(Index: Integer; const AInteger: Integer);
    function  QuantidadeVenda_Specified(Index: Integer): boolean;
    procedure SetReceita(Index: Integer; const ADadosReceita2: DadosReceita2);
    function  Receita_Specified(Index: Integer): boolean;
    procedure SetStatus(Index: Integer; const AAutorizacaoResponseItemStatus2: AutorizacaoResponseItemStatus2);
    function  Status_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property TipoPrograma:          TipoPrograma                    Index (IS_OPTN) read FTipoPrograma write SetTipoPrograma stored TipoPrograma_Specified;
    property EAN:                   string                          Index (IS_OPTN or IS_NLBL) read FEAN write SetEAN stored EAN_Specified;
    property Descricao:             string                          Index (IS_OPTN or IS_NLBL) read FDescricao write SetDescricao stored Descricao_Specified;
    property PrecoMaximoConsumidor: TXSDecimal                      Index (IS_OPTN) read FPrecoMaximoConsumidor write SetPrecoMaximoConsumidor stored PrecoMaximoConsumidor_Specified;
    property PrecoRecebido:         TXSDecimal                      Index (IS_OPTN) read FPrecoRecebido write SetPrecoRecebido stored PrecoRecebido_Specified;
    property PrecoFuncional:        TXSDecimal                      Index (IS_OPTN) read FPrecoFuncional write SetPrecoFuncional stored PrecoFuncional_Specified;
    property PrecoVenda:            TXSDecimal                      Index (IS_OPTN) read FPrecoVenda write SetPrecoVenda stored PrecoVenda_Specified;
    property QuantidadeVenda:       Integer                         Index (IS_OPTN) read FQuantidadeVenda write SetQuantidadeVenda stored QuantidadeVenda_Specified;
    property Receita:               DadosReceita2                   Index (IS_OPTN or IS_NLBL) read FReceita write SetReceita stored Receita_Specified;
    property Status:                AutorizacaoResponseItemStatus2  Index (IS_OPTN or IS_NLBL) read FStatus write SetStatus stored Status_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponseItem, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseItem = class(AutorizacaoResponseItem2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : BeneficiarioResponsePrograma, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico
  // ************************************************************************ //
  BeneficiarioResponsePrograma2 = class(TRemotable)
  private
    FCodigo: Integer;
    FCodigo_Specified: boolean;
    FNome: string;
    FNome_Specified: boolean;
    FTipo: TipoPrograma;
    FTipo_Specified: boolean;
    FDescricao: string;
    FDescricao_Specified: boolean;
    FMensagemVenda: string;
    FMensagemVenda_Specified: boolean;
    procedure SetCodigo(Index: Integer; const AInteger: Integer);
    function  Codigo_Specified(Index: Integer): boolean;
    procedure SetNome(Index: Integer; const Astring: string);
    function  Nome_Specified(Index: Integer): boolean;
    procedure SetTipo(Index: Integer; const ATipoPrograma: TipoPrograma);
    function  Tipo_Specified(Index: Integer): boolean;
    procedure SetDescricao(Index: Integer; const Astring: string);
    function  Descricao_Specified(Index: Integer): boolean;
    procedure SetMensagemVenda(Index: Integer; const Astring: string);
    function  MensagemVenda_Specified(Index: Integer): boolean;
  published
    property Codigo:        Integer       Index (IS_OPTN) read FCodigo write SetCodigo stored Codigo_Specified;
    property Nome:          string        Index (IS_OPTN or IS_NLBL) read FNome write SetNome stored Nome_Specified;
    property Tipo:          TipoPrograma  Index (IS_OPTN) read FTipo write SetTipo stored Tipo_Specified;
    property Descricao:     string        Index (IS_OPTN or IS_NLBL) read FDescricao write SetDescricao stored Descricao_Specified;
    property MensagemVenda: string        Index (IS_OPTN or IS_NLBL) read FMensagemVenda write SetMensagemVenda stored MensagemVenda_Specified;
  end;



  // ************************************************************************ //
  // XML       : BeneficiarioResponsePrograma, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico
  // ************************************************************************ //
  BeneficiarioResponsePrograma = class(BeneficiarioResponsePrograma2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponseItemStatus, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseItemStatus2 = class(TRemotable)
  private
    FAprovado: Boolean;
    FAprovado_Specified: boolean;
    FMensagem: string;
    FMensagem_Specified: boolean;
    procedure SetAprovado(Index: Integer; const ABoolean: Boolean);
    function  Aprovado_Specified(Index: Integer): boolean;
    procedure SetMensagem(Index: Integer; const Astring: string);
    function  Mensagem_Specified(Index: Integer): boolean;
  published
    property Aprovado: Boolean  Index (IS_OPTN) read FAprovado write SetAprovado stored Aprovado_Specified;
    property Mensagem: string   Index (IS_OPTN or IS_NLBL) read FMensagem write SetMensagem stored Mensagem_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponseItemStatus, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponseItemStatus = class(AutorizacaoResponseItemStatus2)
  private
  published
  end;

  ArrayOfProgramaProdutoBase = array of ProgramaProdutoBase2;   { "http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects"[GblCplx] }
  ArrayOfstring = array of string;              { "http://schemas.microsoft.com/2003/10/Serialization/Arrays"[GblCplx] }


  // ************************************************************************ //
  // XML       : ProgramaProdutoBase, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  ProgramaProdutoBase2 = class(TRemotable)
  private
    FCodigoProdutoRegra: Integer;
    FCodigoProdutoRegra_Specified: boolean;
    FMensagemRegra: string;
    FMensagemRegra_Specified: boolean;
    FNomeProduto: string;
    FNomeProduto_Specified: boolean;
    FApresentacaoProduto: string;
    FApresentacaoProduto_Specified: boolean;
    FDescontoVendaBase: TXSDecimal;
    FDescontoVendaBase_Specified: boolean;
    FDescontoReposicaoBase: TXSDecimal;
    FDescontoReposicaoBase_Specified: boolean;
    FPMC: TXSDecimal;
    FPMC_Specified: boolean;
    FEans: ArrayOfstring;
    FEans_Specified: boolean;
    procedure SetCodigoProdutoRegra(Index: Integer; const AInteger: Integer);
    function  CodigoProdutoRegra_Specified(Index: Integer): boolean;
    procedure SetMensagemRegra(Index: Integer; const Astring: string);
    function  MensagemRegra_Specified(Index: Integer): boolean;
    procedure SetNomeProduto(Index: Integer; const Astring: string);
    function  NomeProduto_Specified(Index: Integer): boolean;
    procedure SetApresentacaoProduto(Index: Integer; const Astring: string);
    function  ApresentacaoProduto_Specified(Index: Integer): boolean;
    procedure SetDescontoVendaBase(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  DescontoVendaBase_Specified(Index: Integer): boolean;
    procedure SetDescontoReposicaoBase(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  DescontoReposicaoBase_Specified(Index: Integer): boolean;
    procedure SetPMC(Index: Integer; const ATXSDecimal: TXSDecimal);
    function  PMC_Specified(Index: Integer): boolean;
    procedure SetEans(Index: Integer; const AArrayOfstring: ArrayOfstring);
    function  Eans_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property CodigoProdutoRegra:    Integer        Index (IS_OPTN) read FCodigoProdutoRegra write SetCodigoProdutoRegra stored CodigoProdutoRegra_Specified;
    property MensagemRegra:         string         Index (IS_OPTN or IS_NLBL) read FMensagemRegra write SetMensagemRegra stored MensagemRegra_Specified;
    property NomeProduto:           string         Index (IS_OPTN or IS_NLBL) read FNomeProduto write SetNomeProduto stored NomeProduto_Specified;
    property ApresentacaoProduto:   string         Index (IS_OPTN or IS_NLBL) read FApresentacaoProduto write SetApresentacaoProduto stored ApresentacaoProduto_Specified;
    property DescontoVendaBase:     TXSDecimal     Index (IS_OPTN) read FDescontoVendaBase write SetDescontoVendaBase stored DescontoVendaBase_Specified;
    property DescontoReposicaoBase: TXSDecimal     Index (IS_OPTN) read FDescontoReposicaoBase write SetDescontoReposicaoBase stored DescontoReposicaoBase_Specified;
    property PMC:                   TXSDecimal     Index (IS_OPTN) read FPMC write SetPMC stored PMC_Specified;
    property Eans:                  ArrayOfstring  Index (IS_OPTN or IS_NLBL) read FEans write SetEans stored Eans_Specified;
  end;



  // ************************************************************************ //
  // XML       : ProdutoRegraDescontoGridResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  ProdutoRegraDescontoGridResponse2 = class(ValidationResult2)
  private
    FGridDesconto: Griddesconto2;
    FGridDesconto_Specified: boolean;
    FMensagem: ArrayOfstring;
    FMensagem_Specified: boolean;
    FMensagemFooter: ArrayOfMensagem;
    FMensagemFooter_Specified: boolean;
    FMensagemHeader: ArrayOfMensagem;
    FMensagemHeader_Specified: boolean;
    FMostrarPopUp: string;
    FMostrarPopUp_Specified: boolean;
    FTitulo: ArrayOfTitulo;
    FTitulo_Specified: boolean;
    procedure SetGridDesconto(Index: Integer; const AGriddesconto2: Griddesconto2);
    function  GridDesconto_Specified(Index: Integer): boolean;
    procedure SetMensagem(Index: Integer; const AArrayOfstring: ArrayOfstring);
    function  Mensagem_Specified(Index: Integer): boolean;
    procedure SetMensagemFooter(Index: Integer; const AArrayOfMensagem: ArrayOfMensagem);
    function  MensagemFooter_Specified(Index: Integer): boolean;
    procedure SetMensagemHeader(Index: Integer; const AArrayOfMensagem: ArrayOfMensagem);
    function  MensagemHeader_Specified(Index: Integer): boolean;
    procedure SetMostrarPopUp(Index: Integer; const Astring: string);
    function  MostrarPopUp_Specified(Index: Integer): boolean;
    procedure SetTitulo(Index: Integer; const AArrayOfTitulo: ArrayOfTitulo);
    function  Titulo_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property GridDesconto:   Griddesconto2    Index (IS_OPTN or IS_NLBL) read FGridDesconto write SetGridDesconto stored GridDesconto_Specified;
    property Mensagem:       ArrayOfstring    Index (IS_OPTN or IS_NLBL) read FMensagem write SetMensagem stored Mensagem_Specified;
    property MensagemFooter: ArrayOfMensagem  Index (IS_OPTN or IS_NLBL) read FMensagemFooter write SetMensagemFooter stored MensagemFooter_Specified;
    property MensagemHeader: ArrayOfMensagem  Index (IS_OPTN or IS_NLBL) read FMensagemHeader write SetMensagemHeader stored MensagemHeader_Specified;
    property MostrarPopUp:   string           Index (IS_OPTN or IS_NLBL) read FMostrarPopUp write SetMostrarPopUp stored MostrarPopUp_Specified;
    property Titulo:         ArrayOfTitulo    Index (IS_OPTN or IS_NLBL) read FTitulo write SetTitulo stored Titulo_Specified;
  end;



  // ************************************************************************ //
  // XML       : ProdutoRegraDescontoGridResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  ProdutoRegraDescontoGridResponse = class(ProdutoRegraDescontoGridResponse2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : GetProgramaProdutoBaseResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso
  // ************************************************************************ //
  GetProgramaProdutoBaseResponse = class(GetProgramaProdutoBaseResponse2)
  private
  published
  end;

  ArrayOfint = array of Integer;                { "http://schemas.microsoft.com/2003/10/Serialization/Arrays"[GblCplx] }


  // ************************************************************************ //
  // XML       : ProgramaBase, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  ProgramaBase2 = class(TRemotable)
  private
    FCodigoPrograma: Integer;
    FCodigoPrograma_Specified: boolean;
    FNomePrograma: string;
    FNomePrograma_Specified: boolean;
    FOrigensPermitidas: ArrayOfint;
    FOrigensPermitidas_Specified: boolean;
    FProdutos: ArrayOfProgramaProdutoBase;
    FProdutos_Specified: boolean;
    procedure SetCodigoPrograma(Index: Integer; const AInteger: Integer);
    function  CodigoPrograma_Specified(Index: Integer): boolean;
    procedure SetNomePrograma(Index: Integer; const Astring: string);
    function  NomePrograma_Specified(Index: Integer): boolean;
    procedure SetOrigensPermitidas(Index: Integer; const AArrayOfint: ArrayOfint);
    function  OrigensPermitidas_Specified(Index: Integer): boolean;
    procedure SetProdutos(Index: Integer; const AArrayOfProgramaProdutoBase: ArrayOfProgramaProdutoBase);
    function  Produtos_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property CodigoPrograma:    Integer                     Index (IS_OPTN) read FCodigoPrograma write SetCodigoPrograma stored CodigoPrograma_Specified;
    property NomePrograma:      string                      Index (IS_OPTN or IS_NLBL) read FNomePrograma write SetNomePrograma stored NomePrograma_Specified;
    property OrigensPermitidas: ArrayOfint                  Index (IS_OPTN or IS_NLBL) read FOrigensPermitidas write SetOrigensPermitidas stored OrigensPermitidas_Specified;
    property Produtos:          ArrayOfProgramaProdutoBase  Index (IS_OPTN or IS_NLBL) read FProdutos write SetProdutos stored Produtos_Specified;
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponse2 = class(ValidationResult2)
  private
    FTransacao: AutorizacaoResponseTransacao2;
    FTransacao_Specified: boolean;
    procedure SetTransacao(Index: Integer; const AAutorizacaoResponseTransacao2: AutorizacaoResponseTransacao2);
    function  Transacao_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property Transacao: AutorizacaoResponseTransacao2  Index (IS_OPTN or IS_NLBL) read FTransacao write SetTransacao stored Transacao_Specified;
  end;



  // ************************************************************************ //
  // XML       : VendaPreAutorizadaResponse, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  VendaPreAutorizadaResponse2 = class(AutorizacaoResponse2)
  private
    FComprovante: string;
    FComprovante_Specified: boolean;
    procedure SetComprovante(Index: Integer; const Astring: string);
    function  Comprovante_Specified(Index: Integer): boolean;
  published
    property Comprovante: string  Index (IS_OPTN or IS_NLBL) read FComprovante write SetComprovante stored Comprovante_Specified;
  end;



  // ************************************************************************ //
  // XML       : VendaPreAutorizadaResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  VendaPreAutorizadaResponse = class(VendaPreAutorizadaResponse2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : AutorizacaoResponse, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador
  // ************************************************************************ //
  AutorizacaoResponse = class(AutorizacaoResponse2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ProgramaProdutoBase, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  ProgramaProdutoBase = class(ProgramaProdutoBase2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : DadosReceita, global, <complexType>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  DadosReceita2 = class(TRemotable)
  private
    FQuantidadeReceita: Integer;
    FQuantidadeReceita_Specified: boolean;
    FDataReceita: TXSDateTime;
    FDataReceita_Specified: boolean;
    FConselho: Conselhos;
    FConselho_Specified: boolean;
    FNumeroRegistroConselho: Integer;
    FNumeroRegistroConselho_Specified: boolean;
    FSiglaEstado: string;
    FSiglaEstado_Specified: boolean;
    procedure SetQuantidadeReceita(Index: Integer; const AInteger: Integer);
    function  QuantidadeReceita_Specified(Index: Integer): boolean;
    procedure SetDataReceita(Index: Integer; const ATXSDateTime: TXSDateTime);
    function  DataReceita_Specified(Index: Integer): boolean;
    procedure SetConselho(Index: Integer; const AConselhos: Conselhos);
    function  Conselho_Specified(Index: Integer): boolean;
    procedure SetNumeroRegistroConselho(Index: Integer; const AInteger: Integer);
    function  NumeroRegistroConselho_Specified(Index: Integer): boolean;
    procedure SetSiglaEstado(Index: Integer; const Astring: string);
    function  SiglaEstado_Specified(Index: Integer): boolean;
  public
    destructor Destroy; override;
  published
    property QuantidadeReceita:      Integer      Index (IS_OPTN) read FQuantidadeReceita write SetQuantidadeReceita stored QuantidadeReceita_Specified;
    property DataReceita:            TXSDateTime  Index (IS_OPTN) read FDataReceita write SetDataReceita stored DataReceita_Specified;
    property Conselho:               Conselhos    Index (IS_OPTN) read FConselho write SetConselho stored Conselho_Specified;
    property NumeroRegistroConselho: Integer      Index (IS_OPTN) read FNumeroRegistroConselho write SetNumeroRegistroConselho stored NumeroRegistroConselho_Specified;
    property SiglaEstado:            string       Index (IS_OPTN or IS_NLBL) read FSiglaEstado write SetSiglaEstado stored SiglaEstado_Specified;
  end;



  // ************************************************************************ //
  // XML       : DadosReceita, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  DadosReceita = class(DadosReceita2)
  private
  published
  end;



  // ************************************************************************ //
  // XML       : ProgramaBase, global, <element>
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects
  // ************************************************************************ //
  ProgramaBase = class(ProgramaBase2)
  private
  published
  end;


  // ************************************************************************ //
  // Namespace : http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Soap
  // soapAction: http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Soap/IServiceAutorizador/%operationName%
  // transport : http://schemas.xmlsoap.org/soap/http
  // style     : document
  // use       : literal
  // binding   : BasicHttpBinding_IServiceAutorizador
  // service   : ServiceAutorizador
  // port      : BasicHttpBinding_IServiceAutorizador
  // URL       : http://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc/http
  // ************************************************************************ //
  IServiceAutorizador = interface(IInvokable)
  ['{42896B40-4FBF-0A93-1DD8-36CEF426C843}']
    function  AutenticarUserWebservice(const request: AuthenticationRequest2): AuthenticationResponse2; stdcall;
    function  AutenticarAcesso(const request: AuthenticationRequest2): AuthenticationResponse2; stdcall;
    function  AutenticarEstabelecimentoSenha(const request: AuthenticationRequest2): AuthenticationResponse2; stdcall;
    function  ConsultarBaseProgramasProdutos(const CNPJ: string): GetProgramaProdutoBaseResponse2; stdcall;
    function  ConsultarPrecosRegras(const CNPJ: string; const request: AutorizacaoRequest2): AutorizacaoResponse2; stdcall;
    function  ConsultarProdutoRegraDesconto(const ean: string; const cnpj: string): ArrayOfProdutoRegraDescontoGridResponse; stdcall;
    function  VendaDireta(const CNPJ: string; const request: AutorizacaoRequest2): AutorizacaoResponse2; stdcall;
    function  PreAutorizar(const CNPJ: string; const request: AutorizacaoRequest2): AutorizacaoResponse2; stdcall;
    function  AtualizarCupom(const CNPJ: string; const request: AtualizaCupomRequest2): ValidationResult2; stdcall;
    function  ResgatarPreAutorizacao(const CNPJ: string; const numeroCartao: string; const dataAutorizacao: TXSDateTime; const numeroAutorizacao: Integer): ResgataPreAutorizacaoResponse2; stdcall;
    function  ConsultarCartao(const numeroCartao: string): BeneficiarioResponse2; stdcall;
    function  CancelarTransacao(const CNPJ: string; const request: CancelamentoRequest2): CancelamentoResponse2; stdcall;
    function  UploadDocumentoTransacao(const CNPJ: string; const documentoTransacao: DocumentoTransacaoRequest2): ValidationResult2; stdcall;
    function  VendaPreAutorizadaProgramaAcesso(const CNPJ: string; const request: VendaPreAutorizadaProgramaAcessoRequest2): AutorizacaoResponse2; stdcall;
    function  VendaPreAutorizada(const CNPJ: string; const numeroAutorizacao: Integer; const dataHora: TXSDateTime; const request: AutorizacaoRequest2): VendaPreAutorizadaResponse2; stdcall;
  end;

function GetIServiceAutorizador(UseWSDL: Boolean=System.False; Addr: string=''; HTTPRIO: THTTPRIO = nil): IServiceAutorizador;


implementation
  uses System.SysUtils;

function GetIServiceAutorizador(UseWSDL: Boolean=System.False; Addr: string = ''; HTTPRIO: THTTPRIO = nil): IServiceAutorizador;
const
  defWSDL = 'https://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc?singleWsdl';
  defURL  = 'http://webservicehml.funcionalmais.com/AutorizadorOmniChannel/SOAP/ServiceAutorizador.svc/http';
  defSvc  = 'ServiceAutorizador';
  defPrt  = 'BasicHttpBinding_IServiceAutorizador';
//  FapiKey = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aXBvIjoiZXN0YWJzZW5oYSIsInVzZXIiOiJ0ZXN0ZWZjIiwiY25waiI6IjAwMDAwMDAwMDAwMDEwIiwiY29kY3JlIjoiMTAiLCJuYmYiOjE1OTI1MDY0ODUsImV4cCI6MTU5MjU5Mjg4NSwiaWF0IjoxNTkyNTA2NDg1fQ.omcO8AmWlDTHPAzGK41wjvnCkvqq3VOHft1-smX8_og';

var
  RIO: THTTPRIO;
begin
  Result := nil;
  if (Addr = '') then
  begin
    if UseWSDL then
      Addr := defWSDL
    else
      Addr := defURL;
  end;


  if HTTPRIO = nil then
  RIO := THTTPRIO.Create(nil)
  else
  RIO := HTTPRIO;

  RIO.HTTPWebNode.UseUTF8InHeader := True;

  try
    Result := (RIO as IServiceAutorizador);
    if UseWSDL then
    begin
      RIO.WSDLLocation := Addr;
      RIO.Service := defSvc;
      RIO.Port := defPrt;
    end else
      RIO.URL := Addr;
  finally
    if (Result = nil) and (HTTPRIO = nil) then
      RIO.Free;
  end;

end;


destructor AuthenticationResponse2.Destroy;
begin
  System.SysUtils.FreeAndNil(FApiKey);
  System.SysUtils.FreeAndNil(FResultadoValidacao);
  inherited Destroy;
end;

procedure AuthenticationResponse2.SetApiKey(Index: Integer; const AApiKey2: ApiKey2);
begin
  FApiKey := AApiKey2;
  FApiKey_Specified := True;
end;

function AuthenticationResponse2.ApiKey_Specified(Index: Integer): boolean;
begin
  Result := FApiKey_Specified;
end;

procedure AuthenticationResponse2.SetResultadoValidacao(Index: Integer; const AValidationResult2: ValidationResult2);
begin
  FResultadoValidacao := AValidationResult2;
  FResultadoValidacao_Specified := True;
end;

function AuthenticationResponse2.ResultadoValidacao_Specified(Index: Integer): boolean;
begin
  Result := FResultadoValidacao_Specified;
end;

procedure DescontoProgOcorrencia2.SetDesconto(Index: Integer; const Astring: string);
begin
  FDesconto := Astring;
  FDesconto_Specified := True;
end;

function DescontoProgOcorrencia2.Desconto_Specified(Index: Integer): boolean;
begin
  Result := FDesconto_Specified;
end;

procedure DescontoProgOcorrencia2.SetEconomiaTotal(Index: Integer; const Astring: string);
begin
  FEconomiaTotal := Astring;
  FEconomiaTotal_Specified := True;
end;

function DescontoProgOcorrencia2.EconomiaTotal_Specified(Index: Integer): boolean;
begin
  Result := FEconomiaTotal_Specified;
end;

procedure DescontoProgOcorrencia2.SetNOcorrencia(Index: Integer; const Astring: string);
begin
  FNOcorrencia := Astring;
  FNOcorrencia_Specified := True;
end;

function DescontoProgOcorrencia2.NOcorrencia_Specified(Index: Integer): boolean;
begin
  Result := FNOcorrencia_Specified;
end;

procedure DescontoProgOcorrencia2.SetQuantidade(Index: Integer; const Astring: string);
begin
  FQuantidade := Astring;
  FQuantidade_Specified := True;
end;

function DescontoProgOcorrencia2.Quantidade_Specified(Index: Integer): boolean;
begin
  Result := FQuantidade_Specified;
end;

procedure DescontoProgOcorrencia2.SetTotalComDesconto(Index: Integer; const Astring: string);
begin
  FTotalComDesconto := Astring;
  FTotalComDesconto_Specified := True;
end;

function DescontoProgOcorrencia2.TotalComDesconto_Specified(Index: Integer): boolean;
begin
  Result := FTotalComDesconto_Specified;
end;

procedure DescontoProgOcorrencia2.SetValorsemDesconto(Index: Integer; const Astring: string);
begin
  FValorsemDesconto := Astring;
  FValorsemDesconto_Specified := True;
end;

function DescontoProgOcorrencia2.ValorsemDesconto_Specified(Index: Integer): boolean;
begin
  Result := FValorsemDesconto_Specified;
end;

procedure Descontocompra2.SetDesconto(Index: Integer; const Astring: string);
begin
  FDesconto := Astring;
  FDesconto_Specified := True;
end;

function Descontocompra2.Desconto_Specified(Index: Integer): boolean;
begin
  Result := FDesconto_Specified;
end;

procedure Descontocompra2.SetEconomiaTotal(Index: Integer; const Astring: string);
begin
  FEconomiaTotal := Astring;
  FEconomiaTotal_Specified := True;
end;

function Descontocompra2.EconomiaTotal_Specified(Index: Integer): boolean;
begin
  Result := FEconomiaTotal_Specified;
end;

procedure Descontocompra2.SetQuantidade(Index: Integer; const Astring: string);
begin
  FQuantidade := Astring;
  FQuantidade_Specified := True;
end;

function Descontocompra2.Quantidade_Specified(Index: Integer): boolean;
begin
  Result := FQuantidade_Specified;
end;

procedure Descontocompra2.SetTotalComDesconto(Index: Integer; const Astring: string);
begin
  FTotalComDesconto := Astring;
  FTotalComDesconto_Specified := True;
end;

function Descontocompra2.TotalComDesconto_Specified(Index: Integer): boolean;
begin
  Result := FTotalComDesconto_Specified;
end;

procedure Descontocompra2.SetValorsemDesconto(Index: Integer; const Astring: string);
begin
  FValorsemDesconto := Astring;
  FValorsemDesconto_Specified := True;
end;

function Descontocompra2.ValorsemDesconto_Specified(Index: Integer): boolean;
begin
  Result := FValorsemDesconto_Specified;
end;

procedure Mensagem2.SetMensgagemHTML(Index: Integer; const Astring: string);
begin
  FMensgagemHTML := Astring;
  FMensgagemHTML_Specified := True;
end;

function Mensagem2.MensgagemHTML_Specified(Index: Integer): boolean;
begin
  Result := FMensgagemHTML_Specified;
end;

procedure Titulo2.SetApresentacao(Index: Integer; const Astring: string);
begin
  FApresentacao := Astring;
  FApresentacao_Specified := True;
end;

function Titulo2.Apresentacao_Specified(Index: Integer): boolean;
begin
  Result := FApresentacao_Specified;
end;

procedure Titulo2.SetEAN(Index: Integer; const Astring: string);
begin
  FEAN := Astring;
  FEAN_Specified := True;
end;

function Titulo2.EAN_Specified(Index: Integer): boolean;
begin
  Result := FEAN_Specified;
end;

procedure Titulo2.SetmsgDesligamentoPopUpDesconto(Index: Integer; const Astring: string);
begin
  FmsgDesligamentoPopUpDesconto := Astring;
  FmsgDesligamentoPopUpDesconto_Specified := True;
end;

function Titulo2.msgDesligamentoPopUpDesconto_Specified(Index: Integer): boolean;
begin
  Result := FmsgDesligamentoPopUpDesconto_Specified;
end;

procedure Titulo2.SetnomeProduto(Index: Integer; const Astring: string);
begin
  FnomeProduto := Astring;
  FnomeProduto_Specified := True;
end;

function Titulo2.nomeProduto_Specified(Index: Integer): boolean;
begin
  Result := FnomeProduto_Specified;
end;

procedure DescontoCompraConjunta2.SetCondicao(Index: Integer; const Astring: string);
begin
  FCondicao := Astring;
  FCondicao_Specified := True;
end;

function DescontoCompraConjunta2.Condicao_Specified(Index: Integer): boolean;
begin
  Result := FCondicao_Specified;
end;

procedure DescontoCompraConjunta2.SetDescontonoProduto(Index: Integer; const Astring: string);
begin
  FDescontonoProduto := Astring;
  FDescontonoProduto_Specified := True;
end;

function DescontoCompraConjunta2.DescontonoProduto_Specified(Index: Integer): boolean;
begin
  Result := FDescontonoProduto_Specified;
end;

procedure DescontoCompraConjunta2.SetEconomiaTotal(Index: Integer; const Astring: string);
begin
  FEconomiaTotal := Astring;
  FEconomiaTotal_Specified := True;
end;

function DescontoCompraConjunta2.EconomiaTotal_Specified(Index: Integer): boolean;
begin
  Result := FEconomiaTotal_Specified;
end;

procedure DescontoCompraConjunta2.SetProdutoComDesconto(Index: Integer; const Astring: string);
begin
  FProdutoComDesconto := Astring;
  FProdutoComDesconto_Specified := True;
end;

function DescontoCompraConjunta2.ProdutoComDesconto_Specified(Index: Integer): boolean;
begin
  Result := FProdutoComDesconto_Specified;
end;

procedure DescontoCompraConjunta2.SetTotalComDesconto(Index: Integer; const Astring: string);
begin
  FTotalComDesconto := Astring;
  FTotalComDesconto_Specified := True;
end;

function DescontoCompraConjunta2.TotalComDesconto_Specified(Index: Integer): boolean;
begin
  Result := FTotalComDesconto_Specified;
end;

procedure DescontoCompraBonificada2.SetCompre(Index: Integer; const Astring: string);
begin
  FCompre := Astring;
  FCompre_Specified := True;
end;

function DescontoCompraBonificada2.Compre_Specified(Index: Integer): boolean;
begin
  Result := FCompre_Specified;
end;

procedure DescontoCompraBonificada2.SetEconomiaTotal(Index: Integer; const Astring: string);
begin
  FEconomiaTotal := Astring;
  FEconomiaTotal_Specified := True;
end;

function DescontoCompraBonificada2.EconomiaTotal_Specified(Index: Integer): boolean;
begin
  Result := FEconomiaTotal_Specified;
end;

procedure DescontoCompraBonificada2.SetGanhe(Index: Integer; const Astring: string);
begin
  FGanhe := Astring;
  FGanhe_Specified := True;
end;

function DescontoCompraBonificada2.Ganhe_Specified(Index: Integer): boolean;
begin
  Result := FGanhe_Specified;
end;

procedure DescontoCompraBonificada2.SetQuantidade(Index: Integer; const Astring: string);
begin
  FQuantidade := Astring;
  FQuantidade_Specified := True;
end;

function DescontoCompraBonificada2.Quantidade_Specified(Index: Integer): boolean;
begin
  Result := FQuantidade_Specified;
end;

procedure DescontoCompraBonificada2.SetTotalComDesconto(Index: Integer; const Astring: string);
begin
  FTotalComDesconto := Astring;
  FTotalComDesconto_Specified := True;
end;

function DescontoCompraBonificada2.TotalComDesconto_Specified(Index: Integer): boolean;
begin
  Result := FTotalComDesconto_Specified;
end;

procedure AuthenticationRequest2.SetLogin(Index: Integer; const Astring: string);
begin
  FLogin := Astring;
  FLogin_Specified := True;
end;

function AuthenticationRequest2.Login_Specified(Index: Integer): boolean;
begin
  Result := FLogin_Specified;
end;

procedure AuthenticationRequest2.SetPassword(Index: Integer; const Astring: string);
begin
  FPassword := Astring;
  FPassword_Specified := True;
end;

function AuthenticationRequest2.Password_Specified(Index: Integer): boolean;
begin
  Result := FPassword_Specified;
end;

destructor ValidationResult2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FErrors)-1 do
    System.SysUtils.FreeAndNil(FErrors[I]);
  System.SetLength(FErrors, 0);
  inherited Destroy;
end;

procedure ValidationResult2.SetErrors(Index: Integer; const AArrayOfValidationError: ArrayOfValidationError);
begin
  FErrors := AArrayOfValidationError;
  FErrors_Specified := True;
end;

function ValidationResult2.Errors_Specified(Index: Integer): boolean;
begin
  Result := FErrors_Specified;
end;

procedure ValidationResult2.SetIsValid(Index: Integer; const ABoolean: Boolean);
begin
  FIsValid := ABoolean;
  FIsValid_Specified := True;
end;

function ValidationResult2.IsValid_Specified(Index: Integer): boolean;
begin
  Result := FIsValid_Specified;
end;

procedure ValidationResult2.SetMessage_(Index: Integer; const Astring: string);
begin
  FMessage_ := Astring;
  FMessage__Specified := True;
end;

function ValidationResult2.Message__Specified(Index: Integer): boolean;
begin
  Result := FMessage__Specified;
end;

destructor GetProgramaProdutoBaseResponse2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FProgramas)-1 do
    System.SysUtils.FreeAndNil(FProgramas[I]);
  System.SetLength(FProgramas, 0);
  inherited Destroy;
end;

procedure GetProgramaProdutoBaseResponse2.SetProgramas(Index: Integer; const AArrayOfProgramaBase: ArrayOfProgramaBase);
begin
  FProgramas := AArrayOfProgramaBase;
  FProgramas_Specified := True;
end;

function GetProgramaProdutoBaseResponse2.Programas_Specified(Index: Integer): boolean;
begin
  Result := FProgramas_Specified;
end;

procedure ValidationError2.SetMessage_(Index: Integer; const Astring: string);
begin
  FMessage_ := Astring;
  FMessage__Specified := True;
end;

function ValidationError2.Message__Specified(Index: Integer): boolean;
begin
  Result := FMessage__Specified;
end;

procedure ValidationError2.SetStatusCode(Index: Integer; const AInteger: Integer);
begin
  FStatusCode := AInteger;
  FStatusCode_Specified := True;
end;

function ValidationError2.StatusCode_Specified(Index: Integer): boolean;
begin
  Result := FStatusCode_Specified;
end;

destructor DocumentoTransacaoRequest2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataAutorizacao);
  inherited Destroy;
end;

procedure DocumentoTransacaoRequest2.SetDataAutorizacao(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataAutorizacao := ATXSDateTime;
  FDataAutorizacao_Specified := True;
end;

function DocumentoTransacaoRequest2.DataAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FDataAutorizacao_Specified;
end;

procedure DocumentoTransacaoRequest2.SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
begin
  FNumeroAutorizacao := AInteger;
  FNumeroAutorizacao_Specified := True;
end;

function DocumentoTransacaoRequest2.NumeroAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroAutorizacao_Specified;
end;

procedure DocumentoTransacaoRequest2.SetNumeroSequencial(Index: Integer; const AInteger: Integer);
begin
  FNumeroSequencial := AInteger;
  FNumeroSequencial_Specified := True;
end;

function DocumentoTransacaoRequest2.NumeroSequencial_Specified(Index: Integer): boolean;
begin
  Result := FNumeroSequencial_Specified;
end;

procedure DocumentoTransacaoRequest2.SetTipo(Index: Integer; const ATipoDocumentoTransacao: TipoDocumentoTransacao);
begin
  FTipo := ATipoDocumentoTransacao;
  FTipo_Specified := True;
end;

function DocumentoTransacaoRequest2.Tipo_Specified(Index: Integer): boolean;
begin
  Result := FTipo_Specified;
end;

procedure DocumentoTransacaoRequest2.SetFileName(Index: Integer; const Astring: string);
begin
  FFileName := Astring;
  FFileName_Specified := True;
end;

function DocumentoTransacaoRequest2.FileName_Specified(Index: Integer): boolean;
begin
  Result := FFileName_Specified;
end;

procedure DocumentoTransacaoRequest2.SetConteudo(Index: Integer; const ATByteDynArray: TByteDynArray);
begin
  FConteudo := ATByteDynArray;
  FConteudo_Specified := True;
end;

function DocumentoTransacaoRequest2.Conteudo_Specified(Index: Integer): boolean;
begin
  Result := FConteudo_Specified;
end;

destructor VendaPreAutorizadaProgramaAcessoRequest2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataHora);
  inherited Destroy;
end;

procedure VendaPreAutorizadaProgramaAcessoRequest2.SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
begin
  FNumeroAutorizacao := AInteger;
  FNumeroAutorizacao_Specified := True;
end;

function VendaPreAutorizadaProgramaAcessoRequest2.NumeroAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroAutorizacao_Specified;
end;

procedure VendaPreAutorizadaProgramaAcessoRequest2.SetNumeroSequencial(Index: Integer; const AInteger: Integer);
begin
  FNumeroSequencial := AInteger;
  FNumeroSequencial_Specified := True;
end;

function VendaPreAutorizadaProgramaAcessoRequest2.NumeroSequencial_Specified(Index: Integer): boolean;
begin
  Result := FNumeroSequencial_Specified;
end;

procedure VendaPreAutorizadaProgramaAcessoRequest2.SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataHora := ATXSDateTime;
  FDataHora_Specified := True;
end;

function VendaPreAutorizadaProgramaAcessoRequest2.DataHora_Specified(Index: Integer): boolean;
begin
  Result := FDataHora_Specified;
end;

destructor AtualizaCupomRequest2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataAutorizacao);
  inherited Destroy;
end;

procedure AtualizaCupomRequest2.SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
begin
  FNumeroAutorizacao := AInteger;
  FNumeroAutorizacao_Specified := True;
end;

function AtualizaCupomRequest2.NumeroAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroAutorizacao_Specified;
end;

procedure AtualizaCupomRequest2.SetDataAutorizacao(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataAutorizacao := ATXSDateTime;
  FDataAutorizacao_Specified := True;
end;

function AtualizaCupomRequest2.DataAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FDataAutorizacao_Specified;
end;

procedure AtualizaCupomRequest2.SetNumeroCartao(Index: Integer; const Astring: string);
begin
  FNumeroCartao := Astring;
  FNumeroCartao_Specified := True;
end;

function AtualizaCupomRequest2.NumeroCartao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroCartao_Specified;
end;

procedure AtualizaCupomRequest2.SetDocumentoFiscal(Index: Integer; const Astring: string);
begin
  FDocumentoFiscal := Astring;
  FDocumentoFiscal_Specified := True;
end;

function AtualizaCupomRequest2.DocumentoFiscal_Specified(Index: Integer): boolean;
begin
  Result := FDocumentoFiscal_Specified;
end;

destructor ApiKey2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataExpiracao);
  inherited Destroy;
end;

procedure ApiKey2.SetDataExpiracao(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataExpiracao := ATXSDateTime;
  FDataExpiracao_Specified := True;
end;

function ApiKey2.DataExpiracao_Specified(Index: Integer): boolean;
begin
  Result := FDataExpiracao_Specified;
end;

procedure ApiKey2.SetKey(Index: Integer; const Astring: string);
begin
  FKey := Astring;
  FKey_Specified := True;
end;

function ApiKey2.Key_Specified(Index: Integer): boolean;
begin
  Result := FKey_Specified;
end;

destructor CancelamentoRequest2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataHora);
  System.SysUtils.FreeAndNil(FValorTransacao);
  inherited Destroy;
end;

procedure CancelamentoRequest2.SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataHora := ATXSDateTime;
  FDataHora_Specified := True;
end;

function CancelamentoRequest2.DataHora_Specified(Index: Integer): boolean;
begin
  Result := FDataHora_Specified;
end;

procedure CancelamentoRequest2.SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
begin
  FNumeroAutorizacao := AInteger;
  FNumeroAutorizacao_Specified := True;
end;

function CancelamentoRequest2.NumeroAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroAutorizacao_Specified;
end;

procedure CancelamentoRequest2.SetNumeroCartao(Index: Integer; const Astring: string);
begin
  FNumeroCartao := Astring;
  FNumeroCartao_Specified := True;
end;

function CancelamentoRequest2.NumeroCartao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroCartao_Specified;
end;

procedure CancelamentoRequest2.SetNumeroSequencial(Index: Integer; const AInteger: Integer);
begin
  FNumeroSequencial := AInteger;
  FNumeroSequencial_Specified := True;
end;

function CancelamentoRequest2.NumeroSequencial_Specified(Index: Integer): boolean;
begin
  Result := FNumeroSequencial_Specified;
end;

procedure CancelamentoRequest2.SetValorTransacao(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTransacao := ATXSDecimal;
  FValorTransacao_Specified := True;
end;

function CancelamentoRequest2.ValorTransacao_Specified(Index: Integer): boolean;
begin
  Result := FValorTransacao_Specified;
end;

destructor BeneficiarioResponse2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FProgramas)-1 do
    System.SysUtils.FreeAndNil(FProgramas[I]);
  System.SetLength(FProgramas, 0);
  inherited Destroy;
end;

procedure BeneficiarioResponse2.SetNome(Index: Integer; const Astring: string);
begin
  FNome := Astring;
  FNome_Specified := True;
end;

function BeneficiarioResponse2.Nome_Specified(Index: Integer): boolean;
begin
  Result := FNome_Specified;
end;

procedure BeneficiarioResponse2.SetNumeroCartao(Index: Integer; const Astring: string);
begin
  FNumeroCartao := Astring;
  FNumeroCartao_Specified := True;
end;

function BeneficiarioResponse2.NumeroCartao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroCartao_Specified;
end;

procedure BeneficiarioResponse2.SetProgramas(Index: Integer; const AArrayOfBeneficiarioResponsePrograma: ArrayOfBeneficiarioResponsePrograma);
begin
  FProgramas := AArrayOfBeneficiarioResponsePrograma;
  FProgramas_Specified := True;
end;

function BeneficiarioResponse2.Programas_Specified(Index: Integer): boolean;
begin
  Result := FProgramas_Specified;
end;

destructor AutorizacaoResponseTransacao2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FItens)-1 do
    System.SysUtils.FreeAndNil(FItens[I]);
  System.SetLength(FItens, 0);
  System.SysUtils.FreeAndNil(FDataHora);
  System.SysUtils.FreeAndNil(FValorTotal);
  System.SysUtils.FreeAndNil(FValorVista);
  System.SysUtils.FreeAndNil(FValorCartao);
  System.SysUtils.FreeAndNil(FValorTotalPMC);
  System.SysUtils.FreeAndNil(FValorTotalComReceita);
  System.SysUtils.FreeAndNil(FValorTotalSemReceita);
  System.SysUtils.FreeAndNil(FValorTotalDesconto);
  inherited Destroy;
end;

procedure AutorizacaoResponseTransacao2.SetAprovada(Index: Integer; const ABoolean: Boolean);
begin
  FAprovada := ABoolean;
  FAprovada_Specified := True;
end;

function AutorizacaoResponseTransacao2.Aprovada_Specified(Index: Integer): boolean;
begin
  Result := FAprovada_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetNumeroAutorizacao(Index: Integer; const AInteger: Integer);
begin
  FNumeroAutorizacao := AInteger;
  FNumeroAutorizacao_Specified := True;
end;

function AutorizacaoResponseTransacao2.NumeroAutorizacao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroAutorizacao_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetNumeroSequencial(Index: Integer; const AInteger: Integer);
begin
  FNumeroSequencial := AInteger;
  FNumeroSequencial_Specified := True;
end;

function AutorizacaoResponseTransacao2.NumeroSequencial_Specified(Index: Integer): boolean;
begin
  Result := FNumeroSequencial_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetDataHora(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataHora := ATXSDateTime;
  FDataHora_Specified := True;
end;

function AutorizacaoResponseTransacao2.DataHora_Specified(Index: Integer): boolean;
begin
  Result := FDataHora_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorTotal(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTotal := ATXSDecimal;
  FValorTotal_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorTotal_Specified(Index: Integer): boolean;
begin
  Result := FValorTotal_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorVista(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorVista := ATXSDecimal;
  FValorVista_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorVista_Specified(Index: Integer): boolean;
begin
  Result := FValorVista_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorCartao(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorCartao := ATXSDecimal;
  FValorCartao_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorCartao_Specified(Index: Integer): boolean;
begin
  Result := FValorCartao_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorTotalPMC(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTotalPMC := ATXSDecimal;
  FValorTotalPMC_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorTotalPMC_Specified(Index: Integer): boolean;
begin
  Result := FValorTotalPMC_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorTotalComReceita(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTotalComReceita := ATXSDecimal;
  FValorTotalComReceita_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorTotalComReceita_Specified(Index: Integer): boolean;
begin
  Result := FValorTotalComReceita_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorTotalSemReceita(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTotalSemReceita := ATXSDecimal;
  FValorTotalSemReceita_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorTotalSemReceita_Specified(Index: Integer): boolean;
begin
  Result := FValorTotalSemReceita_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetValorTotalDesconto(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FValorTotalDesconto := ATXSDecimal;
  FValorTotalDesconto_Specified := True;
end;

function AutorizacaoResponseTransacao2.ValorTotalDesconto_Specified(Index: Integer): boolean;
begin
  Result := FValorTotalDesconto_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetItens(Index: Integer; const AArrayOfAutorizacaoResponseItem: ArrayOfAutorizacaoResponseItem);
begin
  FItens := AArrayOfAutorizacaoResponseItem;
  FItens_Specified := True;
end;

function AutorizacaoResponseTransacao2.Itens_Specified(Index: Integer): boolean;
begin
  Result := FItens_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetCodigoPlano(Index: Integer; const Astring: string);
begin
  FCodigoPlano := Astring;
  FCodigoPlano_Specified := True;
end;

function AutorizacaoResponseTransacao2.CodigoPlano_Specified(Index: Integer): boolean;
begin
  Result := FCodigoPlano_Specified;
end;

procedure AutorizacaoResponseTransacao2.SetObrigatorioUploadReceita(Index: Integer; const ABoolean: Boolean);
begin
  FObrigatorioUploadReceita := ABoolean;
  FObrigatorioUploadReceita_Specified := True;
end;

function AutorizacaoResponseTransacao2.ObrigatorioUploadReceita_Specified(Index: Integer): boolean;
begin
  Result := FObrigatorioUploadReceita_Specified;
end;

destructor ResgataPreAutorizacaoResponse2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FItens)-1 do
    System.SysUtils.FreeAndNil(FItens[I]);
  System.SetLength(FItens, 0);
  inherited Destroy;
end;

procedure ResgataPreAutorizacaoResponse2.SetItens(Index: Integer; const AArrayOfAutorizacaoResponseItem: ArrayOfAutorizacaoResponseItem);
begin
  FItens := AArrayOfAutorizacaoResponseItem;
  FItens_Specified := True;
end;

function ResgataPreAutorizacaoResponse2.Itens_Specified(Index: Integer): boolean;
begin
  Result := FItens_Specified;
end;

destructor AutorizacaoRequest2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FItens)-1 do
    System.SysUtils.FreeAndNil(FItens[I]);
  System.SetLength(FItens, 0);
  inherited Destroy;
end;

procedure AutorizacaoRequest2.SetNumeroCartao(Index: Integer; const Astring: string);
begin
  FNumeroCartao := Astring;
  FNumeroCartao_Specified := True;
end;

function AutorizacaoRequest2.NumeroCartao_Specified(Index: Integer): boolean;
begin
  Result := FNumeroCartao_Specified;
end;

procedure AutorizacaoRequest2.SetItens(Index: Integer; const AArrayOfAutorizacaoRequestItem: ArrayOfAutorizacaoRequestItem);
begin
  FItens := AArrayOfAutorizacaoRequestItem;
  FItens_Specified := True;
end;

function AutorizacaoRequest2.Itens_Specified(Index: Integer): boolean;
begin
  Result := FItens_Specified;
end;

destructor AutorizacaoRequestItem2.Destroy;
begin
  System.SysUtils.FreeAndNil(FPreco);
  System.SysUtils.FreeAndNil(FReceita);
  inherited Destroy;
end;

procedure AutorizacaoRequestItem2.SetEAN(Index: Integer; const Astring: string);
begin
  FEAN := Astring;
  FEAN_Specified := True;
end;

function AutorizacaoRequestItem2.EAN_Specified(Index: Integer): boolean;
begin
  Result := FEAN_Specified;
end;

procedure AutorizacaoRequestItem2.SetPreco(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPreco := ATXSDecimal;
  FPreco_Specified := True;
end;

function AutorizacaoRequestItem2.Preco_Specified(Index: Integer): boolean;
begin
  Result := FPreco_Specified;
end;

procedure AutorizacaoRequestItem2.SetQuantidadeVenda(Index: Integer; const AInteger: Integer);
begin
  FQuantidadeVenda := AInteger;
  FQuantidadeVenda_Specified := True;
end;

function AutorizacaoRequestItem2.QuantidadeVenda_Specified(Index: Integer): boolean;
begin
  Result := FQuantidadeVenda_Specified;
end;

procedure AutorizacaoRequestItem2.SetReceita(Index: Integer; const ADadosReceita2: DadosReceita2);
begin
  FReceita := ADadosReceita2;
  FReceita_Specified := True;
end;

function AutorizacaoRequestItem2.Receita_Specified(Index: Integer): boolean;
begin
  Result := FReceita_Specified;
end;

destructor Griddesconto2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FDescontoCompraBonificada)-1 do
    System.SysUtils.FreeAndNil(FDescontoCompraBonificada[I]);
  System.SetLength(FDescontoCompraBonificada, 0);
  for I := 0 to System.Length(FDescontoCompraConjunta)-1 do
    System.SysUtils.FreeAndNil(FDescontoCompraConjunta[I]);
  System.SetLength(FDescontoCompraConjunta, 0);
  for I := 0 to System.Length(FDescontoCompraDiferente)-1 do
    System.SysUtils.FreeAndNil(FDescontoCompraDiferente[I]);
  System.SetLength(FDescontoCompraDiferente, 0);
  for I := 0 to System.Length(FDescontoLinear)-1 do
    System.SysUtils.FreeAndNil(FDescontoLinear[I]);
  System.SetLength(FDescontoLinear, 0);
  for I := 0 to System.Length(FDescontoMesmaCompra)-1 do
    System.SysUtils.FreeAndNil(FDescontoMesmaCompra[I]);
  System.SetLength(FDescontoMesmaCompra, 0);
  for I := 0 to System.Length(FDescontoProgOcorrencia)-1 do
    System.SysUtils.FreeAndNil(FDescontoProgOcorrencia[I]);
  System.SetLength(FDescontoProgOcorrencia, 0);
  for I := 0 to System.Length(FPrimeiraCompra)-1 do
    System.SysUtils.FreeAndNil(FPrimeiraCompra[I]);
  System.SetLength(FPrimeiraCompra, 0);
  inherited Destroy;
end;

procedure Griddesconto2.SetDescontoCompraBonificada(Index: Integer; const AArrayOfDescontoCompraBonificada: ArrayOfDescontoCompraBonificada);
begin
  FDescontoCompraBonificada := AArrayOfDescontoCompraBonificada;
  FDescontoCompraBonificada_Specified := True;
end;

function Griddesconto2.DescontoCompraBonificada_Specified(Index: Integer): boolean;
begin
  Result := FDescontoCompraBonificada_Specified;
end;

procedure Griddesconto2.SetDescontoCompraConjunta(Index: Integer; const AArrayOfDescontoCompraConjunta: ArrayOfDescontoCompraConjunta);
begin
  FDescontoCompraConjunta := AArrayOfDescontoCompraConjunta;
  FDescontoCompraConjunta_Specified := True;
end;

function Griddesconto2.DescontoCompraConjunta_Specified(Index: Integer): boolean;
begin
  Result := FDescontoCompraConjunta_Specified;
end;

procedure Griddesconto2.SetDescontoCompraDiferente(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
begin
  FDescontoCompraDiferente := AArrayOfDescontocompra;
  FDescontoCompraDiferente_Specified := True;
end;

function Griddesconto2.DescontoCompraDiferente_Specified(Index: Integer): boolean;
begin
  Result := FDescontoCompraDiferente_Specified;
end;

procedure Griddesconto2.SetDescontoLinear(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
begin
  FDescontoLinear := AArrayOfDescontocompra;
  FDescontoLinear_Specified := True;
end;

function Griddesconto2.DescontoLinear_Specified(Index: Integer): boolean;
begin
  Result := FDescontoLinear_Specified;
end;

procedure Griddesconto2.SetDescontoMesmaCompra(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
begin
  FDescontoMesmaCompra := AArrayOfDescontocompra;
  FDescontoMesmaCompra_Specified := True;
end;

function Griddesconto2.DescontoMesmaCompra_Specified(Index: Integer): boolean;
begin
  Result := FDescontoMesmaCompra_Specified;
end;

procedure Griddesconto2.SetDescontoProgOcorrencia(Index: Integer; const AArrayOfDescontoProgOcorrencia: ArrayOfDescontoProgOcorrencia);
begin
  FDescontoProgOcorrencia := AArrayOfDescontoProgOcorrencia;
  FDescontoProgOcorrencia_Specified := True;
end;

function Griddesconto2.DescontoProgOcorrencia_Specified(Index: Integer): boolean;
begin
  Result := FDescontoProgOcorrencia_Specified;
end;

procedure Griddesconto2.SetPrimeiraCompra(Index: Integer; const AArrayOfDescontocompra: ArrayOfDescontocompra);
begin
  FPrimeiraCompra := AArrayOfDescontocompra;
  FPrimeiraCompra_Specified := True;
end;

function Griddesconto2.PrimeiraCompra_Specified(Index: Integer): boolean;
begin
  Result := FPrimeiraCompra_Specified;
end;

destructor AutorizacaoResponseItem2.Destroy;
begin
  System.SysUtils.FreeAndNil(FPrecoMaximoConsumidor);
  System.SysUtils.FreeAndNil(FPrecoRecebido);
  System.SysUtils.FreeAndNil(FPrecoFuncional);
  System.SysUtils.FreeAndNil(FPrecoVenda);
  System.SysUtils.FreeAndNil(FReceita);
  System.SysUtils.FreeAndNil(FStatus);
  inherited Destroy;
end;

procedure AutorizacaoResponseItem2.SetTipoPrograma(Index: Integer; const ATipoPrograma: TipoPrograma);
begin
  FTipoPrograma := ATipoPrograma;
  FTipoPrograma_Specified := True;
end;

function AutorizacaoResponseItem2.TipoPrograma_Specified(Index: Integer): boolean;
begin
  Result := FTipoPrograma_Specified;
end;

procedure AutorizacaoResponseItem2.SetEAN(Index: Integer; const Astring: string);
begin
  FEAN := Astring;
  FEAN_Specified := True;
end;

function AutorizacaoResponseItem2.EAN_Specified(Index: Integer): boolean;
begin
  Result := FEAN_Specified;
end;

procedure AutorizacaoResponseItem2.SetDescricao(Index: Integer; const Astring: string);
begin
  FDescricao := Astring;
  FDescricao_Specified := True;
end;

function AutorizacaoResponseItem2.Descricao_Specified(Index: Integer): boolean;
begin
  Result := FDescricao_Specified;
end;

procedure AutorizacaoResponseItem2.SetPrecoMaximoConsumidor(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPrecoMaximoConsumidor := ATXSDecimal;
  FPrecoMaximoConsumidor_Specified := True;
end;

function AutorizacaoResponseItem2.PrecoMaximoConsumidor_Specified(Index: Integer): boolean;
begin
  Result := FPrecoMaximoConsumidor_Specified;
end;

procedure AutorizacaoResponseItem2.SetPrecoRecebido(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPrecoRecebido := ATXSDecimal;
  FPrecoRecebido_Specified := True;
end;

function AutorizacaoResponseItem2.PrecoRecebido_Specified(Index: Integer): boolean;
begin
  Result := FPrecoRecebido_Specified;
end;

procedure AutorizacaoResponseItem2.SetPrecoFuncional(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPrecoFuncional := ATXSDecimal;
  FPrecoFuncional_Specified := True;
end;

function AutorizacaoResponseItem2.PrecoFuncional_Specified(Index: Integer): boolean;
begin
  Result := FPrecoFuncional_Specified;
end;

procedure AutorizacaoResponseItem2.SetPrecoVenda(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPrecoVenda := ATXSDecimal;
  FPrecoVenda_Specified := True;
end;

function AutorizacaoResponseItem2.PrecoVenda_Specified(Index: Integer): boolean;
begin
  Result := FPrecoVenda_Specified;
end;

procedure AutorizacaoResponseItem2.SetQuantidadeVenda(Index: Integer; const AInteger: Integer);
begin
  FQuantidadeVenda := AInteger;
  FQuantidadeVenda_Specified := True;
end;

function AutorizacaoResponseItem2.QuantidadeVenda_Specified(Index: Integer): boolean;
begin
  Result := FQuantidadeVenda_Specified;
end;

procedure AutorizacaoResponseItem2.SetReceita(Index: Integer; const ADadosReceita2: DadosReceita2);
begin
  FReceita := ADadosReceita2;
  FReceita_Specified := True;
end;

function AutorizacaoResponseItem2.Receita_Specified(Index: Integer): boolean;
begin
  Result := FReceita_Specified;
end;

procedure AutorizacaoResponseItem2.SetStatus(Index: Integer; const AAutorizacaoResponseItemStatus2: AutorizacaoResponseItemStatus2);
begin
  FStatus := AAutorizacaoResponseItemStatus2;
  FStatus_Specified := True;
end;

function AutorizacaoResponseItem2.Status_Specified(Index: Integer): boolean;
begin
  Result := FStatus_Specified;
end;

procedure BeneficiarioResponsePrograma2.SetCodigo(Index: Integer; const AInteger: Integer);
begin
  FCodigo := AInteger;
  FCodigo_Specified := True;
end;

function BeneficiarioResponsePrograma2.Codigo_Specified(Index: Integer): boolean;
begin
  Result := FCodigo_Specified;
end;

procedure BeneficiarioResponsePrograma2.SetNome(Index: Integer; const Astring: string);
begin
  FNome := Astring;
  FNome_Specified := True;
end;

function BeneficiarioResponsePrograma2.Nome_Specified(Index: Integer): boolean;
begin
  Result := FNome_Specified;
end;

procedure BeneficiarioResponsePrograma2.SetTipo(Index: Integer; const ATipoPrograma: TipoPrograma);
begin
  FTipo := ATipoPrograma;
  FTipo_Specified := True;
end;

function BeneficiarioResponsePrograma2.Tipo_Specified(Index: Integer): boolean;
begin
  Result := FTipo_Specified;
end;

procedure BeneficiarioResponsePrograma2.SetDescricao(Index: Integer; const Astring: string);
begin
  FDescricao := Astring;
  FDescricao_Specified := True;
end;

function BeneficiarioResponsePrograma2.Descricao_Specified(Index: Integer): boolean;
begin
  Result := FDescricao_Specified;
end;

procedure BeneficiarioResponsePrograma2.SetMensagemVenda(Index: Integer; const Astring: string);
begin
  FMensagemVenda := Astring;
  FMensagemVenda_Specified := True;
end;

function BeneficiarioResponsePrograma2.MensagemVenda_Specified(Index: Integer): boolean;
begin
  Result := FMensagemVenda_Specified;
end;

procedure AutorizacaoResponseItemStatus2.SetAprovado(Index: Integer; const ABoolean: Boolean);
begin
  FAprovado := ABoolean;
  FAprovado_Specified := True;
end;

function AutorizacaoResponseItemStatus2.Aprovado_Specified(Index: Integer): boolean;
begin
  Result := FAprovado_Specified;
end;

procedure AutorizacaoResponseItemStatus2.SetMensagem(Index: Integer; const Astring: string);
begin
  FMensagem := Astring;
  FMensagem_Specified := True;
end;

function AutorizacaoResponseItemStatus2.Mensagem_Specified(Index: Integer): boolean;
begin
  Result := FMensagem_Specified;
end;

destructor ProgramaProdutoBase2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDescontoVendaBase);
  System.SysUtils.FreeAndNil(FDescontoReposicaoBase);
  System.SysUtils.FreeAndNil(FPMC);
  inherited Destroy;
end;

procedure ProgramaProdutoBase2.SetCodigoProdutoRegra(Index: Integer; const AInteger: Integer);
begin
  FCodigoProdutoRegra := AInteger;
  FCodigoProdutoRegra_Specified := True;
end;

function ProgramaProdutoBase2.CodigoProdutoRegra_Specified(Index: Integer): boolean;
begin
  Result := FCodigoProdutoRegra_Specified;
end;

procedure ProgramaProdutoBase2.SetMensagemRegra(Index: Integer; const Astring: string);
begin
  FMensagemRegra := Astring;
  FMensagemRegra_Specified := True;
end;

function ProgramaProdutoBase2.MensagemRegra_Specified(Index: Integer): boolean;
begin
  Result := FMensagemRegra_Specified;
end;

procedure ProgramaProdutoBase2.SetNomeProduto(Index: Integer; const Astring: string);
begin
  FNomeProduto := Astring;
  FNomeProduto_Specified := True;
end;

function ProgramaProdutoBase2.NomeProduto_Specified(Index: Integer): boolean;
begin
  Result := FNomeProduto_Specified;
end;

procedure ProgramaProdutoBase2.SetApresentacaoProduto(Index: Integer; const Astring: string);
begin
  FApresentacaoProduto := Astring;
  FApresentacaoProduto_Specified := True;
end;

function ProgramaProdutoBase2.ApresentacaoProduto_Specified(Index: Integer): boolean;
begin
  Result := FApresentacaoProduto_Specified;
end;

procedure ProgramaProdutoBase2.SetDescontoVendaBase(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FDescontoVendaBase := ATXSDecimal;
  FDescontoVendaBase_Specified := True;
end;

function ProgramaProdutoBase2.DescontoVendaBase_Specified(Index: Integer): boolean;
begin
  Result := FDescontoVendaBase_Specified;
end;

procedure ProgramaProdutoBase2.SetDescontoReposicaoBase(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FDescontoReposicaoBase := ATXSDecimal;
  FDescontoReposicaoBase_Specified := True;
end;

function ProgramaProdutoBase2.DescontoReposicaoBase_Specified(Index: Integer): boolean;
begin
  Result := FDescontoReposicaoBase_Specified;
end;

procedure ProgramaProdutoBase2.SetPMC(Index: Integer; const ATXSDecimal: TXSDecimal);
begin
  FPMC := ATXSDecimal;
  FPMC_Specified := True;
end;

function ProgramaProdutoBase2.PMC_Specified(Index: Integer): boolean;
begin
  Result := FPMC_Specified;
end;

procedure ProgramaProdutoBase2.SetEans(Index: Integer; const AArrayOfstring: ArrayOfstring);
begin
  FEans := AArrayOfstring;
  FEans_Specified := True;
end;

function ProgramaProdutoBase2.Eans_Specified(Index: Integer): boolean;
begin
  Result := FEans_Specified;
end;

destructor ProdutoRegraDescontoGridResponse2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FMensagemFooter)-1 do
    System.SysUtils.FreeAndNil(FMensagemFooter[I]);
  System.SetLength(FMensagemFooter, 0);
  for I := 0 to System.Length(FMensagemHeader)-1 do
    System.SysUtils.FreeAndNil(FMensagemHeader[I]);
  System.SetLength(FMensagemHeader, 0);
  for I := 0 to System.Length(FTitulo)-1 do
    System.SysUtils.FreeAndNil(FTitulo[I]);
  System.SetLength(FTitulo, 0);
  System.SysUtils.FreeAndNil(FGridDesconto);
  inherited Destroy;
end;

procedure ProdutoRegraDescontoGridResponse2.SetGridDesconto(Index: Integer; const AGriddesconto2: Griddesconto2);
begin
  FGridDesconto := AGriddesconto2;
  FGridDesconto_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.GridDesconto_Specified(Index: Integer): boolean;
begin
  Result := FGridDesconto_Specified;
end;

procedure ProdutoRegraDescontoGridResponse2.SetMensagem(Index: Integer; const AArrayOfstring: ArrayOfstring);
begin
  FMensagem := AArrayOfstring;
  FMensagem_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.Mensagem_Specified(Index: Integer): boolean;
begin
  Result := FMensagem_Specified;
end;

procedure ProdutoRegraDescontoGridResponse2.SetMensagemFooter(Index: Integer; const AArrayOfMensagem: ArrayOfMensagem);
begin
  FMensagemFooter := AArrayOfMensagem;
  FMensagemFooter_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.MensagemFooter_Specified(Index: Integer): boolean;
begin
  Result := FMensagemFooter_Specified;
end;

procedure ProdutoRegraDescontoGridResponse2.SetMensagemHeader(Index: Integer; const AArrayOfMensagem: ArrayOfMensagem);
begin
  FMensagemHeader := AArrayOfMensagem;
  FMensagemHeader_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.MensagemHeader_Specified(Index: Integer): boolean;
begin
  Result := FMensagemHeader_Specified;
end;

procedure ProdutoRegraDescontoGridResponse2.SetMostrarPopUp(Index: Integer; const Astring: string);
begin
  FMostrarPopUp := Astring;
  FMostrarPopUp_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.MostrarPopUp_Specified(Index: Integer): boolean;
begin
  Result := FMostrarPopUp_Specified;
end;

procedure ProdutoRegraDescontoGridResponse2.SetTitulo(Index: Integer; const AArrayOfTitulo: ArrayOfTitulo);
begin
  FTitulo := AArrayOfTitulo;
  FTitulo_Specified := True;
end;

function ProdutoRegraDescontoGridResponse2.Titulo_Specified(Index: Integer): boolean;
begin
  Result := FTitulo_Specified;
end;

destructor ProgramaBase2.Destroy;
var
  I: Integer;
begin
  for I := 0 to System.Length(FProdutos)-1 do
    System.SysUtils.FreeAndNil(FProdutos[I]);
  System.SetLength(FProdutos, 0);
  inherited Destroy;
end;

procedure ProgramaBase2.SetCodigoPrograma(Index: Integer; const AInteger: Integer);
begin
  FCodigoPrograma := AInteger;
  FCodigoPrograma_Specified := True;
end;

function ProgramaBase2.CodigoPrograma_Specified(Index: Integer): boolean;
begin
  Result := FCodigoPrograma_Specified;
end;

procedure ProgramaBase2.SetNomePrograma(Index: Integer; const Astring: string);
begin
  FNomePrograma := Astring;
  FNomePrograma_Specified := True;
end;

function ProgramaBase2.NomePrograma_Specified(Index: Integer): boolean;
begin
  Result := FNomePrograma_Specified;
end;

procedure ProgramaBase2.SetOrigensPermitidas(Index: Integer; const AArrayOfint: ArrayOfint);
begin
  FOrigensPermitidas := AArrayOfint;
  FOrigensPermitidas_Specified := True;
end;

function ProgramaBase2.OrigensPermitidas_Specified(Index: Integer): boolean;
begin
  Result := FOrigensPermitidas_Specified;
end;

procedure ProgramaBase2.SetProdutos(Index: Integer; const AArrayOfProgramaProdutoBase: ArrayOfProgramaProdutoBase);
begin
  FProdutos := AArrayOfProgramaProdutoBase;
  FProdutos_Specified := True;
end;

function ProgramaBase2.Produtos_Specified(Index: Integer): boolean;
begin
  Result := FProdutos_Specified;
end;

destructor AutorizacaoResponse2.Destroy;
begin
  System.SysUtils.FreeAndNil(FTransacao);
  inherited Destroy;
end;

procedure AutorizacaoResponse2.SetTransacao(Index: Integer; const AAutorizacaoResponseTransacao2: AutorizacaoResponseTransacao2);
begin
  FTransacao := AAutorizacaoResponseTransacao2;
  FTransacao_Specified := True;
end;

function AutorizacaoResponse2.Transacao_Specified(Index: Integer): boolean;
begin
  Result := FTransacao_Specified;
end;

procedure VendaPreAutorizadaResponse2.SetComprovante(Index: Integer; const Astring: string);
begin
  FComprovante := Astring;
  FComprovante_Specified := True;
end;

function VendaPreAutorizadaResponse2.Comprovante_Specified(Index: Integer): boolean;
begin
  Result := FComprovante_Specified;
end;

destructor DadosReceita2.Destroy;
begin
  System.SysUtils.FreeAndNil(FDataReceita);
  inherited Destroy;
end;

procedure DadosReceita2.SetQuantidadeReceita(Index: Integer; const AInteger: Integer);
begin
  FQuantidadeReceita := AInteger;
  FQuantidadeReceita_Specified := True;
end;

function DadosReceita2.QuantidadeReceita_Specified(Index: Integer): boolean;
begin
  Result := FQuantidadeReceita_Specified;
end;

procedure DadosReceita2.SetDataReceita(Index: Integer; const ATXSDateTime: TXSDateTime);
begin
  FDataReceita := ATXSDateTime;
  FDataReceita_Specified := True;
end;

function DadosReceita2.DataReceita_Specified(Index: Integer): boolean;
begin
  Result := FDataReceita_Specified;
end;

procedure DadosReceita2.SetConselho(Index: Integer; const AConselhos: Conselhos);
begin
  FConselho := AConselhos;
  FConselho_Specified := True;
end;

function DadosReceita2.Conselho_Specified(Index: Integer): boolean;
begin
  Result := FConselho_Specified;
end;

procedure DadosReceita2.SetNumeroRegistroConselho(Index: Integer; const AInteger: Integer);
begin
  FNumeroRegistroConselho := AInteger;
  FNumeroRegistroConselho_Specified := True;
end;

function DadosReceita2.NumeroRegistroConselho_Specified(Index: Integer): boolean;
begin
  Result := FNumeroRegistroConselho_Specified;
end;

procedure DadosReceita2.SetSiglaEstado(Index: Integer; const Astring: string);
begin
  FSiglaEstado := Astring;
  FSiglaEstado_Specified := True;
end;

function DadosReceita2.SiglaEstado_Specified(Index: Integer): boolean;
begin
  Result := FSiglaEstado_Specified;
end;

initialization
  { IServiceAutorizador }
  InvRegistry.RegisterInterface(TypeInfo(IServiceAutorizador), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Soap', 'utf-8');
  InvRegistry.RegisterDefaultSOAPAction(TypeInfo(IServiceAutorizador), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Soap/IServiceAutorizador/%operationName%');
  InvRegistry.RegisterInvokeOptions(TypeInfo(IServiceAutorizador), ioDocument);
  { IServiceAutorizador.AutenticarUserWebservice }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'AutenticarUserWebservice', '',
                                 '[ReturnName="AutenticarUserWebserviceResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarUserWebservice', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarUserWebservice', 'AutenticarUserWebserviceResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  { IServiceAutorizador.AutenticarAcesso }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'AutenticarAcesso', '',
                                 '[ReturnName="AutenticarAcessoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarAcesso', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarAcesso', 'AutenticarAcessoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  { IServiceAutorizador.AutenticarEstabelecimentoSenha }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'AutenticarEstabelecimentoSenha', '',
                                 '[ReturnName="AutenticarEstabelecimentoSenhaResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarEstabelecimentoSenha', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AutenticarEstabelecimentoSenha', 'AutenticarEstabelecimentoSenhaResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication"]', IS_NLBL);
  { IServiceAutorizador.ConsultarBaseProgramasProdutos }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'ConsultarBaseProgramasProdutos', '',
                                 '[ReturnName="ConsultarBaseProgramasProdutosResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarBaseProgramasProdutos', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarBaseProgramasProdutos', 'ConsultarBaseProgramasProdutosResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso"]', IS_NLBL);
  { IServiceAutorizador.ConsultarPrecosRegras }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'ConsultarPrecosRegras', '',
                                 '[ReturnName="ConsultarPrecosRegrasResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarPrecosRegras', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarPrecosRegras', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarPrecosRegras', 'ConsultarPrecosRegrasResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  { IServiceAutorizador.ConsultarProdutoRegraDesconto }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'ConsultarProdutoRegraDesconto', '',
                                 '[ReturnName="ConsultarProdutoRegraDescontoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarProdutoRegraDesconto', 'ean', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarProdutoRegraDesconto', 'cnpj', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarProdutoRegraDesconto', 'ConsultarProdutoRegraDescontoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador", ArrayItemName="ProdutoRegraDescontoGridResponse"]', IS_NLBL);
  { IServiceAutorizador.VendaDireta }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'VendaDireta', '',
                                 '[ReturnName="VendaDiretaResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaDireta', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaDireta', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaDireta', 'VendaDiretaResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  { IServiceAutorizador.PreAutorizar }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'PreAutorizar', '',
                                 '[ReturnName="PreAutorizarResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'PreAutorizar', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'PreAutorizar', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'PreAutorizar', 'PreAutorizarResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  { IServiceAutorizador.AtualizarCupom }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'AtualizarCupom', '',
                                 '[ReturnName="AtualizarCupomResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AtualizarCupom', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AtualizarCupom', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'AtualizarCupom', 'AtualizarCupomResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"]', IS_NLBL);
  { IServiceAutorizador.ResgatarPreAutorizacao }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'ResgatarPreAutorizacao', '',
                                 '[ReturnName="ResgatarPreAutorizacaoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ResgatarPreAutorizacao', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ResgatarPreAutorizacao', 'numeroCartao', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ResgatarPreAutorizacao', 'ResgatarPreAutorizacaoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"]', IS_NLBL);
  { IServiceAutorizador.ConsultarCartao }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'ConsultarCartao', '',
                                 '[ReturnName="ConsultarCartaoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarCartao', 'numeroCartao', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'ConsultarCartao', 'ConsultarCartaoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico"]', IS_NLBL);
  { IServiceAutorizador.CancelarTransacao }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'CancelarTransacao', '',
                                 '[ReturnName="CancelarTransacaoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'CancelarTransacao', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'CancelarTransacao', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'CancelarTransacao', 'CancelarTransacaoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  { IServiceAutorizador.UploadDocumentoTransacao }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'UploadDocumentoTransacao', '',
                                 '[ReturnName="UploadDocumentoTransacaoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'UploadDocumentoTransacao', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'UploadDocumentoTransacao', 'documentoTransacao', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'UploadDocumentoTransacao', 'UploadDocumentoTransacaoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations"]', IS_NLBL);
  { IServiceAutorizador.VendaPreAutorizadaProgramaAcesso }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizadaProgramaAcesso', '',
                                 '[ReturnName="VendaPreAutorizadaProgramaAcessoResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizadaProgramaAcesso', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizadaProgramaAcesso', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizadaProgramaAcesso', 'VendaPreAutorizadaProgramaAcessoResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  { IServiceAutorizador.VendaPreAutorizada }
  InvRegistry.RegisterMethodInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizada', '',
                                 '[ReturnName="VendaPreAutorizadaResult"]', IS_OPTN or IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizada', 'CNPJ', '',
                                '', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizada', 'request', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  InvRegistry.RegisterParamInfo(TypeInfo(IServiceAutorizador), 'VendaPreAutorizada', 'VendaPreAutorizadaResult', '',
                                '[Namespace="http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador"]', IS_NLBL);
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfDescontoProgOcorrencia), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfDescontoProgOcorrencia');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfDescontoCompraConjunta), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfDescontoCompraConjunta');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfDescontocompra), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfDescontocompra');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfBeneficiarioResponsePrograma), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico', 'ArrayOfBeneficiarioResponsePrograma');
  RemClassRegistry.RegisterXSClass(AuthenticationResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'AuthenticationResponse2', 'AuthenticationResponse');
  RemClassRegistry.RegisterXSClass(DescontoProgOcorrencia2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoProgOcorrencia2', 'DescontoProgOcorrencia');
  RemClassRegistry.RegisterXSClass(Descontocompra2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Descontocompra2', 'Descontocompra');
  RemClassRegistry.RegisterXSClass(Mensagem2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Mensagem2', 'Mensagem');
  RemClassRegistry.RegisterXSClass(Mensagem, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Mensagem');
  RemClassRegistry.RegisterXSClass(Titulo2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Titulo2', 'Titulo');
  RemClassRegistry.RegisterXSClass(Titulo, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Titulo');
  RemClassRegistry.RegisterXSClass(DescontoCompraConjunta2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoCompraConjunta2', 'DescontoCompraConjunta');
  RemClassRegistry.RegisterXSClass(DescontoCompraBonificada2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoCompraBonificada2', 'DescontoCompraBonificada');
  RemClassRegistry.RegisterXSClass(DescontoCompraBonificada, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoCompraBonificada');
  RemClassRegistry.RegisterXSClass(AuthenticationRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'AuthenticationRequest2', 'AuthenticationRequest');
  RemClassRegistry.RegisterXSClass(DescontoProgOcorrencia, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoProgOcorrencia');
  RemClassRegistry.RegisterXSInfo(TypeInfo(TipoDocumentoTransacao), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums', 'TipoDocumentoTransacao');
  RemClassRegistry.RegisterXSClass(DescontoCompraConjunta, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'DescontoCompraConjunta');
  RemClassRegistry.RegisterXSClass(Descontocompra, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Descontocompra');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfDescontoCompraBonificada), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfDescontoCompraBonificada');
  RemClassRegistry.RegisterXSClass(AuthenticationRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'AuthenticationRequest');
  RemClassRegistry.RegisterXSClass(AuthenticationResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'AuthenticationResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfProdutoRegraDescontoGridResponse), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfProdutoRegraDescontoGridResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfProgramaBase), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ArrayOfProgramaBase');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfValidationError), 'http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations', 'ArrayOfValidationError');
  RemClassRegistry.RegisterXSClass(ValidationResult2, 'http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations', 'ValidationResult2', 'ValidationResult');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ValidationResult2), 'Errors', '[ArrayItemName="ValidationError"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ValidationResult2), 'Message_', '[ExtName="Message"]');
  RemClassRegistry.RegisterXSClass(GetProgramaProdutoBaseResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso', 'GetProgramaProdutoBaseResponse2', 'GetProgramaProdutoBaseResponse');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(GetProgramaProdutoBaseResponse2), 'Programas', '[ArrayItemName="ProgramaBase"]');
  RemClassRegistry.RegisterXSClass(ValidationResult, 'http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations', 'ValidationResult');
  RemClassRegistry.RegisterXSClass(ValidationError2, 'http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations', 'ValidationError2', 'ValidationError');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ValidationError2), 'Message_', '[ExtName="Message"]');
  RemClassRegistry.RegisterXSClass(ValidationError, 'http://schemas.datacontract.org/2004/07/Funcional.AcessoUnico.Domain.Validations', 'ValidationError');
  RemClassRegistry.RegisterXSClass(DocumentoTransacaoRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao', 'DocumentoTransacaoRequest2', 'DocumentoTransacaoRequest');
  RemClassRegistry.RegisterXSClass(DocumentoTransacaoRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao', 'DocumentoTransacaoRequest');
  RemClassRegistry.RegisterXSClass(VendaPreAutorizadaProgramaAcessoRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'VendaPreAutorizadaProgramaAcessoRequest2', 'VendaPreAutorizadaProgramaAcessoRequest');
  RemClassRegistry.RegisterXSClass(VendaPreAutorizadaProgramaAcessoRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'VendaPreAutorizadaProgramaAcessoRequest');
  RemClassRegistry.RegisterXSClass(AtualizaCupomRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AtualizaCupomRequest2', 'AtualizaCupomRequest');
  RemClassRegistry.RegisterXSClass(AtualizaCupomRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AtualizaCupomRequest');
  RemClassRegistry.RegisterXSClass(ApiKey2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'ApiKey2', 'ApiKey');
  RemClassRegistry.RegisterXSClass(ApiKey, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Authentication', 'ApiKey');
  RemClassRegistry.RegisterXSClass(CancelamentoResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'CancelamentoResponse2', 'CancelamentoResponse');
  RemClassRegistry.RegisterXSClass(CancelamentoResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'CancelamentoResponse');
  RemClassRegistry.RegisterXSClass(CancelamentoRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'CancelamentoRequest2', 'CancelamentoRequest');
  RemClassRegistry.RegisterXSClass(CancelamentoRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'CancelamentoRequest');
  RemClassRegistry.RegisterXSClass(BeneficiarioResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico', 'BeneficiarioResponse2', 'BeneficiarioResponse');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(BeneficiarioResponse2), 'Programas', '[ArrayItemName="BeneficiarioResponsePrograma"]');
  RemClassRegistry.RegisterXSClass(BeneficiarioResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico', 'BeneficiarioResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfAutorizacaoResponseItem), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfAutorizacaoResponseItem');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseTransacao2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseTransacao2', 'AutorizacaoResponseTransacao');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(AutorizacaoResponseTransacao2), 'Itens', '[ArrayItemName="AutorizacaoResponseItem"]');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseTransacao, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseTransacao');
  RemClassRegistry.RegisterXSClass(ResgataPreAutorizacaoResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao', 'ResgataPreAutorizacaoResponse2', 'ResgataPreAutorizacaoResponse');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ResgataPreAutorizacaoResponse2), 'Itens', '[ArrayItemName="AutorizacaoResponseItem"]');
  RemClassRegistry.RegisterXSClass(ResgataPreAutorizacaoResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.Autorizacao', 'ResgataPreAutorizacaoResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfAutorizacaoRequestItem), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfAutorizacaoRequestItem');
  RemClassRegistry.RegisterXSClass(AutorizacaoRequest2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoRequest2', 'AutorizacaoRequest');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(AutorizacaoRequest2), 'Itens', '[ArrayItemName="AutorizacaoRequestItem"]');
  RemClassRegistry.RegisterXSClass(AutorizacaoRequest, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoRequest');
  RemClassRegistry.RegisterXSClass(AutorizacaoRequestItem2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoRequestItem2', 'AutorizacaoRequestItem');
  RemClassRegistry.RegisterXSClass(AutorizacaoRequestItem, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoRequestItem');
  RemClassRegistry.RegisterXSClass(Griddesconto2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Griddesconto2', 'Griddesconto');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoCompraBonificada', '[ArrayItemName="DescontoCompraBonificada"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoCompraConjunta', '[ArrayItemName="DescontoCompraConjunta"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoCompraDiferente', '[ArrayItemName="Descontocompra"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoLinear', '[ArrayItemName="Descontocompra"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoMesmaCompra', '[ArrayItemName="Descontocompra"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'DescontoProgOcorrencia', '[ArrayItemName="DescontoProgOcorrencia"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(Griddesconto2), 'PrimeiraCompra', '[ArrayItemName="Descontocompra"]');
  RemClassRegistry.RegisterXSClass(Griddesconto, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'Griddesconto');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfMensagem), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfMensagem');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfTitulo), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ArrayOfTitulo');
  RemClassRegistry.RegisterXSInfo(TypeInfo(TipoPrograma), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums', 'TipoPrograma');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseItem2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseItem2', 'AutorizacaoResponseItem');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseItem, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseItem');
  RemClassRegistry.RegisterXSClass(BeneficiarioResponsePrograma2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico', 'BeneficiarioResponsePrograma2', 'BeneficiarioResponsePrograma');
  RemClassRegistry.RegisterXSClass(BeneficiarioResponsePrograma, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.BeneficiarioBasico', 'BeneficiarioResponsePrograma');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseItemStatus2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseItemStatus2', 'AutorizacaoResponseItemStatus');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponseItemStatus, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponseItemStatus');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfProgramaProdutoBase), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ArrayOfProgramaProdutoBase');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfstring), 'http://schemas.microsoft.com/2003/10/Serialization/Arrays', 'ArrayOfstring');
  RemClassRegistry.RegisterXSClass(ProgramaProdutoBase2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ProgramaProdutoBase2', 'ProgramaProdutoBase');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProgramaProdutoBase2), 'Eans', '[ArrayItemName="string"]');
  RemClassRegistry.RegisterXSClass(ProdutoRegraDescontoGridResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ProdutoRegraDescontoGridResponse2', 'ProdutoRegraDescontoGridResponse');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProdutoRegraDescontoGridResponse2), 'Mensagem', '[ArrayItemName="string"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProdutoRegraDescontoGridResponse2), 'MensagemFooter', '[ArrayItemName="Mensagem"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProdutoRegraDescontoGridResponse2), 'MensagemHeader', '[ArrayItemName="Mensagem"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProdutoRegraDescontoGridResponse2), 'Titulo', '[ArrayItemName="Titulo"]');
  RemClassRegistry.RegisterXSClass(ProdutoRegraDescontoGridResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'ProdutoRegraDescontoGridResponse');
  RemClassRegistry.RegisterXSClass(GetProgramaProdutoBaseResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Application.ViewModels.ProgramaAcesso', 'GetProgramaProdutoBaseResponse');
  RemClassRegistry.RegisterXSInfo(TypeInfo(ArrayOfint), 'http://schemas.microsoft.com/2003/10/Serialization/Arrays', 'ArrayOfint');
  RemClassRegistry.RegisterXSClass(ProgramaBase2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ProgramaBase2', 'ProgramaBase');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProgramaBase2), 'OrigensPermitidas', '[ArrayItemName="int"]');
  RemClassRegistry.RegisterExternalPropName(TypeInfo(ProgramaBase2), 'Produtos', '[ArrayItemName="ProgramaProdutoBase"]');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponse2', 'AutorizacaoResponse');
  RemClassRegistry.RegisterXSClass(VendaPreAutorizadaResponse2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'VendaPreAutorizadaResponse2', 'VendaPreAutorizadaResponse');
  RemClassRegistry.RegisterXSClass(VendaPreAutorizadaResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'VendaPreAutorizadaResponse');
  RemClassRegistry.RegisterXSClass(AutorizacaoResponse, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects.Autorizador', 'AutorizacaoResponse');
  RemClassRegistry.RegisterXSClass(ProgramaProdutoBase, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ProgramaProdutoBase');
  RemClassRegistry.RegisterXSInfo(TypeInfo(Conselhos), 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.Enums', 'Conselhos');
  RemClassRegistry.RegisterXSClass(DadosReceita2, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'DadosReceita2', 'DadosReceita');
  RemClassRegistry.RegisterXSClass(DadosReceita, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'DadosReceita');
  RemClassRegistry.RegisterXSClass(ProgramaBase, 'http://schemas.datacontract.org/2004/07/Funcional.AutorizadorOmniChannel.Domain.DataTransferObjects', 'ProgramaBase');

end.