Public URL for invoice not available via API?

For some reason, even using your developer portal, I’m doing this multiple times. I’ve wasted 12 hours on this now, and it still does not work consistently. I will get it to work once, and then it stops working. Can I just get on the call with one of you guys to get this solved? Because we’re waiting on getting this fixed, and every time we try to get it to work, it works once, and then it fails on everything else, even though we’re passing through the versioning.

I just don’t understand why something so simple just isn’t occurring.

Square CURL Dev Portal Example:

curl https://connect.squareup.com/v2/invoices/inv%3A0-ChCOBu-Q_2-ml9Q1tiJPbU4EENgO/publish \ -X POST \ -H ‘Square-Version: 2025-09-24’ \ -H ‘Authorization: Bearer PUBLIC KEY’ \ -H ‘Content-Type: application/json’ \ -d ‘{ “idempotency_key”: “b5541137-2b34-4885-876b-5d58d1e893cb”, “version”: 1 }’

Output:

// cache-control: max-age=0, private, must-revalidate // content-encoding: gzip // content-type: application/json // date: Mon, 13 Oct 2025 20:50:50 GMT // square-version: 2025-09-24 { “invoice”: { “id”: “inv:0-ChCOBu-Q_2-ml9Q1tiJPbU4EENgO”, “version”: 2, “location_id”: “L3ZTJHV239CNR”, “order_id”: “C2FisOqZ25f44a3Q6yy5lM2IwR6YY”, “payment_requests”: [ { “uid”: “5d137dc7-e737-4299-8570-523706e4535d”, “request_type”: “DEPOSIT”, “due_date”: “2025-10-13”, “percentage_requested”: “50”, “tipping_enabled”: false, “computed_amount_money”: { “amount”: 102153, “currency”: “USD” }, “total_completed_amount_money”: { “amount”: 0, “currency”: “USD” }, “automatic_payment_source”: “NONE” }, { “uid”: “eff1dad4-8d3c-4646-b838-4a366103a379”, “request_type”: “BALANCE”, “due_date”: “2025-10-17”, “tipping_enabled”: false, “computed_amount_money”: { “amount”: 102153, “currency”: “USD” }, “total_completed_amount_money”: { “amount”: 0, “currency”: “USD” }, “automatic_payment_source”: “NONE” } ], “primary_recipient”: { “customer_id”: “DKBYAVFV86ZMVQEXDWZ3ANSW00”, “given_name”: “Example”, “family_name”: “Test”, “email_address”: “[email protected]”, “phone_number”: “1555123456”, “company_name”: “Ad Labs Marketing” }, “invoice_number”: “INV-2025-10-18-C2FisOqZ25f44a3Q6yy5lM2IwR6YY”, “title”: “Stellar Skate Spectacular”, “description”: “Adult Bday or Group Booking (21+)\nEvent Manager: Kaek Smoak\nCredit card payments subject to 3% fee.\nAll cancellation notices must be in writing, 7 days in advance for refund.\nCurrent total for food and beverage = $362”, “scheduled_at”: “2025-10-13T21:49:18Z”, “status”: “SCHEDULED”, “timezone”: “America/New_York”, “created_at”: “2025-10-13T20:49:19Z”, “updated_at”: “2025-10-13T20:50:50Z”, “accepted_payment_methods”: { “card”: true, “square_gift_card”: false, “bank_account”: true, “buy_now_pay_later”: false, “cash_app_pay”: false }, “delivery_method”: “SHARE_MANUALLY”, “sale_or_service_date”: “2025-10-18”, “store_payment_method_enabled”: false } }

Still does not have the Public URL which we require, but has everything else we dont need at this point.

Based on everything you guys have told me, if I went to go rerun this exact invoice, I would now use versioning two, and I would use the exact endpoint that is above with our authorization bearer key with that same date of most recent update, and then the return output should have a body with the URL attached. However, if I do that, it’s not showing me what I need.