Short answer: In TinyCommand, add the PayPal PayPal Payment Completed trigger to a workflow and publish. It listens through a PayPal webhook and fires your workflow within seconds of the event, with no polling and no code. Add a filter if you only want some events to start a run.
Drop it on the canvas. Configure a couple of fields. Publish.
You don’t need to read this. TinyCommand auto-maps every field into the visual picker so downstream nodes can pull values by clicking. We show it here for power users who want to know what’s on the wire.
{"id": "capture_123","amount": {"value": "99.99","currency_code": "USD"},"status": "COMPLETED","create_time": "2026-04-11T10:00:00Z","final_capture": true,"seller_receivable_breakdown": {"net_amount": {"value": "96.99"},"gross_amount": {"value": "99.99"}}}
Every field below can be referenced by name in any action or filter that comes after this trigger.
| Field | Type | Example |
|---|---|---|
| id | string | "capture_123" |
| amount | object | { … } |
| amount.value | string | "99.99" |
| amount.currency_code | string | "USD" |
| status | string | "COMPLETED" |
| create_time | string | "2026-04-11T10:00:00Z" |
| final_capture | boolean | true |
| seller_receivable_breakdown | object | { … } |
| seller_receivable_breakdown.net_amount | object | { … } |
| seller_receivable_breakdown.net_amount.value | string | "96.99" |
| seller_receivable_breakdown.gross_amount | object | { … } |
| seller_receivable_breakdown.gross_amount.value | string | "99.99" |