Payment processing security overview at Bitclear

Definitions:

  • Payment - Process of receiving a specific amount of Cryptocurrency to designated address. Payment has its lifecycle and goes through few steps.
  • Transaction - Cryptocurrency transaction that moves value between addresses. Single payment can be linked to any number of transactions.

Payment transition states

Payment process is started by API Client.

Bitclear API ensures that Payment goes through certain states in the right order when various conditions change.

See more details at Payment States

Overview

Each Cryptocurrency transaction Bitclear API receives is linked to specific Payment. In most cases each transaction results in state transitions of the Payment.

In scenarios when our system decides that the transaction is suspicious the Payment will remain in intermediate step UNCONFIRMED until the transaction is settled on the Blockchain.

For each payment and transaction Bitclear API analyzes its risk depending on multiple factors, one of which is the value of the Payment.

Please see state transaction examples Payment States

Transaction status

Before the transaction gets confirmed on the blockchain it's possible to invalidate it. This fact may be used by malicious users in order to trick others to believe they have received the funds and invalidate the transaction shortly after. To tell whether the funds we received are safe, each transaction received has a state field which can have one of these values:

  • PENDING - transaction is considered reversible and is awaiting confirmations on the blockchain. It will transition to either ACCEPTED or REJECTED eventually. The funds have not been credited to merchants yet.
  • ACCEPTED - transaction has been accepted by Bitclear. The funds will be credited to merchant.
  • REJECTED - transaction turned out to be fraudulent. The funds will not be credited to merchant.

Also, a payment has some fields to help track how much funds have been paid in total for given payment:

  • pendingPaidPriceAmount - total pending amount in priceCurrency(usually this is a fiat currency).
  • acceptedPaidPriceAmount - total accepted amount in priceCurrency.
  • paidPriceAmount - sum of pendingPaidPriceAmount and acceptedPaidPriceAmount.

There are also corresponding pendingPaidTransferAmount ,acceptedPaidTransferAmount and paidTransferAmount fields for transferCurrency(thi is usually cryptocurrency)