# Integração direta

API de Pagamento direto

# URL base de solicitação

Ambiente de teste : https://gateway-test.transfersmile.com
Ambiente de prod : https://gateway.transfersmile.com

# EndPoints

/trade/pay

# Cabeçalho de solicitação

Parâmetro Obrigatório Descrição
Content-Type recomendado application/json
Authorization sim Basic Base64(app_id:security_key)

# Corpo da solicitação (formato JSON)

Parâmetro Tipo Obrigatório Comprimento máximo(ou valor padrão) Descrição
app_id string sim 32 App Id criado no dashboard
timestamp string sim 19 yyyy-MM-dd HH:mm:ss
out_trade_no string sim 64 ID dada pelo comerciante em seu sistema
method string não 32 Métodos de Pagamento​
channel string não 32 sub-canal (usar somente no método 'Carteira')
order_currency string sim 3 BRL para Brasil
order_amount decimal sim 0.01 ~ 99999999999999.99 valor da solicitação de pagamento
subject string sim 128 motivo do pagamento ou nome do item
content string sim 255 Detalhe do motivo de pagamento ou detalhe do item. Isto será mostrado na conta bancária..
notify_url string sim URL IPN para comerciante(comece com http)
buyer_id string sim ID do usuário do comerciante
timeout_express string não 90m m(minutos), h(horas), d(dias), c(termina no dia atual)
token string não necessário para cartão de crédito
fingerprint string não necessário para cartão de crédito
issuer string não emissor de cartões de crédito(necessário para cartão de crédito)
installments integer não 1 parcelas para cartão de crédito
bank string não código bancário, necessário para Depósito Expresso (itau,santander,bradesco,banco-do-brasil,caixa) Dinheiro (Use bank_id da Lista de Bancos);Transferência bancária(Use bank_id da Lista de Bancos); Khipu (Use bank_id da Lista de Bancos);
language_code string não language code, necessário for Dinheiro, Transferência bancária. (Use language_code da Lista de Bancos Suportados)
customer.name string sim nome do usuário
customer.email string sim email do usuário
customer.phone string sim telefone do usuário
customer.identify.number string sim ID do usuário
customer.identify.type string sim tipo de do usuário
address.zip_code string sim CEP
address.state string sim estado
address.city string sim cidade
address.street_number string sim street1 number
address.street string sim street1
address.neighborhood string não street2
user_ip string não endereço IP do usuário(necessário para cartão de crédito)
website_url string não 128 URL do site do comerciante

# Exemplo de Solicitação

curl --location --request POST 'https://gateway.transfersmile.com/trade/create' \
--header 'Authorization: Basic Base64(appid:security_key)' \
--header 'Content-Type: application/json' \
--data-raw '{
    "app_id": "app_id",
    "content": "content",
    "method": "Boleto",
    "notify_url": "notify_url",
    "order_amount": 10,
    "order_currency": "BRL",
    "out_trade_no": "{{$randomUUID}}",
    "subject": "subject",
    "timeout_express": "1h",
    "timestamp": "{{datetime}}",
    "customer": {
      "name": "name",
      "email": "email",
   "phone": "phone",
   "identify": {
  "number":"number",
  "type":"type“,
   }
      ...
    },
    "address": {
      "zip_code": "84043450",
      "state": "Parana",
      "city": "Ponta Grossa",
      "street"; "Colônia Dona Luíza",
      "street_number": "18",
    },
    "user_ip": "127.0.0.1"
}'

# Resposta Http (formato JSON)

Parâmetro Tipo Descrição
code string return code
​ msg string return msg
​ sub_code string return sub code(only error)
​ sub_msg string return sub msg(only error)
out_trade_no string request out_trade_no
​ trade_no string transfersmile trade NO.
​ trade_status string
​ pay_url string pay URL; somente em Boleto、Lotérica、Deposito Expresso
​ barcode string código de barras do Boleto;somente em Boleto
​ qr_code string somente em PIX
​ provider_owner string informações bancárias: proprietário da conta; somente em Deposito Express
​ provider_owner_document string informações bancárias: documento do proprietário da conta; somente em Deposito Expresso
​ provider_agency string informações bancárias : agência da conta; somente em Deposito Expresso
​ provider_number string informações bancárias : número da conta; somente em Deposito Expresso
​ bank_name string informações bancárias : nome do banco; somente em Deposito Expresso
​ wallet_url string somente na carteira
​ app_link_url string somente na carteira (para uso em APP)

# Retorno (Sucesso)

{
    "code": "10000",
    "msg": "Success",
    "out_trade_no": "{out_trade_no}",
    "trade_no": "{trade_no}",
    "trade_status": "PROCESSING",
    "pay_url": "https://checkout-testv2.transfersmile.com/checkout?prepay_id=XX",
    "barcode": "{barcode}",
    "qr_code": "{qr_code}",
    "provider_owner": "{provider_owner}",
    "provider_owner_document": "{provider_owner_document}",
    "provider_agency": "{provider_agency}",
    "provider_number": "{provider_number}",
    "wallet_url": "{wallet_url}",
    "app_link_url": "{app_link_url}"
}

# Retorno (Falhou)

{
    "code": "40002",
    "msg": "Business Failed",
    "sub_code": "invalid-signature",
    "sub_msg": "invalid signature"
}

Atenção

Return_url não é necessário nos parâmetros de solicitação, você também pode anexar o return_url após o web_url ao redirecionar:
http://checkout.transfersmile.com?prepay_id={$prepay_id}
↓↓↓
http://checkout.transfersmile.com?prepay_id={$prepay_id}&return_url={$return_url}