Custom payment processor Refund URL: exact HTTP response and asynchronous completion contract

We are implementing staff-initiated full refunds for a custom payment processor backed by Stripe PayPay (JPY). We have read the PHP SDK, discussion #1116, and the Merchant API. The seven request fields and HMAC validation are documented, but we need the Refund URL’s response contract before enabling financial processing. Could you confirm these three points?

  1. Input: What HTTP method, Content-Type/charset, and exact amount/currency/timestamp formats are sent to the custom Refund URL? A fully synthetic example of a JPY 1,000 full-refund request would help. Please include no live credentials or customer data.

  2. Success and failure ACK: What exact HTTP status, response Content-Type, and body does SBPay require for a refund that succeeded, was rejected/failed, or remains pending at the payment provider? When does each response update the SBPay order, SimplyBook invoice, and credit note? Our current Google Apps Script ContentService endpoint redirects to script.googleusercontent.com: does SBPay follow this redirect and evaluate the final response? The empty response documented for the Merchant API’s POST /api/order/{id}/refund is the opposite direction, so we have not assumed it applies to this callback.

  3. Timeout, pending, retry and re-entry: What is the synchronous timeout, and what state remains after a timeout or lost reply? Does SBPay retry, and how can the same operation be identified on an automatic/manual retry? If Stripe returns pending and later succeeds/fails, what supported endpoint/schema completes the same SBPay refund? After a Refund URL is registered, does the Merchant API’s /refund call invoke it again, and how should an already-successful external refund be recorded without starting another refund or creating a loop? Please state explicitly if asynchronous completion is unsupported.

This is a specification request only. Please do not change any account, register a URL, or operate on a live order. Links to current documentation or synthetic wire examples are sufficient. Thank you.

Hi,

Here you can see request payload. It returns only full amount of order.

It returns empty response. You will receive webhook or you can get order status via API.