Hello,
I am trying to send payouts through the API, it was working well but since last week they are not going through, status is stuck at “New” or “Unknown”. Payout allowances are properly set for the chain/token, and wallet token ballance is sufficient.
Checks payout ID MxUO4f0THbiw9mHE and 8ZLpFCdEpjBjubFm
Indeed, initially I had a first failed payout due to low wallet mainnet token balance - Which I topped up.
However, subsequently all new payouts sent through the API kept failing - Status stuck at “New”, and if not cancelled within certain time, the status change to “Unknown” and can no longer be cancelled (red arrows)
Then today I tried to send transaction manually directly from the wallet with random amounts, and it seems that those transactions did backfill the two oldest payouts previously stuck at “Unknown” status (red square) - And I received the webhook for those two.
Obviously the order amount dont match with the transaction amout. The two tx hash for reference:
0xe06ac0c9058aee51fa44c320a08386a6a416fa0e45f064aad0dc9f9ba44905b4
0x8ab3f2c076182a2e33126e374f35a49eb54427f31fc7a891ba0ead13ea0fd4e6
So my understanding is
As long as there is a pending payout, no new payout can be processed (at least through the API)
For all pending payouts, Atlos keep listening to blockchain transaction forever until a transaction is detected and then will backfill the oldest pending payout (FIFO) & send webhook linked to that payout
I would suggest:
Timeout to set payout status to a hard “Fail” and stop listening to related blockchain transaction, instead of continuously pending / “Unknown”
Or: link transaction to the most recent pending payout instead, so new payouts dont get stuck because of previous pending ones.
Make payouts with status “Unknown” cancellable in the merchant panel
For troubleshooting, maybe indicate the reason for failure from your logs (eg: unable to pay gas fees…)
It turns out our admin address (the one that creates the smart contract) did not have BNB. We refilled it so your payout should go through now. Sorry for the inconvenience.