Transacional

APIs relacionadas ao fluxo transacional (venda, cancelamento)

🚧

Antes de usar as APIs...

Certifique-se de ter verificado as secções de APIs e Chave de Integração, além de ter lido as nossas Informações preliminares.

POST Venda/Vender

📘

{{Url}}/Venda/Vender/?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

Esta API será a utlizada para realizar vendas. Deveremos indicar para cada venda:

  • a forma de pagamento;

  • o ID do terminal;

  • uma referência própria (Ex: ID da venda do próprio sistema, NSU, etc);

  • A opção Iniciar automaticamente (true ou false) / indica se o TEF deverá ser inicializado automaticamente (expirando a intenção de venda caso o TEF não responda em tempo hábil) ou se uma intenção de venda deverá apenas ser criada no sistema ControlPay para consumo posterior;

  • Indicar se o parcelamento será feito pelo lojista ou pela administradora*,

  • Quantidade de parcelas*;

  • Qual a adquirente escolhida para a transação*,

  • Lista de produto(s) vendido(s) ou apenas o valor total (opcional, um ou outro). Caso enviado o produto, enviar lista:

"produtosVendidos"
{
   "Id": "", 
   "Valor": "1.00", 
   "Quantidade": "1"
},
{
   "Id": "", 
   "Valor": "1.00", 
   "Quantidade": "1"
}

*se não declarado, será assumido o parcelamento lojista.

📘

Valor total vendido

Caso esteja habilitado para o terminal, o usuário pode escolher não utilizar as propriedades de produtos e sim a venda por valor.

Para isto, basta usar a propriedade "valorTotalVendido" com um valor decimal (como "26,00", por exemplo).

Observação: caso sejam usados os dois ("produtosVendidos" e "valorTotalVendido"), a soma dos valores dos produtos deve ser o valor presente na propriedade "valorTotalVendido".

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}

Exemplo: Venda/Vender

