Every transaction has a lifecycle where it moves from one state to another. Depending on the state, users can perform different actions. Usually, there is one action which moves the transaction further and one action for cancelling the transaction. If the transaction is cancelled and there is payment, the buyer gets refunded automatically (usually within 1 hour).
The status of a transaction is stored in the transaction object.
curl --location 'https://dev.stage.trustap.com/api/v1/p2p/transactions/{transaction_id}' \
--user '<API_KEY>:'Caller
Buyer
Seller
Buyer and/or Seller
Trustap
Connection types
Next possible status
Possible previous status
| Status | Description | Next possible status | Transitions |
|---|---|---|---|
created | Face-to-face transactions start off in the created state, and will have either a "seller" or a "buyer" user (the user who created the transaction) linked to it. Face-to-face transactions have a "join code" while in this state. | joined, cancelled | A Trustap user other than the creator can join a created transaction. The creator of the transaction can cancel a created transaction using its id. |
joined | A joined transaction is one that has both a seller and a buyer user linked to it, and requires payment before moving on to the next state. | cancelled, deposit_paid | The buyer can pay a deposit for, or cancel, a joined transaction. |
deposit_paid | A deposit_paid transaction waits for the seller to accept the buyer's deposit before progressing. | deposit_accepted, cancelled_with_deposit, remainder_skipped | The seller can accept a deposit for, or cancel, a deposit_paid transaction. A transaction with a status of deposit_paid that goes to a deposit_accepted status automatically transitions to a remainder_skipped status. |
cancelled | A cancelled transaction is one the one of the buyer or seller has decided not to continue with. | – | |
deposit_accepted | A deposit_accepted transaction waits for the seller to set the pricing for the transaction before progressing. | remainder_skipped, cancelled_with_deposit |
|
remainder_skipped | A remainder_skipped transaction is one that is pending handover confirmation, primarily from the seller. A complaint can also be submitted by the buyer at this point. | buyer_handover_confirmed, seller_handover_confirmed, complained | The buyer and seller can both confirm the handover of the goods. |
cancelled_with_deposit | A cancelled_with_deposit transaction is one that has been cancelled after its deposit has been paid. | deposit_refunded | The Trustap platform updates the state of a cancelled_with_deposit transaction to deposit_refunded once the deposit has been refunded to the buyer. |
deposit_refunded | A deposit_refunded transaction is considered to be completed. | – | |
buyer_handover_confirmed | A buyer_handover_confirmed transaction is one that is still pending the seller handover confirmation. | complained, complaint_period_ended |
|
seller_handover_confirmed | A seller_handover_confirmed transaction gives the buyer an opportunity to verify the item they have received. Once the item has been received, the Trustap platform begins a "complaints period". | complained, complaint_period_ended, funds_released |
|
complained | A complained transaction is registered with Trustap for conflict resolution. | funds_released | After arbitration, Trustap will release the funds to the buyer and/or seller in a certain ratio and will update the state to funds_released. |
funds_released | A funds_released transaction is considered to be completed. | – | |
complaint_period_ended | The time window to file a complaint has ended. | funds_released |