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 eitherACCEPTED
orREJECTED
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 inpriceCurrency
(usually this is a fiat currency).acceptedPaidPriceAmount
- total accepted amount inpriceCurrency
.paidPriceAmount
- sum ofpendingPaidPriceAmount
andacceptedPaidPriceAmount
.
There are also corresponding pendingPaidTransferAmount
,acceptedPaidTransferAmount
and paidTransferAmount
fields for transferCurrency
(thi is usually cryptocurrency)