curl --location --request POST 'sandbox.controlpay.com.br/webapi/Venda/Vender/?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
    "formaPagamentoId": 21,
    "terminalId": "81",
    "referencia": null,
    "aguardarTefIniciarTransacao": true,
    "parcelamentoAdmin": null,
    "quantidadeParcelas": 1,
    "adquirente":"",
    "produtosVendidos": [
      {
         "Id": "", 
         "Valor": "1.00", 
         "Quantidade": "1"
      }
    ]
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/Venda/Vender/?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "formaPagamentoId": 21,
    "terminalId": null,
    "referencia": null,
    "aguardarTefIniciarTransacao": false,
    "parcelamentoAdmin": null,
    "quantidadeParcelas": 1,
    "adquirente":"",
    "produtosVendidos": [
      {
         "Id": "", 
         "Valor": "1.00", 
         "Quantidade": "1"
      }
    ]
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/Venda/Vender/?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "formaPagamentoId": 21,
    "terminalId": null,
    "referencia": null,
    "aguardarTefIniciarTransacao": true,
    "parcelamentoAdmin": null,
    "quantidadeParcelas": 1,
    "adquirente":"",
    "produtosVendidos": [
      {
         "Id": "", 
         "Valor": "1.00", 
         "Quantidade": "1"
      }
    ]
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/Venda/Vender/?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "formaPagamentoId": 1111,
    "terminalId": "",
    "referencia": null,
    "aguardarTefIniciarTransacao": true,
    "parcelamentoAdmin": null,
    "quantidadeParcelas": 1,
    "adquirente":"",
    "produtosVendidos": [
      {
         "Id": "", 
         "Valor": "1.00", 
         "Quantidade": "1"
      }
    ]
}'
{
  "data": "17/11/2016 17:44:59.1570",
  "intencaoVenda": {
    "id": 23454,
    "token": "585156",
    "data": "17/11/2016 17:44:57.0000",
    "hora": "17:44:57",
    "quantidade": 1,
    "valorOriginal": 1,
    "valorOriginalFormat": "1,00",
    "valorAcrescimo": 0,
    "valorAcrescimoFormat": "0,00",
    "valorDesconto": 0,
    "valorDescontoFormat": "0,00",
    "valorFinal": 1,
    "valorFinalFormat": "1,00",
    "gate2allToken": null,
    "quantidadeParcelas": 1,
    "urlPagamento": null,
    "formaPagamento": {
      "id": 21,
      "nome": "TEF",
      "modalidade": "Crédito",
      "fluxoPagamento": {
        "id": 21,
        "nome": "TEF"
      }
    },
    "terminal": {
      "id": 81,
      "nome": "CAIXA 01"
    },
    "pagamentosExterno": [
      {
        "id": 1574,
        "tipo": 5,
        "origem": 5,
        "tipoParcelamento": 2,
        "pagamentoExternoStatus": {
          "id": 10,
          "nome": "Em Operacao"
        }
      }
    ],
    "intencaoVendaStatus": {
      "id": 6,
      "nome": "Em Pagamento"
    },
    "cliente": null,
    "produtos": [
      {
        "itemProdutoId": 13629,
        "id": 2,
        "nome": "Refeição",
        "quantidade": 1,
        "valor": "1,00"
      }
    ],
    "pedido": null
  }
}
{
  "data": "17/11/2016 17:40:59.2731",
  "intencaoVenda": {
    "id": 23452,
    "token": "476063",
    "data": "17/11/2016 17:40:59.2418",
    "hora": "17:40:59",
    "quantidade": 1,
    "valorOriginal": 1,
    "valorOriginalFormat": "1,00",
    "valorAcrescimo": 0,
    "valorAcrescimoFormat": "0,00",
    "valorDesconto": 0,
    "valorDescontoFormat": "0,00",
    "valorFinal": 1,
    "valorFinalFormat": "1,00",
    "gate2allToken": null,
    "quantidadeParcelas": 1,
    "urlPagamento": null,
    "formaPagamento": {
      "id": 21,
      "nome": "TEF",
      "modalidade": "Crédito",
      "fluxoPagamento": {
        "id": 21,
        "nome": "TEF"
      }
    },
    "terminal": {
      "id": 81,
      "nome": "CAIXA 01"
    },
    "pagamentosExterno": [
      {
        "id": 1572,
        "tipo": 5,
        "origem": 5,
        "tipoParcelamento": 2,
        "pagamentoExternoStatus": {
          "id": 5,
          "nome": "Pendente"
        }
      }
    ],
    "intencaoVendaStatus": {
      "id": 5,
      "nome": "Pendente"
    },
    "cliente": null,
    "produtos": [
      {
        "itemProdutoId": 13627,
        "id": 2,
        "nome": "Refeição",
        "quantidade": 1,
        "valor": "1,00"
      }
    ],
    "pedido": null
  }
}
{
  "data": "17/11/2016 17:40:37.9417",
  "intencaoVenda": {
    "id": 23451,
    "token": "243564",
    "data": "17/11/2016 17:40:21.0000",
    "hora": "17:40:21",
    "quantidade": 1,
    "valorOriginal": 1,
    "valorOriginalFormat": "1,00",
    "valorAcrescimo": 0,
    "valorAcrescimoFormat": "0,00",
    "valorDesconto": 0,
    "valorDescontoFormat": "0,00",
    "valorFinal": 1,
    "valorFinalFormat": "1,00",
    "gate2allToken": null,
    "quantidadeParcelas": 1,
    "urlPagamento": null,
    "formaPagamento": {
      "id": 21,
      "nome": "TEF",
      "modalidade": "Crédito",
      "fluxoPagamento": {
        "id": 21,
        "nome": "TEF"
      }
    },
    "terminal": {
      "id": 81,
      "nome": "CAIXA 01"
    },
    "pagamentosExterno": [
      {
        "id": 1571,
        "tipo": 5,
        "origem": 5,
        "tipoParcelamento": 2,
        "pagamentoExternoStatus": {
          "id": 15,
          "nome": "Finalizado"
        }
      }
    ],
    "intencaoVendaStatus": {
      "id": 15,
      "nome": "Expirado"
    },
    "cliente": null,
    "produtos": [
      {
        "itemProdutoId": 13626,
        "id": 2,
        "nome": "Refeição",
        "quantidade": 1,
        "valor": "1,00"
      }
    ],
    "pedido": null
  }
}
{
  "message": "Parâmetro [formaPagamentoId] não pode ser nulo."
}

📘

Propriedades opcionais

A partir da versão 1.21.1.0 do ControlPay, há propriedades permitindo que sejam realizadas vendas à vista, pré-datadas e parceladas com a adição de apenas uma propriedade, ou vendas "genéricas", nas quais o financiamento/parcelamento é escolhido na hora do pagamento.

