# Fluxo de Venda Pré-Autorização, Autorização e Captura
# Roteiro de Homologação
feature: Fluxo de Venda Pré-Autorização, Autorização e Captura
A feature consistem em realiza o fluxo de venda do pré-autorização, autorização e captura.
Ao total são 5 end points sendo 2 para o fluxo externo, 2 para o fluxo da serveloja e a captura tanto para o externo e da serveloja.
### Rotas:
Api:
**PreAutorizarVenda**
https://slhomologue-ti.redeserveloja.com/Novo/ApiVendas/Venda/PreAutorizarVenda
**body:**
```
{
"Pedido": {
"Valor": 53,
"QuantidadeParcelas": 2,
"Descricao": "Teste vessnda"
},
"Comprador": {
"Nome": "Teste smaster",
"Email": "bryanne@serveloja.com.br",
"TelefoneComprador": {
"DDD": 79,
"Numero": 999428666
},
"EnderecoComprador": {
"CEP": "49095-780",
"Bairro": "Centro",
"Cidade": "Aracaju",
"Numero": "123",
"UF": "SE",
"Logradouro": "Rua H",
"Complemento": "Casa"
},
"Cartao": {
"CodigoSeguranca": "123",
"NomeTitular": "teste master",
"Numero": "5448280000000007",
"ValidadeMes":1,
"ValidadeAno": 2020,
"CodigoBandeira": 3,
"NumeroDocumentoTitular": "98747401591",
"Senha": ""
}
}
}
```
Onde o **complemento** é um campo opcional,
a senha é obrigatória para as bandeiras adicionais
e o DTO 'Cartao' não é obrigatório caso passe o DTO 'CartaoToken' ou seja, caso a venda pode ser realizada pelo cartão ou pelo token.
No caso do Token a body da request:
```
{
"Pedido": {
"Valor": 53,
"QuantidadeParcelas": 2,
"Descricao": "Teste vessnda"
},
"Comprador": {
"Nome": "Teste smaster",
"Email": "bryanne@serveloja.com.br",
"TelefoneComprador": {
"DDD": 79,
"Numero": 999428666
},
"EnderecoComprador": {
"CEP": "49095-780",
"Bairro": "Centro",
"Cidade": "Aracaju",
"Numero": "123",
"UF": "SE",
"Logradouro": "Rua H",
"Complemento": "Casa"
},
"CartaoToken": {
"ChavePublica": ""
}
}
}
```
**AutorizarVenda**
https://slhomologue-ti.redeserveloja.com/Novo/ApiVendas/Venda/AutorizarVenda
o body é extamente o mesmo da **PreAutorizarVenda** a diferença é o status da transação.
Onde,
```
select STR_ID_STATUS_TRANSACAO from TB_TRANSACAO where TRA_ID_TRANSACAO = 0
```
PreAutorizarVenda staus: (9 Pre-Capturado)
AutorizarVenda staus: (3 Autorizada)
e em caso de negação do cartão (4 Não Autorizada)
---
**Obs: Os métodos PreAutorizarVenda e AutorizarVenda será o mesmo tanto para clients Externos quando para os outros clients implementados na API. O próprio metódo que irá se encarregar de resolver a origem da transação.**
**Consultar origens transação:
```
SELECT TOP 10 TRA_ID_TRANSACAO TRA_IN_ORIGEM_INCLUSAO FROM TB_TRANSACAO ORDER BY 1 DESC
SELECT * FROM TB_TIPO_ORIGEM_TRANSACAO
```
---
**CapturarVenda**(Externa e Serveloja)
https://slhomologue-ti.redeserveloja.com/Novo/ApiVendas/Venda/CapturarVenda?numeroPedido=4140263
onde **numeroPedido** é o código do pedido ou tra_id_transacao da tabela tb_transacao
---
---
**Realizar Cadastros de cartão com token:**
https://slhomologue-ti.redeserveloja.com/Novo/ApiVendas/CardWallet/StoreCard
**body:**
```
{
"securityCode": "123",
"name": "THIAGO",
"holder": "THIAGO FERREIRA",
"number": "5190921748467251",
"expirationDate": "2020-10-01T00:00:00",
"brandId": 3
}
```
---
Uteis:
https://developercielo.github.io/manual/cielo-ecommerce#cart%C3%A3o-de-cr%C3%A9dito-sandbox
https://www.userede.com.br/desenvolvedores/pt/produto/e-Rede#tutorial
https://www.4devs.com.br/gerador_de_numero_cartao_credito