Payment Intent

  • For Stripe confirm is Authorization.
TaskExpires
CreateExpires 24 hours after creation, if not authorized.
Standard authorization7 days from confirmation
Extended authorization (if available)Up to 31 days from confirmation

Terms

TermDefinition
ConfirmAuthorize (hold funds, start timer)
CaptureCharge (transfer funds)
Automatic captureAuthorize + Capture in one step
Manual captureAuthorize now, Capture later

Create PaymentIntent (No Timer Yet):

# Day 1, 2:00 PM - Create PaymentIntent
payment_intent = client.v1.payment_intents.create(
    params={
        "amount": 10000,
        "currency": "usd", 
        "capture_method": "manual"
    }
)
# Status: requires_payment_method
# ⏰ NO TIMER STARTED YET

Confirm PaymentIntent (Start Timer):

# Day 3, 4:00 PM - Customer confirms payment
confirmed_intent = client.v1.payment_intents.confirm(
    payment_intent.id,
    params={"payment_method": payment_method_id}
)
# Status: requires_capture  
# ⏰ TIMER STARTS NOW: Day 3, 4:00 PM

Capture PaymentIntent (Within 7 Days):

# This CAPTURES the authorized funds (money moves to your account)
captured_intent = client.v1.payment_intents.capture(payment_intent.id)
# Status: succeeded  
# ✅ Money transferred from customer to your account