É importante ressaltar que, para o uso destas propriedades, é necessário o uso do PayGo Windows versão 5.1.21.21 ou posterior. Para versões anteriores, o funcionamento da API continuará inalterado.

As propriedades são opcionais no body da chamada e podem ser encontradas abaixo:

preDatado: Booleano que indica um débito pré-datado;

aVista: Booleano indicando um crédito/débito à vista;

parcelamentoAdmin: Booleano indica um parcelamento (true = admin/emissor; false = loja). Funciona em conjunto com as parcelas (só vai ser levado em conta se for mais de uma parcela);

quantidadeParcelas: número inteiro indicando a quantidade de parcelas para um parcelamento.

Enum dos status das Intenções de Venda

ValorStatusDescrição
5PendenteTransação pendente de pagamento. Somente foi criada e não iniciou nenhum fluxo de pagamento ainda
6EmPagamentoTransação que já iniciou um processo de pagamento
10CreditadoPagamento aprovado
15ExpiradoSe é solicitado o "iniciar pagamento automático" e não for possível inicia-lo, a transação fica com status de expirado após 15 segundos
18CancelamentoIniciadoSolicitado o processo de cancelamento
19EmCancelamentoSistema de pagamento recebeu a solicitação de cancelamento
20CanceladoCancelamento concluído
25PagamentoRecusadoPagamento não aprovado pela adquirente ou banco emissor

Enum dos status dos Pagamentos Externos

StatusDescrição
5Pendente
10Em Operação
15Finalizado

POST Venda/CancelarVenda

📘

{{Url}}/Venda/CancelarVenda?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

Através desta API é possível iniciar o processo de cancelamento de uma transação já autorizada. É mandatório que o cancelamento ocorra no mesmo terminal onde houve a transação de venda, a não ser em casos de transações de e-commerce, que não necessitam de terminal. Outra regra importante: o cancelamento de transações de cartão presente só podem acontecer no mesmo dia da transação de venda.

Parâmetros:

intencaoVendaIdID da intenção de venda originada na Intenção de venda
TerminalIdID do terminal. Mandatório que seja o mesmo terminal que realizou a venda
iniciarTransacaoAutomaticamenteMesmo conceito da API de Venda, que fará o client ControlPay ser acionado automaticamente, caso o parâmetros seja enviado como true
senhaTecnicaSenha técnica cadastrada para o estabelecimento. Essa senha pode ser alterada por qualquer um que tenha acesso à conta do estabelecimento no painel do ControlPay
HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}

Exemplo: Venda/CancelarVenda

curl --location --request POST 'sandbox.controlpay.com.br/webapi/Venda/CancelarVenda?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
    "intencaoVendaId":"23456",
    "terminalId": "",
    "aguardarTefIniciarTransacao": false,
    "senhaTecnica": "123456"
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/Venda/CancelarVenda?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "intencaoVendaId":"",
    "terminalId":"",
    "aguardarTefIniciarTransacao":false,
    "senhaTecnica": "minhasenha"
}'
{
  "data": "17/11/2016 18:27:18.6004",
  "intencaoVenda": {
    "id": 23456,
    "token": "442928",
    "data": "17/11/2016 18:26:30.0000",
    "hora": "18:26:30",
    "quantidade": 1,
    "valorOriginal": 3,
    "valorOriginalFormat": "3,00",
    "valorAcrescimo": 0,
    "valorAcrescimoFormat": "0,00",
    "valorDesconto": 0,
    "valorDescontoFormat": "0,00",
    "valorFinal": 3,
    "valorFinalFormat": "3,00",
    "gate2allToken": null,
    "formaPagamento": {
      "id": 21,
      "nome": "TEF",
      "modalidade": "Crédito",
      "fluxoPagamento": {
        "id": 21,
        "nome": "TEF"
      }
    },
    "intencaoVendaStatus": {
      "id": 20,
      "nome": "Cancelado"
    },
    "cliente": null,
    "produtos": [
      {
        "itemProdutoId": 13631,
        "id": 17,
        "nome": "Coca-Cola",
        "quantidade": 1,
        "valor": "3,00"
      }
    ]
  }
}
{
  "message": "Parâmetro [intencaoVendaId] não pode ser nulo."
}

POST IntencaoVenda/GetByFiltros

📘

{{Url}}/IntencaoVenda/GetByFiltros?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

Com essa API é possível consultar as transações. Vários filtros podem ser utilizados, em conjunto ou individualmente. Recomendamos consultar as transações a partir do campo "referência", passado no método "Venda/Vender", durante a criação da intenção de venda.

