Informações de Pagamento (pag)

Acrescentado o campo vTroco. As demais alterações referem-se a um grupo novo no XML da NFe (detPag). A integração manteve o layout atual e ajusta automaticamente na geração do XML.

Criados métodos equivalentes aos já existentes para NFC-e para pagamento.

O valor de troco é informado para cada pagamento e será totalizado.

  • Efetuar Pagamento
// Este método efetua um pagamento para a NF-e em operação, permite que a mesma NF-e tenha mais de uma forma de pagamento

int retorno = eNFe_Pagamento( handleEmissor,
    //Este parâmetro indica a forma do pagamento, e deve ser informado um dos valores abaixo:
    //01- Dinheiro
    //02- Cheque
    //03- Cartão de Crédito
    //04- Cartão de Débito
    //05- Crédito Loja
    //10- Vale Alimentação
    //11- Vale Refeição
    //12- Vale Presente
    //13- Vale Combustível
    //14- Duplicata Mercantil
    //99- Outros
    tipo_pagamento,
    //Valor do pagamento. Utilizar sempre "," ou "." para a indicação das decimais
    valor_pagamento,
    //CNPJ da credenciadora de cartão de crédito ou débito.
    card_cnpj,
    //Bandeira da operação de carção de crédito ou débito. Deve ser informado um dos valores abaixo:
    //01 - Visa
    //02 - Mastercard
    //03 - American Express
    //04 - Sorocred
    //05 - Diners Club
    //06 - Elo
    //07 - Hipercard
    //08 - Aura
    //09 - Cabal
    //99 - Outros
    card_tp_band,
    //Número de autorização da operação do cartão de crédito ou débito.
    card_cAut,
    //Código da credenciadora de cartão de crédito ou débito
    card_cod_adm,
    //Tipo de Integração para pagamento:
    //1 - Pagamento integrado com o sistema de automação da empresa (Ex.: equipamento TEF, Comércio Eletrônico);
    //2 - Pagamento não integrado com o sistema de automação da empresa (Ex.: equipamento POS);
    tp_integra,
    //Valor do troco
    vTroco,
    //Reservado para uso futuro
    reservado3,
    //Reservado para uso futuro
    reservado4);

// Exemplo

//Efetuando um pagamento em dinheiro
int retorno = eNFe_Pagamento( handleEmissor,
                                "1",
                                "15,00",
                                "",
                                "",
                                "",
                                "",
                                "",
                                "",
                                "",
                                "", "");
//Efetuando um pagamento com informações do cartão de credito
int retorno = eNFe_Pagamento( handleEmissor,
                                "3",
                                "20,00",
                                "99999999000191",
                                "99",
                                "003390",
                                "001",
                                "2",
                                "5,00",
                                "", "");

// Retornos

1- Sucesso
20161 - Nenhuma venda aberta para a operação
  • Cancelamento de Pagamento
// Este método permite o cancelamento de qualquer pagamento da venda enquanto ela não for fechada

int retorno = eVenda_CancelarItemParcial(handleEmissor,
    //Número sequencial do pagamento a ser cancelado
    numero_pagamento,
    //Reservado para uso futuro
    reservado1,
    //Reservado para uso futuro
    reservado2);

// Exemplo

//Cancelando o primeiro pagamento da venda
int retorno = eVenda_CancelarItemParcial(handleEmissor,
                                         "1",
                                         "", "");
//Cancelando o terceiro pagamento da venda
int retorno = eNFe_CancelarPagamento(handleEmissor,
                                         "3",
                                         "", "");

// Retornos

1- Sucesso
20161 - Nenhuma venda aberta para a operação
20173 - Problemas ao cancelar o pagamento: A venda não possui pagamento efetuado ou foi informado um número de pagamento inexistente.

Descrição dos campos e alterações

  • detPag - Grupo Detalhamento da Forma de Pagamento.
  • indPag - Indicador da Forma de Pagamento.
  • tPag - Forma de pagamento.
  • vPag - Valor do Pagamento.
  • card - Grupo de Cartões.
    • tpIntegra - Tipo de Integração para pagamento.
    • CNPJ - CNPJ da Credenciadora de cartão de crédito e/ou débito.
    • tBand - Bandeira da operadora de cartão de crédito e/ou débito.
    • cAut - Número de autorização da operação cartão de crédito e/ou débito.
  • vTroco - Valor do troco.
Valores definidos para o campo indPag:
1 - Pagamento à Vista
2 - Pagamento à Prazo

Novas formas de pagamento para o campo tPag:
01 - Dinheiro
02 - Cheque
03 - Cartão de Crédito
04 - Cartão de Débito
05 - Crédito Loja
10 - Vale Alimentação
11 - Vale Refeição
12 - Vale Presente
13 - Vale Combustível
15 - Boleto Bancário
90 - Sem Pagamento
99 - Outros

Novos valores definidos para o campo tBand (card):
01 - Visa
02 - Mastercard
03 - American Express
04 - Sorocred
05 - Diners Club
06 - Elo
07 - Hipercard
08 - Aura
09 - Cabal
99 - Outros

Caminho completo dos campos no XML da NF-e

xPath Alteração
TNFe/infNFe/pag/tPag Movido para grupo detPag
TNFe/infNFe/pag/vPag Movido para grupo detPag
TNFe/infNFe/pag/card Grupo Movido para o grupo detPag
TNFe/infNFe/pag/detPag Novo grupo
TNFe/infNFe/pag/detPag/indPag Adicionado
TNFe/infNFe/pag/detPag/tPag Movido/Adicionado Valor
TNFe/infNFe/pag/detPag/vPag Movido
TNFe/infNFe/pag/detPag/card Grupo Movido
TNFe/infNFe/pag/detPag/card/tpIntegra Movido
TNFe/infNFe/pag/detPag/card/CNPJ Movido
TNFe/infNFe/pag/detPag/card/tBand Movido/Adicionado Valor
TNFe/infNFe/pag/detPag/card/cAut Movido
TNFe/infNFe/pag/vTroco Adicionado