Criar uma intenção de pagamento
Uma intenção de pagamento é uma solicitação contendo os detalhes de uma transação a ser realizada.
Para criar uma intenção de pagamento, você precisa ter feito anteriormente a chamada para obter o código do terminal ao qual a transação será associada. Lembre-se que, se você já fez isso uma vez e salvou o id
do terminal, não precisará repetir essa consulta, pois esse código é único e inalterável.
Em seguida, faça uma chamada POST para a API {https://api-dev.redelcom.cl:20010/v2}/pago
, adicionando o valor obtido anteriormente ao campo terminalId
e substituindo X-Authentication
, clientId
e secret
pelas suas credenciais:
curl
curl -X POST \ 'https://api-dev.redelcom.cl:20010/v2/pago' \ --header 'X-Authentication: clientId;secret' \ --header 'Content-Type: application/json' \ --data '{ "amount": 6900, "description": "Compra de prueba", "paymentType": "EFECTIVO", "products": [{ "description": "PIZZA MEDIANA", "id": "1845", "iva_exempt": false, "quantity": 10, "unit_price": 300 }], "rdcDTE": true, "requestTip": true, "responseCallback": "https://eom2h2tqm3g6y7l.m.pipedream.net", "terminalId": "3127", "userTransactionId": "345565" }'
Configure os campos desta solicitação seguindo as seguintes especificações:
Campo | Tipo | Descrição |
amount | inteiro | Obrigatório. Valor da transação. Deve ser um número entre 1 e 99999999. |
Description | string | Opcional. Informações adicionais a serem exibidas na solicitação de pagamento. |
dte | string | Opcional. Você deve configurar isso se o Documento Tributario Electrónico (DTE) associado ao pagamento não for gerado pela Redelcom e você desejar que o POS o imprima. Aplica-se apenas se rdcDTE for false . Você pode consultar a seção "Imprimir DTE" para obter mais informações. |
paymentType | enum | Opcional. Método de pagamento a ser usado. Se o parâmetro for omitido, o método de pagamento deve ser escolhido no POS. Valores possíveis: EFECTIVO , TARJETA , WALLET , SIN_EFECTIVO , SIN_WALLET . |
Products - description | string | Opcional. Breve descrição do produto vendido. |
Products - id | string | Opcional. Código do produto. |
Products - iva_exempt | boolean | Opcional. Se o produto está isento de IVA ou não. Valores possíveis: True se isento; false se não. |
Products - quantity | inteiro | Opcional. Número de itens. |
Products - unit_price | inteiro | Opcional. Preço unitário do item vendido. |
rdcDTE | boolean | Opcional. Se a Redelcom deve gerar o DTE (por padrão, não gera). |
requestTip | boolean | Opcional. Se o terminal deve solicitar uma gorjeta (por padrão, não solicita). |
responseCallback | string | Opcional. A URL própria do integrador que a Redelcom chamará para relatar o status de um pagamento no final da transação, seja ele bem-sucedido ou não. Para configurá-lo, consulte a subseção "Implementação da URL de Resposta". Recomendamos o uso deste método para evitar a necessidade de fazer uma chamada de consulta para intenções de pagamento. |
terminalId | string | Obrigatório. Código do terminal ao qual a transação será associada, obtido na chamada "Obter terminal". |
UserTransactionId | string | Obrigatório. Código de referência para a solicitação de pagamento, que você pode definir. |
Se a solicitação for bem-sucedida, a resposta retornará o código associado à solicitação de pagamento e se parecerá com o exemplo a seguir:
json
{ "rdcTransactionId": "294-3727-16384" }
Erros no processamento de intenções de pagamento
Na tabela a seguir, você pode ver os principais motivos pelos quais esta solicitação pode não ser processada:
Erro | Motivo |
STATUS CODE - 400 | Informações de pagamento inválidas. Reveja as informações enviadas e tente novamente. |
STATUS CODE 401 | Autenticação inválida ou inexistente. Reveja suas credenciais. |
STATUS CODE - 409 | Já existe uma intenção de pagamento pendente. Tente novamente mais tarde. |
Implementação da URL de Resposta
Ao criar uma intenção de pagamento, recomendamos configurar o parâmetro responseCallback
, que permite receber atualizações sobre os estados finais dessas intenções em sua própria URL.
Para implementar esse responseCallback
, observe:
- Deve ser uma chamada
POST
com um único parâmetro na string de consulta,rdcTransactionId
, que é o identificador da transação fornecido pela RedelCom ao solicitar o pagamento. - O
Content-Type
deve serapplication/json
.
Essa implementação será considerada bem-sucedida se o serviço retornar um código de status HTTP 200 OK
. Se, por outro lado, a resposta retornar um código de status 5xx
, o serviço tentará novamente a chamada de URL a cada 1 minuto, até 3 vezes. Se a resposta retornada não for uma dessas duas opções mencionadas, a implementação será considerada falha e não será tentada novamente.