---
description: >-
  O retorno automático ou callback, é responsável pela baixa automática da
  fatura
---

# Retorno Automático

O retorno automático é parte crucial para quem pretende ter um sistema totalmente automatizado. Sua função é realizar a baixa automática da fatura sempre que receber uma notificação de pagamento.



Em regra, quando se integra um gateway de pagamento você poderá cadastrar uma URL de Retorno, que receberá os dados referente a transação que a deu origem, ou enviá-la na primeira etapa da integração.

Junto desde material você também recebeu um outro arquivo de exemplo que fica localizado no diretório **/modulos/pagamentos/retorno**.

Esse arquivo é o responsável por tratar o retorno de dados e realizar a baixa da fatura de forma automática.

Normalmente a URL de retorno cadastrada em seu gateway ficará parecida como a URL abaixo.&#x20;

http://central.seudominio.com.br/modulos/pagamentos/retorno/exemplo.php&#x20;



#### Entendendo o funcionamento do arquivo de retorno

```php
<?php
# MODULO DE PAGAMENTO DE EXEMPLO -> RETORNO AUTOMÁTICO

include"../../../includes/conexao.php";
include"../../../includes/loadConfig.php";
include"../../../admin/includes/comandos.php";

$moduloPagamento=array();

$sql=$banco->consultar("select * from modulospagamento where modulo='exemplo'");

foreach($banco->lista($sql) as $linha){
	$moduloPagamento[$linha['parametro']]=$linha['valor'];
}

# ------------- Se condigo começa abaixo ---------------------------
```

O código acima é a primeira etapa do módulo de retorno, seu conteúdo não deve ser removido.

**ATENÇÃO.** Você deve informar o nome correto do modulo de pagamento utilizado na query de busca. no nosso caso, **exemplo**



Note que o resultado do código anterior é uma variável **$moduloPagamento** que é um array que contem as informações dos campos que você criou ao desenvolver o modulo.



Assim como no exemplo do tópico anterior, seus valores seriam $moduloPagamento\['token'] e $moduloPagamento\['campo2'], que são os parâmetros criados nas configurações do modulo



```php
if (count($_POST) > 0) { // Verifica se algum dado foi recebido
	
	$id_fatura=(int)$_POST['id_fatura'];
	$status=$_POST['status'];
	
	if($status=='pago'){
	
		$fatura=carregaParametrosFatura($id_fatura);
						
		$res=adicionarPagamento($fatura['id_fatura'], $transacao, $fatura['valor'],"exemplo");
		
		if ($res) {
			echo"Sucesso";
		} else {
			echo"Erro ao confirmar pagamento";
		}
	
	}else{
		echo"A fatura não foi paga";
	}
	
} else {
	// POST não recebido, indica que a requisição é o retorno do Checkout exemplo.
	// No término do checkout o usuário é redirecionado para este bloco.
    echo'<h3>Obrigado por efetuar a compra.</h3>';
}
```

O código acima representa o tratamento dos dados recebidos. No caso do exemplo é verificado se algum dado foi recebido (POST) esses dados devem ser tratados de modo a confirmar se um pagamento foi de fato recebido de acordo com a api da empresa de pagamentos adotada.



Havendo a confirmação de que um pagamento foi recebido é procedida a baixa automática da fatura por meio da função **adicionarPagamentoFatura();**

```php
adicionarPagamento(1234, $transacao, 100,"exemplo",2.50);
```

Essa função carrega 5 parâmetros em sequencia sendo eles: **a)** ID da fatura a ser baixada **b)** código da transação realizada, **c)** valor recebido, **d)** forma de pagamento (no seu caso, o nome do modulo), **e)** tarifa cobrada, sendo este último facultativo

