Face-to-face Transaction Lifecycle
This page details the lifecycle of face-to-face transactions in terms of their different states and how they transition from one state to the next. The lifecycle is presented as a state machine.
Lifecycle Diagram
Here we present a diagrammatic overview of the face-to-face transaction lifecycle. The colours of the edges indicate the actors that initiate those state transitions.
States
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.
Transitions: A Trustap user other than the creator can
join
or
reject
a created
transaction using its join code.
The creator of the transaction can
cancel a
created
transaction using its id.
Rejected
A rejected
transaction is considered to be completed.
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.
Transitions: The buyer can
pay a deposit
for, or
cancel,
a joined
transaction.
Cancelled
A cancelled
transaction is considered to be completed.
Deposit paid
A deposit_paid
transaction waits for the seller to accept the buyer's deposit
before progressing.
Transitions: The seller can
accept a deposit
for, or
cancel,
a deposit_paid
transaction.
Cancelled with deposit
A cancelled_with_deposit
transaction is one that has been cancelled after its
deposit has been paid.
Transitions: 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.
Deposit Accepted
A deposit_accepted
transaction waits for the seller to set the pricing for
the transaction before progressing.
Transitions:
- The seller can skip the remainder
step
after the deposit is accepted, instead of setting a price for the transaction.
If the transaction was created with
"skip_remainder": true
, then this transition occurs automatically as soon as the deposit is accepted. - The seller can set the
pricing
of the transaction, or
cancel,
a
deposit_accepted
transaction.
Priced
A priced
transaction is one that has had pricing information set, and
requires payment before moving on to the next state.
Transitions: The buyer can
pay the remainder
of the transaction, or
cancel,
a joined
transaction.
Remainder Paid
A remainder_paid
transaction is one that is pending handover confirmation,
primarily from the seller. Once the seller has confirmed the handover, the buyer
has an opportunity to submit a complaint.
Transitions: The buyer and seller can both confirm the handover of the goods.
Remainder skipped
A remainder_skipped
transaction is one that is pending handover confirmation,
primarily from the seller. Once the seller has confirmed the handover, the buyer
has an opportunity to submit a complaint.
Transitions: The buyer and seller can both confirm the handover of the goods.
Buyer handover confirmed
A buyer_handover_confirmed
transaction is one that is still pending the seller
handover confirmation.
Transitions:
- The buyer can
complain
about a
delivered
transaction before the complaints period ends. - The seller can confirm the handover of the goods.
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 delivered, the
Trustap platform begins a "complaints period".
Transitions:
- The buyer can
complain
about a
delivered
transaction before the complaints period ends. - If no such complaint occurs before the complaints period ends then the Trustap
platform will release the funds for the transaction to the seller and will
update the state to
funds_released
. - The buyer can confirm the handover of the goods, if they haven't done so already.
Complained
A complained
transaction is registered with Trustap for conflict resolution.
Transitions: 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.