merchantapi-reference icon indicating copy to clipboard operation
merchantapi-reference copied to clipboard

Make `POST /mapi/tx` idempotent (and return the SPV proof if tx is already known/confirmed)

Open ghost opened this issue 3 years ago • 1 comments

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:

  1. If it's a new transaction (unconfirmed), then accept and return the same data as now; and
  2. 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.

ghost avatar Jan 13 '21 06:01 ghost