Embora a consulta por status possa ser realizada tanto via Id, como Nome, recomendamos que esta consulta sempre seja realizada por Id. Isto evitará possíveis inconsistências caso um status seja renomeado no futuro.

CampoDescriçãoMandatórioTipoObservação
intencaoVendaIdO identificador único da intenção de venda no ControlPay.NãoInteiroObrigatório caso nenhum outro elemento seja informado.
formaPagamentoIdO identificador único da forma de pagamento no ControlPay.NãoInteiroBusca todas as intenções de venda que tenham esta forma de pagamento. Pode ser combinado com outros elementos para filtragem dos dados.
terminalIdO identificador único do terminal no ControlPay.NãoInteiroBusca todas as intenções de venda que tenham sido criadas neste terminal. Pode ser combinado com outros elementos para filtragem dos dados.
statusStatus ou lista de status de intenções de venda no ControlPay.NãoInteiroBusca todas as intenções de venda que tenham um destes status no momento da chamada desta API. Pode ser combinado com outros elementos para filtragem dos dados.
referenciaUsado para filtragem rápida das intenções pelo Id externo.NãoInteiroBusca todas as intenções de venda que tenham sido geradas passando-se este valor, na chamada da API de venda. Pode ser combinado com outros elementos para filtragem dos dados.
HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}
{
	"dataFim":"",
	"dataInicio":"",
	"formaPagamentoId":"",
	"status":"",
	"terminalId":"103"
}

Exemplo: IntencaoVenda/GetByFiltros

