API REFERENCE
Criar uma divisão de pagamentos
Dica
A YabandPay envia notificações assíncronas a partir dos endereços IP abaixo. Recomendamos adicioná-los à lista de permissões do firewall.
8.211.41.31 8.211.10.244 8.211.8.123
Esta API cria uma divisão de pagamentos para um pedido YabandPay pago com sucesso.
Dica
Observação:
- É possível criar no máximo 10 divisões de pagamento para cada pedido de pagamento;
- Antes de chamar esta API, é necessário configurar uma solução de divisão de pagamentos e obter aprovação;
- Quando split_completed for 1, a divisão de pagamentos estará concluída e não será possível iniciar outras divisões.
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| user | String | UID da conta de superadministrador | Obrigatório |
| sign | String | Signature | Obrigatório |
| method | String | v3.SplitPayment | Obrigatório |
| time | Long | Timestamp | Obrigatório |
- Parameters
| Parâmetro | Tipo | Descrição | Obrigatório |
|---|---|---|---|
| command | String | createSplitPayment | Obrigatório |
| trade_id | String | trade_id do pedido pago da YabandPay | Obrigatório |
| split_solution_id | String | ID da solução de divisão de pagamentos configurada no portal de gestão | Obrigatório |
| currency | String | Moeda de liquidação do pedido original, Settlement Currency | Obrigatório |
| notify_url | String | URL de notificação assíncrona de divisão de pagamentos | Obrigatório |
| nonce_string | String | Cadeia aleatória com no máximo 32 caracteres | Obrigatório |
| split_completed | String | Indica se a divisão do pagamento foi concluída: 0: No, 1: Yes | Obrigatório |
| reference_id | String | ID exclusivo de divisão de pagamentos definido pelo estabelecimento, no máximo 32 caracteres | Obrigatório |
| reference | String | Descrição, no máximo 128 caracteres | Opcional |
| receivers | String | Informações do destinatário da divisão de pagamentos: cadeia JSON gerada a partir de uma matriz bidimensional usando json_encode | Obrigatório ao dividir um pagamento. Omita este parâmetro se quiser apenas marcar o pedido como totalmente dividido sem fornecer informações do destinatário. |
| receivers.mid | String | mid do destinatário da divisão de pagamentos | Obrigatório ao dividir um pagamento |
| receivers.detail_reference_id | String | Número personalizado do detalhe da divisão para o destinatário | Obrigatório ao dividir um pagamento |
| receivers.split_amount | String | Valor da divisão de pagamentos; por exemplo, 24.99 deve ser escrito como 24.99 | Obrigatório ao dividir um pagamento |
| receivers.role | String | Função do destinatário da divisão de pagamentos | Obrigatório ao dividir um pagamento |
| receivers.description | String | Descrição do detalhe da divisão de pagamentos | Opcional ao dividir um pagamento |
Recipient roles
| receivers.role parameter | Descrição |
|---|---|
| 1 | Sub-merchant |
| 2 | Supplier |
| 3 | Distributor |
| 4 | Tax withholding and remittance service |
| 5 | Technical services |
| 6 | Influencer |
| 7 | Other |
Exemplo de assinatura:
Parâmetros ordenados concatenados em uma cadeia de consulta no formato de URL
"command=createSplitPayment¤cy=EUR&method=v3.SplitPayment&nonce_string=1704693939376¬ify_url=https://www.yabandpay.com/notify&receivers=[{"mid":104006,"split_amount":0.01,"role":7,"detail_reference_id":"123456-2","description":"分账描述2"}]&reference=1704693939376&reference_id=1704693939376&split_completed=0&split_solution_id=102&time=1704693939&trade_id=23a199b8-b82b-81b0-a4cd-8485ca4feb3c&user=9212776037"
Assine a stringA usando secret_key
A assinatura resultante é:
"YOUR_SIGNATURE"
Exemplo de solicitação:
{
"user": "9212776037",
"sign": "YOUR_SIGNATURE",
"method": "v3.SplitPayment",
"time": 1704693939,
"data": {
"command": "createSplitPayment",
"trade_id": "23a199b8-b82b-81b0-a4cd-8485ca4feb3c",
"split_solution_id": "102",
"currency": "EUR",
"notify_url": "https://www.yabandpay.com/notify",
"nonce_string": "1704693939376",
"split_completed": 0,
"reference_id": "1704693939376",
"reference": "1704693939376",
"receivers": "[{\"mid\":104006,\"split_amount\":0.01,\"role\":7,\"detail_reference_id\":\"123456-2\",\"description\":\"分账描述2\"}]"
}
}
Exemplo de resposta:
{
"status": true,
"code": "200",
"data": {
"user": "9212776037",
"split_id": "20240108162134979318",
"trade_id": "23a199b8-b82b-81b0-a4cd-8485ca4feb3c",
"split_solution_id": "102",
"state": "Processing",
"merchant_mid": "102300",
"merchant_name": "Yaband Telecom B.V.",
"created_at": "1704702094",
"currency": "EUR",
"notify_url": "https://www.yabandpay.com/notify",
"split_completed": 0,
"reference_id": "1704693939376",
"reference": "1704693939376",
"receivers": [
{
"merchant_mid": "104006",
"merchant_name": "ybtest",
"split_detail_id": "20240108162134979318-1",
"detail_reference_id": "123456-2",
"split_type": "Split",
"split_amount": "0.01",
"role": "7",
"result": "Processing",
"description": "分账描述2",
"error_msg": null
}
],
"type": "splitPayment"
},
"message": ""
}
- Parâmetros de resposta
| Parâmetro | Tipo | Descrição |
|---|---|---|
| user | String | UID da conta de caixa |
| split_id | String | Número do pedido de divisão de pagamentos gerado quando a divisão é criada |
| trade_id | String | trade_id do pedido YabandPay |
| split_solution_id | String | ID da solução de divisão de pagamentos |
| state | String | Status: Processing, Success, Failed, Cancelled |
| merchant_mid | String | mid do estabelecimento que divide o pagamento |
| merchant_name | String | Nome do estabelecimento que divide o pagamento |
| created_at | String | Carimbo de data/hora de criação |
| currency | String | Order settlement currency, Settlement Currency |
| notify_url | String | URL de notificação assíncrona |
| split_completed | String | Whether the payment split is complete: 0: No, 1: Yes |
| reference_id | String | ID de divisão de pagamentos do estabelecimento, no máximo 32 caracteres |
| reference | String | Description, no longer than 128 characters |
| type | String | Tipo: splitPayment ou splitRefund |
| receivers | String | Informações do destinatário da divisão no formato JSON |
| receivers.merchant_mid | String | mid do destinatário da divisão de pagamentos |
| receivers.merchant_name | String | Nome do estabelecimento destinatário da divisão de pagamentos |
| receivers.split_detail_id | String | Número do detalhe da divisão gerado quando a divisão de pagamentos é criada |
| receivers.detail_reference_id | String | Número do detalhe da divisão de pagamentos do estabelecimento |
| receivers.split_type | String | Tipo de divisão de pagamentos: Split ou Return |
| receivers.split_amount | String | Valor da divisão de pagamentos |
| receivers.role | String | Função do destinatário da divisão de pagamentos |
| receivers.result | String | Status: Processing, Success, Failed, Cancelled |
| receivers.description | String | Descrição do detalhe da divisão de pagamentos |
| receivers.error_msg | String | Mensagem de erro do detalhe da divisão de pagamentos; preenchida quando o resultado é Failed |
