Pending deposit confirmation
Start with scenario setup, an open quote and an unpaid request. Use an amount no larger than the quoted cryptoQuantity.
Send POST /v1/collections/simulate-crypto-deposit:
{
"paymentRequestReference": "ORDER-10045",
"quotePaymentId": "49122879-6ca4-40d3-a20d-e011501cd185",
"depositId": "0492f319-60c7-423a-8f9f-61d41901475e",
"cryptoAmount": 25,
"status": "PENDING"
}
The response has depositStatus: DETECTED and paymentStatus: PENDING. Detected funds do not count as received, do not credit the wallet and do not queue the confirmed-deposit lifecycle webhooks. A fresh request stays UNPAID.
Repeat the same body, changing only status to CONFIRMED. Expect depositStatus: CONFIRMED and paymentStatus: RECEIVED. The payment request becomes PAID if the full amount has been confirmed, or PART_PAID if only part of the amount has been confirmed. Confirmation queues payment.pending, payment.received and the webhook for the updated payment request status. Continue with completion, expiring a partially funded quote first.
A retry with the original ID and amount is safe. Changing the amount while reusing the ID returns a validation error. Requesting PENDING after confirmation leaves the deposit confirmed. To test delayed confirmation across checkout expiry, follow deposit at expiry.