Documentação/Referência da API

API REFERENCE

Iniciar pagamento ou autorização

POSThttps://mapi.yabandpay.com/Payments
Live API
API PLAYGROUND · Live API

Iniciar pagamento ou autorização

POSThttps://mapi.yabandpay.com/Payments
Automatically signed with your credentials

Request parameters11

Required fields first

发起交易

pay_methodRequiredstringdata.pay_methodoffline
sub_pay_methodRequiredstringdata.sub_pay_methodpoint_of_sales
operationRequiredstringdata.operation1.Sales 2.Authorisation;
tidRequiredstringdata.tid设备的TID
amountRequiredstringdata.amount金额数字。例如 € 24.99 应该写成24.99,CNY金额>=1,欧元金额>=0.1
currencyRequiredstringdata.currency货币代码,ISO 4217,例如EUR,CHF
descriptionRequiredstringdata.description订单描述64字符内
notify_urlRequiredstringdata.notify_url支付完成后异步通知地址
request_idRequiredstringdata.request_id请求id需保持唯一,建议24以上位数字+字母
Optional parameters 2
tip_amountOptionalstringdata.tip_amount总金额中包含的小费,金额数字。例如 1.02
demoOptionalstringdata.demo自定义字段

Credentials stay on this page. Your secret key is never stored or sent to the documentation server.

Parâmetros

ParameterTypeDescriçãoObrigatório
data.pay_methodstringoffline✓
data.sub_pay_methodstringpoint_of_sales✓
data.operationstring1.Sales 2.Authorisation;✓
data.tidstring设备的TID✓
data.order_idstring订单号全部数字构成,并小于20个字符✓
data.amountstring金额数字。例如 € 24.99 应该写成24.99,CNY金额>=1,欧元金额>=0.1✓
data.tip_amountstring总金额中包含的小费,金额数字。例如 1.02—
data.currencystring货币代码,ISO 4217,例如EUR,CHF✓
data.descriptionstring订单描述64字符内✓
data.demostring自定义字段—
data.notify_urlstring支付完成后异步通知地址✓
data.request_idstring请求id需保持唯一,建议24以上位数字+字母✓

Aplicável a pagamentos presenciais em POS

Esta API envia instruções de pagamento ou autorização para um dispositivo POS através da nuvem.

Antes de chamar esta API, confirme que o dispositivo POS está ligado e disponível, para que as instruções possam ser entregues e processadas com sucesso.

API URL (production): https://mapi.yabandpay.com/Payments

API URL (test): https://acc-mapi.yabandpay.com/Payments

ParâmetroTipoDescriçãoObrigatório
userStringDevice TIDObrigatório
signStringSignatureObrigatório
methodStringv3.POSObrigatório
timeLongTimestampObrigatório
  • Parameters
ParâmetroTipoDescriçãoObrigatório
pay_methodStringofflineObrigatório
sub_pay_methodStringpoint_of_salesObrigatório
operationString1.Sales 2.Authorisation;Obrigatório
tidstringDevice TIDObrigatório
order_idstringNúmero do pedido composto apenas por dígitos e com menos de 20 caracteresObrigatório
amountStringMontante em formato de cadeia numérica. Por exemplo, introduza 24.99 para € 24.99. Montante em CNY >=1; montante em EUR >=0.1.Obrigatório
tip_amountStringGorjeta incluída no montante total, em formato de cadeia numérica; por exemplo, 1.02Opcional
currencyStringCódigo de moeda ISO 4217, por exemplo EUR ou CHFObrigatório
descriptionStringDescrição do pedido, com até 64 caracteresObrigatório
demoStringCampo personalizadoOpcional
notify_urlStringURL de notificação assíncrona após o pagamentoObrigatório
request_idStringID de pedido único; recomenda-se uma combinação de letras e números com pelo menos 24 caracteresObrigatório

Signature example:

Parâmetros ordenados e concatenados numa cadeia de consulta no formato de URL

 "amount=12.5&currency=EUR&description=YabandPay test&method=v3.POS&notify_url=https://www.yabandpay.com/notify&operation=1&order_id=202586556498441613&pay_method=offline&request_id=a7z1lox4l6z6mdx1udgn5gtezasze1x0&sub_pay_method=point_of_sales&tid=T125119061&time=1555498137&tip_amount=0.5&user=T125119061" 

Assine a stringA utilizando secret_key

A assinatura resultante é:

"YOUR_SIGNATURE"

Request example:

 {
  "user": "T125119061",
  "sign": "YOUR_SIGNATURE",
  "method": "v3.POS",
  "time": 1555498137,
  "data": {
    "operation": "1",
    "tid": "T125119061",
    "amount": "12.5",
    "currency": "EUR",
    "tip_amount": "0.5",
    "description": "YabandPay test",
    "notify_url": "https://www.yabandpay.com/notify",
    "order_id": "YOUR_ORDER_ID",
    "pay_method": "offline",
    "sub_pay_method": "point_of_sales",
    "request_id": "a7z1lox4l6z6mdx1udgn5gtezasze1x0"

  }
} 

Response example:

{
  "status": true,
  "code": "200",
  "data": {
    "order_id": "YOUR_ORDER_ID",
    "trade_id": "4552eeea-1ae8-1e40-3b4b-802dc2f56458",
    "amount": "12",
    "currency": "EUR",
    "tip_amount": "0.5",
    "state": "processing"
  },
  "message": ""} 

Additional information:

Dica

Importante: quando uma notificação assíncrona devolve "state": "paid", o utilizador concluiu o pagamento. Verifique se os dados devolvidos contêm "cvmTypeList": ["SIGNATURE"].

Se a resposta contiver "cvmTypeList": ["SIGNATURE"], o cliente tem de assinar o recibo;

Peça ao operador de caixa que solicite a assinatura do cliente e imprima um recibo com um campo para assinatura;

Depois de o cliente assinar, o operador de caixa seleciona “Confirm signature” ou “Invalid signature”, conforme a assinatura.

Se for selecionado “Confirm signature”, a transação é concluída normalmente;

Se for selecionado “Invalid signature”, chame imediatamente a API de reversão da transação para a reverter;

Em pagamentos sem operador ou de autosserviço, a verificação da assinatura pode ser omitida, uma vez que os montantes são geralmente baixos; no entanto, isso acarreta risco de estorno.

Response result:
  1. Um pedido bem-sucedido devolve "status": true.

  2. Um pedido mal-sucedido devolve "status": false.

Recomendamos vivamente utilizar tanto as consultas de pedidos como as notificações assíncronas para sincronizar e atualizar o estado do pagamento e manter as informações corretas em tempo real.

Response codes:
StatusCodeMessage
true200Success
false-1000Internal error
false-3001Required field is missing
false-3002duplicate request_id
false-403The signature Error
false-4011Not support the payment method