curl --location --request POST 'sandbox.controlpay.com.br/webapi/IntencaoVenda/GetByFiltros?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
    "intencaoVendaId": 23455,
    "formaPagamentoId": null,
    "terminalId": "",
    "status": "15",
    "vendasDia": true,
    "referencia": null
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/IntencaoVenda/GetByFiltros?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "intencaoVendaId": 23454,
    "formaPagamentoId": null,
    "terminalId": "",
    //"status": "Pendente,15",
    "vendasDia": true,
    "referencia": null
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/IntencaoVenda/GetByFiltros?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "intencaoVendaId": 23486,
    "formaPagamentoId": null,
    "terminalId": "",
    //"status": "10",
    "vendasDia": true,
    "referencia": null
}'
{
  "data": "22/11/2016 17:11:47.6365",
  "intencoesVendas": [
    {
      "id": 23486,
      "referencia": "",
      "token": "458241",
      "data": "18/11/2016 16:17:44",
      "hora": "16:17:44",
      "valorOriginal": 1,
      "valorOriginalFormat": "1,00",
      "valorAcrescimo": 0,
      "valorAcrescimoFormat": "0,00",
      "valorDesconto": 0,
      "valorDescontoFormat": "0,00",
      "valorFinal": 1,
      "valorFinalFormat": "1,00",
      "quantidade": 1,
      "urlPagamento": null,
      "latitude": null,
      "longitude": null,
      "quantidadeParcelas": null,
      "formaPagamento": {
        "id": 22,
        "nome": "TEF",
        "modalidade": "Débito",
        "fluxoPagamento": {
          "id": 21,
          "nome": "TEF"
        }
      },
      "terminal": {
        "id": 81,
        "nome": "CAIXA 01"
      },
      "intencaoVendaStatus": {
        "id": 10,
        "nome": "Creditado"
      },
      "cliente": null,
      "pedido": null,
      "vendedor": {
        "id": 10,
        "nomeRazaoSocial": "THIAGO",
        "sobrenomeNomeFantasia": "SANTOS",
        "fotoThumbnail": "https://sandbox.controlpay.com.br/ImagensPessoas/F8716A4BF785F35C8512B37E969F110C86A1995617EB12724F24BC9B178F8534_148x198.png"
      },
      "pagamentosExternos": [
        {
          "id": 1608,
          "tipo": 5,
          "origem": 5,
          "nsuTid": "16175123815",
          "autorizacao": "019501",
          "adquirente": "VISANET",
          "codigoRespostaAdquirente": "0",
          "mensagemRespostaAdquirente": "AUTORIZADA 019501",
          "dataAdquirente": "2016-11-18T16:17:51",
          "respostaAdquirente": "000-000 = CRT\r\n001-000 = 23486\r\n002-000 = 23486\r\n003-000 = 100\r\n009-000 = 0\r\n010-000 = VISANET\r\n011-000 = 20\r\n012-000 = 16175123815\r\n013-000 = 019501\r\n015-000 = 1811161751\r\n016-000 = 1811161751\r\n022-000 = 18112016\r\n023-000 = 161751\r\n027-000 = 16111816175116175123815\r\n028-000 = 25\r\n029-001 = ****************************************\r\n029-002 = ********* DEMONSTRACAO  PAYGO *********\r\n029-003 = ****************************************\r\n029-004 =     \r\n029-005 =            COMPROVANTE DE TEF\r\n029-006 =     \r\n029-007 =         ESTABELECIMENTO DE TESTE\r\n029-008 =     823982346832235/03876463\r\n029-009 =     \r\n029-010 =     18/11/2016              16:17:51\r\n029-011 =     REF.FISCAL:23486\r\n029-012 =     DOC:006423        AUTORIZ:019501\r\n029-013 =     REF.HOST:16175123815\r\n029-014 =     \r\n029-015 =     DEMOCARD        ************4646\r\n029-016 =     VENDA DEBITO A VISTA\r\n029-017 =     VALOR FINAL: R$ 1,00\r\n029-018 =     \r\n029-019 =     \r\n029-020 =     ________________________________\r\n029-021 =                     \r\n029-022 =     \r\n029-023 = ****************************************\r\n029-024 = ********* DEMONSTRACAO  PAYGO *********\r\n029-025 = ****************************************\r\n030-000 = AUTORIZADA 019501\r\n040-000 = DEMOCARD\r\n710-000 = 4\r\n711-001 = VENDA DEBITO A VISTA\r\n711-002 = DEMOCARD                ************4646\r\n711-003 = POS:03876463  DOC:006423  AUTORIZ:019501\r\n711-004 = VALOR FINAL: R$ 1,00\r\n712-000 = 22\r\n713-001 = ****************************************\r\n713-002 = ********* DEMONSTRACAO  PAYGO *********\r\n713-003 = ****************************************\r\n713-004 =     \r\n713-005 =            COMPROVANTE DE TEF\r\n713-006 =               VIA: CLIENTE\r\n713-007 =     \r\n713-008 =         ESTABELECIMENTO DE TESTE\r\n713-009 =     823982346832235/03876463\r\n713-010 =     \r\n713-011 =     18/11/2016              16:17:51\r\n713-012 =     REF.FISCAL:23486\r\n713-013 =     DOC:006423        AUTORIZ:019501\r\n713-014 =     REF.HOST:16175123815\r\n713-015 =     \r\n713-016 =     DEMOCARD        ************4646\r\n713-017 =     VENDA DEBITO A VISTA\r\n713-018 =     VALOR FINAL: R$ 1,00\r\n713-019 =     \r\n713-020 = ****************************************\r\n713-021 = ********* DEMONSTRACAO  PAYGO *********\r\n713-022 = ****************************************\r\n714-000 = 26\r\n715-001 = ****************************************\r\n715-002 = ********* DEMONSTRACAO  PAYGO *********\r\n715-003 = ****************************************\r\n715-004 =     \r\n715-005 =            COMPROVANTE DE TEF\r\n715-006 =           VIA: ESTABELECIMENTO\r\n715-007 =     \r\n715-008 =         ESTABELECIMENTO DE TESTE\r\n715-009 =     823982346832235/03876463\r\n715-010 =     \r\n715-011 =     18/11/2016              16:17:51\r\n715-012 =     REF.FISCAL:23486\r\n715-013 =     DOC:006423        AUTORIZ:019501\r\n715-014 =     REF.HOST:16175123815\r\n715-015 =     \r\n715-016 =     DEMOCARD        ************4646\r\n715-017 =     VENDA DEBITO A VISTA\r\n715-018 =     VALOR FINAL: R$ 1,00\r\n715-019 =     \r\n715-020 =     \r\n715-021 =     ________________________________\r\n715-022 =                     \r\n715-023 =     \r\n715-024 = ****************************************\r\n715-025 = ********* DEMONSTRACAO  PAYGO *********\r\n715-026 = ****************************************\r\n718-000 = DEMO\r\n719-000 = ESTAB 42\r\n729-000 = 2\r\n730-000 = 1\r\n731-000 = 2\r\n732-000 = 1\r\n737-000 = 3\r\n739-000 = 000\r\n740-000 = 456654*****54646\r\n999-999 = 0",
          "comprovanteAdquirente": "****************************************\r\n ********* DEMONSTRACAO  PAYGO *********\r\n ****************************************\r\n     \r\n            COMPROVANTE DE TEF\r\n     \r\n         ESTABELECIMENTO DE TESTE\r\n     823982346832235/03876463\r\n     \r\n     18/11/2016              16:17:51\r\n     REF.FISCAL:23486\r\n     DOC:006423        AUTORIZ:019501\r\n     REF.HOST:16175123815\r\n     \r\n     DEMOCARD        ************4646\r\n     VENDA DEBITO A VISTA\r\n     VALOR FINAL: R$ 1,00\r\n     \r\n     \r\n     ________________________________\r\n                     \r\n     \r\n ****************************************\r\n ********* DEMONSTRACAO  PAYGO *********\r\n ****************************************",
          "tipoParcelamento": 2,
          "pagamentoExternoStatus": {
            "id": 15,
            "nome": "Finalizado"
          }
        }
      ]
    }
  ]
}

