[Bug]: Admin "Check status" (authorizePaymentSessionForOrderWorkflow) creates a capture but never emits payment.captured#16727
Package.json file
{
"name": "medusa-payment-captured-repro",
"version": "0.0.1",
"private": true,
"license": "MIT",
"scripts": {
"build": "medusa build",
"start": "medusa start",
"dev": "medusa develop",
"test:integration:http": "TEST_TYPE=integration:http NODE_OPTIONS=--experimental-vm-modules jest --silent=false --runInBand --forceExit"
},
"dependencies": {
"@medusajs/admin-sdk": "2.20.1",
"@medusajs/cli": "2.20.1",
"@medusajs/framework": "2.20.1",
"@medusajs/medusa": "2.20.1"
},
"devDependencies": {
"@medusajs/test-utils": "2.20.1",
"@swc/core": "^1.7.28",
"@swc/jest": "^0.2.36",
"@types/jest": "^29.5.14",
"@types/node": "^20.12.11",
"jest": "^29.7.0",
"pg-god": "^1.0.12",
"ts-node": "^10.9.2",
"typescript": "^5.6.2"
},
"engines": {
"node": ">=20"
}
}
Node.js version
v24.13.1
Database and its version
PostgreSQL 18
Operating system name and version
macOS Tahoe 26.5
Browser name
N/A (backend behaviour; reproduced via the admin dashboard and via the API directly)
What happended?
Since v2.17.0 (#15085, async payment methods) a payment provider can return pending_authorization from
authorizePayment, the cart completes with an "awaiting" order, and an admin can later click Check status
on the order page. That button calls POST /admin/orders/:id/payment-sessions/authorize, which runs
.