---
# System prepended metadata

title: TADA Payments

---

# TADA Payments
[toc]
# PayIn

## SPEI
O SPEI® (Sistema Internacional de Pagamentos Eletrônicos) foi desenvolvido pelo Banco do México e permite que os mexicanos façam pagamentos eletrônicos instantâneos.

Este sistema foi desenvolvido para facilitar os pagamentos entre instituições financeiras, além de permitir que elas ofereçam serviços de pagamento de e-commerce seguros e eficientes aos consumidores mexicanos.

Através do SPEI você está oferecendo a qualquer pessoa que tenha um banco no México uma solução 24 horas, 7 dias por semana, para fazer transações com confirmação de pagamento em tempo real.

Como funciona?
![image alt](https://www.banxico.org.mx/multimedia/EOTCINCen.jpg)
O banco emissor precisará de dados de identificação como conta chave(número da conta), o número do cartão ou o número de telefone qualquer um desses dados precisam ser preenchido depois disso eles vão pedir o valor não necessariamente tem que ser um valor fixo, mas no final do dia você tem que colocá-lo e o nome do dono quem é essa conta, embora não seja de tudo obrigatório e pode haver outros dados envolvidos

Depois de inserir esses dados o banco emissor envia uma ordem que o banco do méxico vai receber através do sistema de SPEN para fazer a liquidação com o banco beneficiário. Quando é feita a liquidação, o pagamento já foi aprovado e o valor é creditado para o beneficiário. Todo esse processo pode acontecer quase imediatamente e em média demora até 30 segundos. Entretanto algumas instituições financeiras podem levar até 24 horas nesse tráfego. O tempo vai variar de acordo com a instituição financeira.

O número de telefone de destino ou o número dos cartões são dados  que nem todos os bancos e todas as instituições financeiras aceitam. A conta chave, como identificação é  aceita em todas instituições financeiras 

**Geração de PayIn SPEI**
É feito atraves do endpoint POST /api/boxPayment, gerando uma url para o site da TADA onde o serviço de payIn será feito
````
BODY:
{
    "id_merchant":"MXXXXXXXXX",
    "api_token":"$2y$10$EOTL/cwUv4IXXXXXXXXXXXXXXXXXXME/gUWkHi1jz52xIfN6xQIJ1W"
    
    "country_code" : "PER",
    "currency_code" : "PEN",
    "amount" : 250.80,
    "concept" : "Concepto de la transaccion",
    "url_logo" : "http://control.tadapayments.com/assets/images/logotipo_singrupo.png",
    "name_store" : "Store's name",
    "id_out_transaction" : "id-0001",
    "url_send_data" : "wwww.mysite.com/callback.php"

    "name_client" : "Jesus",
    "lastname_client" : "Labra",
    "phone_client" : "7721402519",
    "email_client" : "jlabraibarra@gmail.com",

    "spei" : true,
            
}
````

````
Resposta:
    {
        "status": "success",
        "msg": "Successfully created checkout box.",
        "url": "https://control.tadapayments.com/box/payment?ref=1GuxvxQMtE"
    }
````


![image alt](http://control.tadapayments.com/images/boxPayment.png)

:::info
- possivel mudar o logo no canto superior esquerdo para um da Transfero
:::


sempre que um pagamento é feito será enviado um callback para uma url de nossa escolha com as seguintes informações:
``` 
{
  "id_out_transaction":"id-0001",
  "id_tx":"XXXXXXXXXX00000XXX"
  "account":"XXXXXXXXXX00000XXX",
  "sign": "31004a4e46bb90496172a63b72d176f1"
}
```
:::info
- ``sign`` é a assinatura para garantir que os dados que  estamos recebendo são do sistema TADA
 
 - ``id_out_transaction`` funciona como nosso ``referenceId`` onde passamos esse campo no body do request. 
:::

:::warning
Na documentação tem 2 outros tipos de serviços ``payment in cash``
 e ``pago en línea`` que podem ser adicionados no body da requisição, mas não está claro o funcionamento deles. Seguem o mesmo fluxo do SPEI

:::

:::danger
Ainda não foi possivel testar esse fluxo, pois a conta de sandbox não tem permissão para usar esse endpoint.
:::


**Possível  Fluxo no Caas**
Usando os endpoint atuais da api do caas
{%figma https://www.figma.com/file/JlEvAphJ0pjssHMEn0EBaL/Caas-TADA?node-id=0%3A1 %}


## Credit Card
**Credit Card**
É feito atraves do endpoint POST /api/fe_sb/v1/cardPayment, com as informações do cartão, criando um pagamento de credito ou debito 
````
BODY:
{
    "id_merchant":"MXXXXXXXXX",
    "api_token":"$2y$10$EOTL/cwUv4IXXXXXXXXXXXXXXXXXXME/gUWkHi1jz52xIfN6xQIJ1W",
    
    "Quantity":2,
    "description":"App Development",
    "unitPrice":125.95,
    "amount":251.90,
    "Id":0,

    "pan":"4027XXXXXXXX8677",
    "cardholderName":"Tada Payments",
    "cvv2":"101",
    "expDate":"2412",

    "email":"contact@tadapayments.com",
    "sendTicket":true
  }
````

````
Resposta:
     {
    "status": "success",
    "step": null,
    "affiliation_id": "70XXXX8",
    "orderId":"76XXX64",
    "authnum":"8XXX80",
    "transactionId":"84XXX85",
    "Base64Pdf": "(Very long chain)",
    "url": null
  }
````
:::info
 - Possível cancelar ou devolver o pagamento
 - Confirmação de pagamento por polling
:::


**Card Link**
É feito através do endpoint POST /api/smartlinks/create, onde será enviado por email, um link para preencher os dados do cartão para a criação de um pagamento

````
BODY:
{
  "id_merchant":"MXXXXXXXXX",
  "api_token":"$2y$10$EOTL/cwUv4IXXXXXXXXXXXXXXXXXXME/gUWkHi1jz52xIfN6xQIJ1W",

  "amount": 99.99,
  "email":"email@domain.com"
}
````

````
Resposta:
{
  "status": "success",
  "msg": "Solicitud de pago creada y enviada con exito",
  "reference": "4373a5d7-66e5a183c503",
  "url": "http://control.tadapayments.com0/request/payment/4373a5d7-66e5a183c503"
}
````
:::warning
- ``url`` não está especificado o que é nesse contexto 
:::


![image alt](http://control.tadapayments.com/images/email_smartlink.png)

![image alt](http://control.tadapayments.com/images/email_smartlink_02.png)


:::info
 - Possível cancelar ou devolver o pagamento
 - Confirmação de pagamento por polling 
:::

# PayOut
**Create PayOut**
É feito atraves do endpoint POST /v1/payments 
````
BODY:
{
    "cardToken": "561c2cd0639e44cd94d6551f0d939efc",
    "merchantId": "749a8c7ebc79428383d9eac99f409c91",
    "currency": "MXN",
    "fee": 15,
    "amount": {
        "subtotalIva": 0,
        "subtotalIva0": 1500,
        "ice": 0,
        "iva": 0
    },
    "payee": {
        "alias": "John Doe",
        "bankAccountNumber": "019293439102921211",
        "email": "some.mail@mail.com"
    }
}
````

````
Resposta:
  {
  "transactionReference": "861ba8f4-0783-43bb-93e7-6a0954832ed6",
  "amount": 1500,
  "currency": "MXN",
  "metadata": null,
  "ticketNumber": "199362112211702042",
  "type": "charge",
  "date": "2021-06-05 15:54:13"
}
````

**OU**

É feito atraves do endpoint POST /v1/payees 
````
BODY:
{
    "payments": [
        {
            "amount": 140,
            "description": "Description for this paymentQWE",
            "payee": {
                "id": 1234,
                "nickname": "NicknameISRA"
            }
        }
    ]
}
````

````
Resposta:
  {
  "payments": [
    {
      "id": 506,
      "dateCreated": "2020-02-10T15:01:09.880183Z",
      "lastUpdated": "2020-02-10T15:01:09.880216Z",
      "status": "CREATED",
      "statusReason": null,
      "payee": {
        "id": 325,
        "status": "ACCEPTED",
        "fullName": "William Ferrell",
        "email": "willferrell@differently.net",
        "birthDate": "1967-07-16T00:00:00Z",
        "mobileNumber": "987786321333",
        "phoneNumber": "",
        "idNumber": "9875613",
        "idType": {
          "id": 15,
          "name": "RFC"
        },
        "gender": "MALE",
        "maritalStatus": "DIVORCED",
        "taxId": "",
        "address": "Los Alerces 876",
        "city": {
          "id": 1746,
          "name": "Guadalajara",
          "country": {
            "id": 2,
            "name": "Mexico",
            "code": "MEX"
          }
        }
      },
      "amount": 1567,
      "notes": null,
      "description": "Payment for Will",
      "transactionStatusChanges": []
    },
````

:::info
 - atualização das mudança de status feitas por polling
::: 
:::warning
- Não está claro na documentação qual o cenario de uso para os 2 endpoints
:::

# Duvidas

## PayIn

**BoxPayment**
 
 como funciona os seguintes parâmetros no boxPayment ``Payment in cash``  e ``Pago en linea (Multiples paises).`` 
 
 Amount é em dolar igual ao cartão de credito ou o valor na moeda passado no parametro ``currency_code``
 
 Como testar o paymentBox em DEV
 
 
 
 ## PayOut
 
 Qual a diferença entre os endpoint de criação de payments ``https://{{domain}}/v1/payees/payee``
 e  ``https://{{domain}}/v1/payments``
 
 É obrigatorio cadastrar ``merchantId`` para fazer payout?
 
 Após chamar a api e tiver sucesso na criação do payment eu posso assumir que foi completado, tenho que consultar em algum lugar ou possuem algum callback?
 
 Quais são os possiveis status de payOut
 
 
 


