POST IntencaoVenda/GetById

📘

{{Url}}/IntencaoVenda/GetById?key={{Key}}&intencaoVendaId={{IntencaoVendaId}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.
IntencaoVendaId: ID da intenção de venda.

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}
intencaoVendaId{{IntencaoVendaId}}

Esta é a API mais simples para realizar pesquisas de intenções de venda. Ela é uma API sem body que retorna uma intenção de venda (que esteja atrelada à chave de integração usada).

{
    "data": "12/11/2042 13:38:03.3209",
    "intencaoVenda": {
        "id": 2015371,
        "token": "822446",
        "data": "12/11/2024 12:21:16.3613",
        "hora": "12:21:16",
        "dataAtualizacao": "12/11/2024 12:23",
        "quantidade": 0,
        "valorOriginal": 1,
        "valorOriginalFormat": "1,00",
        "valorAcrescimo": 0,
        "valorAcrescimoFormat": "0,00",
        "valorDesconto": 0,
        "valorDescontoFormat": "0,00",
        "valorFinal": 1,
        "valorFinalFormat": "1,00",
        "gate2allToken": null,
        "latitude": null,
        "longitude": null,
        "quantidadeParcelas": 1,
        "urlPagamento": null,
        "formaPagamento": {
            "id": 21,
            "nome": "TEF",
            "modalidade": "Crédito",
            "fluxoPagamento": {
                "id": 21,
                "nome": "TEF"
            }
        },
        "intencaoVendaStatus": {
            "id": 10,
            "nome": "Creditado"
        },
        "pedido": null,
        "vendedor": {
            "id": 12579,
            "nomeRazaoSocial": "Pessoa do exemplo",
    				"sobrenomeNomeFantasia": "Nome do Exemplo",
            "fotoThumbnail": ""
        },
        "cliente": null,
        "produtos": [],
        "pagamentosExternos": [
            {
                "id": 2025992,
                "tipo": 5,
                "idPagamento": "",
                "dataAdquirente": "12/11/2024 12:23",
                "dataAtualizacao": null,
                "origem": 15,
                "autorizacao": "153624",
                "pagamentoExternoStatus": {
                    "id": 15,
                    "nome": "Finalizado"
                },
                "nomeTitularCartao": null
            }
        ],
        "operador": null
    }
}

POST Venda/ConsultarVendas

📘

{{Url}}/Venda/ConsultarVendas?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

Semelhante à API IntencaoVenda/GetByFiltros, esta API pesquisa vendas realizadas pelo cliente, retornando informações relevantes às intenções de venda que estejam de acordo com os critérios de pesquisa.

🚧

Atenção!

É recomendado o uso da API IntencaoVenda/GetByFiltros ao invés desta, pois ela traz mais informações relacionadas (como o terminal utilizado na venda ou os pagamentos externos relacionados à venda).

CampoDescriçãoMandatórioTipoObservação
clienteIdO identificador único de um cliente usado na venda (usado na plataforma para identificar clientes, caso desejado)NãoInteiroObrigatório caso nenhum outro elemento seja informado.
dataInicioData inicial da pesquisa. Serão retornadas intenções de venda realizadas a partir da data fornecida.NãoStringUsar o formato "dd/MM/yyyy HH:mm" casp p campo seja utilizado.
DataFimData final da pesquisa. Serão retornadas intenções de venda realizadas até a data fornecida.NãoInteiroUsar o formato "dd/MM/yyyy HH:mm" casp p campo seja utilizado.
statusStatus de intenção de venda no ControlPay.NãoInteiroObrigatório caso nenhum outro elemento seja informado.
HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}
{
	"clienteId": null,
  "status": 10,
	"dataInicio": "08/07/2020 00:00",
  "dataFim": "08/07/2020 23:59",
}

