merchantapi-reference
merchantapi-reference copied to clipboard
Make `POST /mapi/tx` idempotent (and return the SPV proof if tx is already known/confirmed)
App developers have problems with re-broadcasting and have to attach extra logic to handle the case of a new transaction versus the same (but already confirmed) transaction.
A way to fix this problem is to provide a unified idempotent endpoint that does the following in 1 api call:
- If it's a new transaction (unconfirmed), then accept and return the same data as now; and
- If it's a transaction that was settled (confirmed) from before, then still return a
returnResult: success
and instead also include the SPV proof and transaction details.
This is basically combining the POST /mapi/tx
and GET /mapi/tx/:txid
endpoints into one. This will lead to a more reliable experience for developers and reduce integration difficulty.