Delete an External Account
Delete an External Account (soft delete). Returns 204.
Returns 409 ConvertingSendInFlight while a converting send (a crypto send that swaps to another asset, then sends to this account) still owes a send to the account: its swap is still settling, the send has not been issued yet, or the send failed and is still being retried automatically (a withdrawal reads processing.payoutRetrying, a deposit address payout reads processing.awaitingCryptoOut). The error’s cause names the oldest such transaction by its txn_ id. Nothing is deleted. A failed send that is still being retried keeps blocking the delete, so retrying the delete succeeds only once that transaction has completed, or the retries have finished with it (for example because the provider failed the swap), or operations have closed it. To cut the account off now, use the emergency revoke below.
Emergency revoke. If the account must be cut off now (for example because it is compromised), send emergencyRevoke=true with a reason. The account is deleted even while a converting send is in flight. What follows covers crypto to crypto sends by Coinme (withdrawals and deposit address crypto payouts, converting or same-asset, and their retries); the last point covers every other send:
- every converting send to it whose send has not been issued yet is stopped by the revoke: nothing is sent to the account, the funds stay with the provider and are held for operations review (nothing is returned automatically), and the transaction never completes (it reads
failed, with the funds held for review). These are listed inrevokedTransactionIds. - every other such send (a same-asset withdrawal or deposit address payout, or a retry) re-checks the account right before it is issued, so one not issued yet fails once the account is deleted. That is the delete itself, not the revoke. A same-asset send whose check passed in the instant before the delete committed, and whose transaction did not exist yet when the lists were read, can still be issued and is not listed. - such a send that may already have been issued cannot be recalled and may still complete: one pending or processing, or recorded as failed after an unclear provider answer. These are listed insendsNotRecalledTransactionIds, together with any other crypto to crypto send by that provider to the account (such as a virtual account’s crypto forward). A pending one is listed even if its call had not gone out yet. - every other send to the account is in neither list, notably any deposit address or virtual account crypto payout by Erebor, and any crypto buy delivered to the account. The delete does not stop one already issued, so an emptysendsNotRecalledTransactionIdsdoes not mean nothing can still reach the account. To find those, list the customer’spendingandprocessingtransactions and check those whosedestinationiswalletExternalwith this account’sid.
The response is 200 with both lists. The reason is recorded on every stopped transaction for operations review. Sending the same request again for an account this project already deleted with an emergency revoke that stopped at least one transaction answers 200 again with the lists rebuilt from what that revoke recorded, without changing anything; the not-recalled list is read again, so a send that settled since drops out. Any other deleted account answers 404, including one deleted by an emergency revoke that stopped nothing: then nothing records the revoke, so its sendsNotRecalledTransactionIds cannot be read again. Keep that list from the first response; if it was lost, find the sends still owed to the account through the customer’s transactions, as above. Without emergencyRevoke, or with emergencyRevoke=false, the delete behaves as described above and reason is ignored.
Authorizations
Token from POST /auth/token
Path Parameters
External Account ID (ext_ prefix).
Query Parameters
Delete even while a converting send to this account is in flight, and stop every such send not yet issued. Requires reason. See the operation description.
Why the account is being cut off. Required with emergencyRevoke=true: 3 to 500 characters once leading and trailing whitespace is trimmed, otherwise 400 InvalidParameter. The limits apply to the trimmed value only, so this schema sets no length on the raw string: a value padded with whitespace is accepted when what is left fits. The trimmed value is recorded on every transaction the revoke stops and in operations logs, for operations review. It must not carry personal data (names, emails, phone numbers, addresses or account numbers): say what happened, for example "wallet reported compromised", and keep any reference to your own case id.
Response
The outcome of DELETE /external-accounts/{externalAccountId}?emergencyRevoke=true. The account is deleted in every case. Both lists name transactions by their txn_ id and are empty when nothing matched.
The outcome of DELETE /external-accounts/{externalAccountId}?emergencyRevoke=true. The account is deleted in every case. Both lists name transactions by their txn_ id and are empty when nothing matched.
Converting sends to this account (a crypto send that swaps to another asset, then sends to this account) whose send had not been issued yet, and which the revoke stopped. Their funds stay with the provider and are held for operations review: nothing is sent to this account, and nothing is returned automatically. The transaction never completes: it reads failed, with the funds held for review.
Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$Sends to this account that may already have been issued and may still complete. Only crypto to crypto sends by Coinme are covered: a converting or same-asset withdrawal or deposit address crypto payout, a retry of one, or any other crypto to crypto send by that provider to this account (such as a virtual account's crypto forward). One is listed while it is pending or processing, or recorded as failed after an unclear provider answer that the provider may still deliver. An issued send cannot be recalled: it is not affected by the revoke. A pending send is listed even if its call had not gone out yet, because that cannot be told apart from one already on its way; if it had not, it fails when it re-checks the account. A converting send whose send was never issued is in revokedTransactionIds instead.
One narrow case is in neither list: a same-asset send whose re-check of the account passed in the instant before the delete committed, and whose transaction did not exist yet when the lists were read, can still be issued. The transaction query below finds it only once its transaction exists, so repeat the query shortly after the revoke.
Not covered, so never listed: every other send to this account, notably any deposit address or virtual account crypto payout by Erebor, and any crypto buy delivered to this account. An empty list does not mean nothing can still reach the account. To find those, list the customer's transactions that are pending or processing (GET /transactions with customerId and status) and check those whose destination is walletExternal with this account's id.
Public TypeID, e.g. txn_01h455vb4pex5vsknk084sn02q.
^[a-z]+_([0-9a-hjkmnp-tv-z]{26}|[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12})$