Exemplo: Venda/ConsultarVendas

curl --location --request POST 'sandbox.controlpay.com.br/webapi/Venda/ConsultarVendas?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
    "clienteId": null,
    "status": 10,
	  "dataInicio": "08/07/2020 00:00",
    "dataFim": "08/07/2020 23:59",
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/IntencaoVenda/GetByFiltros?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "intencaoVendaId": 23454,
    "formaPagamentoId": null,
    "terminalId": "",
    //"status": "Pendente,15",
    "vendasDia": true,
    "referencia": null
}'
curl --location --request POST 'pay2alldemo.azurewebsites.net/webapi/IntencaoVenda/GetByFiltros?key={{Key}}' \
--header 'Content-Type: application/json' \
--data-raw '{
    "intencaoVendaId": 23486,
    "formaPagamentoId": null,
    "terminalId": "",
    //"status": "10",
    "vendasDia": true,
    "referencia": null
}'
{
  "data": "22/11/2016 17:11:47.6365",
  "intencoesVendas": [
    {
      "id": 2007475,
      "token": "062551",
      "data": "28/05/2020 16:00:29.0000",
      "hora": "16:00:29",
      "quantidade": 1,
      "valorOriginal": 0.6600,
      "valorOriginalFormat": "0,66",
      "valorAcrescimo": 0.0000,
      "valorAcrescimoFormat": "0,00",
      "valorDesconto": 0.0000,
      "valorDescontoFormat": "0,00",
      "valorFinal": 0.6600,
      "valorFinalFormat": "0,66",
      "latitude": null,
      "longitude": null,
      "formaPagamento": {
        "id": 11,
        "nome": "POS",
        "modalidade": "Crédito",
        "fluxoPagamento": {
          "id": 11,
          "nome": "Pagamento Sem Confirmação"
        }
      },
      "intencaoVendaStatus": {
        "id": 10,
        "nome": "Creditado"
      },
      "cliente": null,
      "produtos": [
        {
          "itemProdutoId": 400100,
          "id": 7140,
          "nome": "VENDA POR VALOR",
          "quantidade": 1,
          "valor": "0,66",
          "fotoThumbnail": ""
        }
      ],
      "vendedor": {
        "id": 11559,
        "nomeRazaoSocial": "José",
        "sobrenomeNomeFantasia": "Jose.Jose",
        "fotoThumbnail": ""
      },
      {
      "id": 2007479,
      "token": "062558",
      "data": "28/05/2020 16:10:29.0000",
      "hora": "16:10:29",
      "quantidade": 1,
      "valorOriginal": 0.8800,
      "valorOriginalFormat": "0,88",
      "valorAcrescimo": 0.0000,
      "valorAcrescimoFormat": "0,00",
      "valorDesconto": 0.0000,
      "valorDescontoFormat": "0,00",
      "valorFinal": 0.8800,
      "valorFinalFormat": "0,88",
      "latitude": null,
      "longitude": null,
      "formaPagamento": {
        "id": 11,
        "nome": "POS",
        "modalidade": "Crédito",
        "fluxoPagamento": {
          "id": 11,
          "nome": "Pagamento Sem Confirmação"
        }
      },
      "intencaoVendaStatus": {
        "id": 10,
        "nome": "Creditado"
      },
      "cliente": null,
      "produtos": [
        {
          "itemProdutoId": 400100,
          "id": 7140,
          "nome": "VENDA POR VALOR",
          "quantidade": 1,
          "valor": "0,88",
          "fotoThumbnail": ""
        }
      ],
      "vendedor": {
        "id": 11559,
        "nomeRazaoSocial": "José",
        "sobrenomeNomeFantasia": "Jose.Jose",
        "fotoThumbnail": ""
      }
     ]
    }
  ]
}

POST PagamentoExterno/InsertPagamentoExternoTipoAdmin

📘

{{Url}}/PagamentoExterno/InsertPagamentoExternoTipoAdmin?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

API utilizada para realização de funções administrativas de TEF.

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}
{
   "terminalId": "",
   "senhaTecnica": "123456"
}

