This fixes a public API contract gap found while creating worker invoices through the documented API. POST /api/gigs/{id}/invoice rejects requests unless a CoinPay receiving currency and wallet are included, but the OpenAPI request schema only required application_id and amount.
payment_currency and merchant_wallet_address; npm run test:run -- src/app/api/openapi.json/spec.test.ts passed with 9 tests.diff --git a/public/openapi.json b/public/openapi.json
index 3ffd771..7bf71d3 100644
--- a/public/openapi.json
+++ b/public/openapi.json
@@ -1941,11 +1941,24 @@
"application/json": {
"schema": {
"type": "object",
- "required": ["application_id", "amount"],
+ "required": [
+ "application_id",
+ "amount",
+ "payment_currency",
+ "merchant_wallet_address"
+ ],
"properties": {
"application_id": { "type": "string", "format": "uuid" },
"amount": { "type": "number", "exclusiveMinimum": 0 },
"currency": { "type": "string", "default": "USD" },
+ "payment_currency": {
+ "type": "string",
+ "description": "CoinPay receiving currency from /api/coinpay/wallets, such as sol or eth."
+ },
+ "merchant_wallet_address": {
+ "type": "string",
+ "description": "Worker's CoinPay global wallet address for the selected payment_currency."
+ },
"notes": { "type": "string" },
"due_date": { "type": "string", "format": "date" }
}