SpareSpare Docs
GuidesAPI Reference
Guides

Payments API Migration (UAE)

Map legacy UAE payment endpoints to the current Spare API.

Who this is for

This guide is for existing UAE integrations moving from the legacy payment endpoints to the current API. New integrations should start from Quick Start Setup and don't need this page.

Global changes

LegacyCurrent
Sandbox base URLhttps://sandbox.tryspare.aehttps://api.sandbox.tryspare.ae
Tenant header-x-tenant: UAE on every request (except JWKS)

Authentication signatures and request-body structures are unchanged unless noted below.

Authentication

OperationLegacyCurrentChange
TokenGET /api/v1.0/authentication/TokenPOST /auth/api-keys/sessionsMethod GET β†’ POST; status 200 β†’ 201
RefreshGET /api/v1.0/authentication/RefreshPOST /auth/api-keys/sessions/refreshMethod GET β†’ POST
JWKSGET /api/v1.0/authentication/JwksGET /auth/.well-known/jwks.jsonNo auth or tenant header

The refresh token may be sent as the refresh-token header or in the body as { "refreshToken": "..." }.

Providers & purpose codes

OperationLegacyCurrent
Purpose codesGET /api/v1.0/pis/Common/ListPurposeCodesGET /payment-purpose-codes
List providersGET /api/v1.0/pis/Provider/ListGET /providers

Payment requests

OperationLegacyCurrentChange
CreatePOST /api/v1.0/pis/Request/InitiatePOST /payment-requestsStatus 200 β†’ 201
FetchGET /api/v1.0/pis/Request/Fetch/{refId}GET /payment-requests/{refId}-
List-GET /payment-requests?page=1&perPage=20New
Delete-DELETE /payment-requests/{paymentRequestId}New
OperationLegacyCurrentChange
Create (optional)POST /api/v1.0/pis/Consent/Create?id={refId}POST /consent/payment/create?id={refId}Status 200 β†’ 201
GetGET /api/v1.0/pis/Consent/Get?consentId={id}&providerName=...GET /consent/payment/{consentId}consentId moved to path; providerName removed
SyncGET /api/v1.0/pis/Consent/Sync?paymentRequestId={id}GET /consent/payment/sync?paymentRequestId={id}-
List-GET /consent/payment/list?page=1&perPage=20New

Payments

OperationLegacyCurrentChange
GetGET /api/v1.0/pis/Payment/Get?paymentId={id}GET /payments/{paymentId}paymentId moved to path
Write / callback (optional)POST /api/v1.0/pis/Payment/Write?code=...&state=...POST /payment-actions/write-callback?code=...&state=...Status 200 β†’ 201

Confirmation of Payee

OperationLegacyCurrent
Confirm (optional)POST /api/v1.0/pis/ConfirmationOfPayee/Confirm?providerId={id}POST /payment/cop?providerId={id}

What changed, in short

  • Token and Refresh are now POST, not GET.
  • Create / write operations return 201 instead of 200.
  • Path parameters replace query parameters for consentId and paymentId.
  • providerName is dropped from consent lookup.
  • Every request carries x-tenant: UAE, except JWKS.

Key takeaways

  • The base URL moves to https://api.sandbox.tryspare.ae and every request (except JWKS) needs x-tenant: UAE.
  • Most changes are path/method/status; request bodies and auth signatures are unchanged.
  • New list/delete endpoints exist for payment requests and consents.

On this page