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}
