https://app.sxdigitalpay.com/api/v1; Requires API key provided in Integration menu on Merchant's Dashboard.https://sandbox.sxdigitalpay.com/api/v1; Requires the shared sandbox API key provided in Authentication.GET /payment-links is disabled in sandbox and returns 403.paymentLink.url or paymentLink.shortUrl on response) to simulate payments.x-api-key: <api-key> or Authorization: Bearer <api-key>. See Authentication for full details.X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset and return 429 + Retry-After when the limit is exceeded.POST /payment-linkstitle, amount (> 25).externalReference (idempotency per merchant), expiresAt, metadata (JSON object), webhookUrl, webhookSecret (otherwise generated and returned only once), callbackUrl (redirect after successful payment).url or shortUrl from the response. The checkout and payment capture happen on SX Digital Pay.callbackUrl, the checkout automatically redirects the customer to that URL after the payment is completed.paymentStatus (NOT_STARTED, PENDING, COMPLETED) and payments[] from GET /payment-links/{id}.payment_link.payment_status_changed to be notified when the link's paymentStatus changes.paymentLink.url or paymentLink.shortUrl on Create single-use payment link response). Use the Sandbox panel to simulate link status and payment status changes.POST /payment-linksGET /payment-links (filters: status, externalReference, pagination) Production onlyGET /payment-links/{id}ACTIVE: link is usable; isActive is true while not expired.INACTIVE: disabled by the platform or business logic.EXPIRED: past expiresAt or otherwise expired.isMultiUse always false). After a payment is completed, expect the link to become inactive and receive a webhook if configured.paymentStatus (aggregated by link):NOT_STARTED: no payments exist for the link.PENDING: at least one payment exists but none completed.COMPLETED: the payment has been completed; the payment balance has already been added to the merchant's account.webhookUrl when creating the link to receive events:payment_link.createdpayment_link.status_changedpayment_link.payment_status_changedpayment_link.payment_status_changed is the simplest way to know when a link starts receiving payments (NOT_STARTED -> PENDING) and when a payment is completed (PENDING -> COMPLETED). The payload also includes the latest payment summary and counts.x-sxpay-signature: HMAC-SHA256 of "{timestamp}.{rawBody}" using the link's webhookSecret.x-sxpay-timestamp: Epoch milliseconds.2xx status to acknowledge successful receipt. For complete details, see Webhook Delivery System.url (or shortUrl).payment_link.payment_status_changed with paymentStatus: COMPLETED (and latestPayment) or poll GET /payment-links/{id} to reconcile.GET /payment-links/{id} to read paymentStatus and payments[].401 Missing/invalid API key.403 Merchant inactive or sandbox-only restriction (e.g., list endpoint or payment continuation in sandbox).404 Resource not found (link or payment).400 Validation issues (title, amount, dates, webhookUrl).409 externalReference already exists for the merchant.id, title, amount, currency, status, paymentStatus, isMultiUse:false, isActive, isExpired, expiresAt, url, shortUrl, metadata, optional callbackUrl, optional webhookUrl, optional webhookSecret (only at creation).paymentsSummary (counts by status) plus payments[] with id, status, timestamps, optional customer, optional quote (amount, currency, paymentMethod, installments, totalBRL).PENDING | COMPLETED | DISPUTED | REFUNDED.externalReference for idempotency and reconciliation on your side.webhookSecret securely; it is only returned at creation time.x-sxpay-timestamp freshness to prevent replay attacks.id field, as SX Digital Pay may deliver the same event multiple times during retries.2xx responses quickly (< 20 seconds) to acknowledge receipt; process payloads asynchronously if needed.developers@sxdigitalpay.com.