Exemplo: PagamentoExterno/InsertPagamentoExternoTipoAdmin

curl --location --request POST 'sandbox.controlpay.com.br/webapi/PagamentoExterno/InsertPagamentoExternoTipoAdmin?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
   "terminalId": "",
   "senhaTecnica": "123456"
}'
{
  "data": "17/11/2016 18:32:10.8603",
  "pagamentoExterno": {
    "id": 1578,
    "tipo": 15,
    "origem": 1,
    "pagamentoExternoStatus": {
      "id": 10,
      "nome": "Em Operacao"
    },
    "pessoa": {
      "id": 10,
      "nomeRazaoSocial": "THIAGO",
      "sobrenomeNomeFantasia": "SANTOS"
    },
    "terminal": {
      "id": 81,
      "nome": "CAIXA 01"
    }
  }
}

POST Pedido/Insert

📘

{{Url}}/Pedido/Insert/?key={{Key}}

Variáveis:
Url: endereço do ambiente atual.
Key: chave de acesso.

Essa API insere um novo pedido. Abaixo, temos um exemplo simples de uma chamada de inserção de pedidos, contudo recomendamos visitar a secção de Pedidos da documentação para um melhor entendimento.

(Esta é apenas uma prévia sobre pedidos. Discutiremos mais acerca deles em outra secção).

HEADERS
Content-Typeapplication/json
User-AgentNomeDaAutomacao/1.0
PARAMS
key{{Key}}
{
  "pessoaVendedorId": "2",
   "terminalFisicoId":8,
  "referencia": "REF 010",
  "ValorTotalPedido": "13.00", 
  "urlRetorno": null, 
  "produtosPedido": [
      {
      "Id": "125",  
      "Nome": "Porção de ... ", 
      "Valor": "10.00", 
      "Quantidade": "1"
      }
  ],
  "pedidoFormasPagamento":[
    {
      "FormaPagamento":{
        "Id":21
      },
      "QuantidadeMaximaParcelas":1,
      "Adquirente":"REDE"
    }
  ]
  }

Example: Pedido/Insert

curl --location --request POST 'sandbox.controlpay.com.br/webapi/Pedido/Insert/?key={{Key}}' \
--header 'Content-Type: application/json' \
--header 'User-Agent: NomeDaAutomacao/1.0' \
--data-raw '{
   "pessoaVendedorId": "11559",
   "terminalFisicoId": 186,
   "referencia": "REF 010",
   "ValorTotalPedido": "13.00", 
   "urlRetorno": null, 
   "produtosPedido": [
      {
         "Id": "7169",  
         "Nome": "Produto genérico", 
         "Valor": 1.11, 
         "Quantidade": 1
      }
   ],
   "pedidoFormasPagamento": [
	   {
	      "FormaPagamento": {
	         "Id":21
	      },
	      "QuantidadeMaximaParcelas": 1,
	      "AdquirentePadrao": "REDE",
	      "TipoFinanciamento": 1,
	      "QuantidadeFixaParcelas": 3
	   }
   ]
}'
{
    "data": "19/04/2021 16:04:36.1466",
    "pedido": {
        "id": 2054,
        "referencia": "REF 010",
        "obs": null,
        "data": "19/04/2021 16:04:35.9747",
        "hora": "16:04:35",
        "valor": 1.11,
        "valorFormat": "1,11",
        "valorAberto": 1.11,
        "valorAbertoFormat": "1,11",
        "valorOriginalPago": 0.0,
        "valorOriginalPagoFormat": "0,00",
        "valorOriginalEmPagamento": 0.0,
        "valorOriginalEmPagamentoFormat": "0,00",
        "tipo": "Interno",
        "quantidade": 1,
        "quantidadeTransacoes": 0,
        "pedidoStatus": {
            "id": 5,
            "nome": "Aberto"
        },
        "pessoa": {
            "id": 11559,
            "nomeRazaoSocial": "Pessoa Genérica",
            "sobrenomeNomeFantasia": "Pessoa Genérica",
            "cpfCnpjFormat": "596.206.800-90",
            "email": "[email protected]"
        },
        "produtos": [
            {
                "itemProdutoId": 401456,
                "id": 7169,
                "nome": "Produto genérico",
                "descricao": "Produto genérico",
                "nomeExibe": "Produto ge",
                "quantidade": 1,
                "valor": 1.11,
                "valorFormat": "1,11",
                "fotoThumbnail": ""
            }
        ]
    }
}