1. 7. Payment Providers (PSPs)
Mozarto - The Payments Orchestration Platform
  • 1. Introduction
  • 2. Quick Start
  • 3. Authentication
  • 4. Webhook Setup
  • 5. Errors
  • 6. Redirect flow
    • Pay-In Flow
    • Pay-Out Flow
  • 7. Payment Providers (PSPs)
    • Overview
    • Brite
    • Cleo
    • Flexepin
    • ForumPay
    • Gigadat
    • Neosurf
    • PayOne
    • Trust Payments
    • Worldpay
    • Emerchantpay
  • 8. Redirect Flow APIs
    • Redirect Flow APIs - overview
    • Pay-In
      • WorldPay
      • Forumpay
      • Payone
      • Gigadat
      • Flexepin
      • Trust
    • Pay-Out
      • Forumpay
      • Payone
      • Gigadat withdraw ETO
      • Gigadat withdraw ACH
    • Webhook
      • Payone status webhook
  • Schemas
    • TransactionData
  1. 7. Payment Providers (PSPs)

Neosurf

Prepaid voucher payment method. Users pay by entering a voucher PIN - no bank account or card required.
Operations: Pay-In ✓ | Pay-Out - | Webhook ✓
Processing: Synchronous voucher redemption
Payment type: Prepaid voucher (PIN-based)
Fields marked with * are required.

Configuration (Mozarto back office)#

FieldDescription
accountName *Display name for this account
apiKey *Neosurf API key - used to sign the request hash
siteUrl *Your site URL - used to build the success, failure, and pending redirect URLs
merchantId *Your Neosurf merchant ID
webhookUrlYour HTTPS endpoint for transaction status updates

Pay-In#

POST /v1/api/mozarto/cashier
The user enters their Neosurf voucher PIN in your cashier before you call this endpoint.

Request body#

FieldTypeDescription
pspType *stringAlways "NEOSURF"
type *stringAlways "PAYIN"
baseamount *numberAmount to redeem as a number (e.g. 50.00)
currency *stringCurrency code (e.g. "EUR")
currencyCode *stringCurrency code
userId *stringYour internal user/player identifier
email *stringUser's email address
brandIdstringBrand identifier
siteUrlstringPer-transaction redirect URL. Overrides the siteUrl from your configuration for the success, failure, and pending return URLs
Unlike most providers, the user does not get redirected to a hosted page. The voucher PIN is collected in your own interface and submitted directly. No data.url is returned.

Example request#

{
  "pspType": "NEOSURF",
  "type": "PAYIN",
  "baseamount": 50.00,
  "currency": "EUR",
  "currencyCode": "EUR",
  "userId": "user_123",
  "email": "player@example.com"
}

Response#

{
  "status": "success",
  "isSuccess": true,
  "data": {
    "status": "PENDING",
    "sessionId": "60a74038-5b94-427e-8cff-abc123"
  }
}

Webhook#

Mozarto calls your webhookUrl with the transaction result.
The method field will be NEOSURF_PAYIN.

Error codes#

Neosurf transport failures are mapped to normalized Mozarto errorCode values. Use errorCode for programmatic handling rather than parsing raw response fields.
Mozarto errorCodePSP raw signalWhen
INVALID_PSP_CREDENTIALSHTTP 404 / 401 / 403API key, merchant ID, or site URL is missing or rejected by Neosurf
PSP_TIMEOUTHTTP 408 or response body contains "timeout"Neosurf did not respond in time - safe to retry
PSP_UNAVAILABLEHTTP 5xxNeosurf service error - safe to retry with backoff
PSP_RATE_LIMITEDHTTP 429Too many requests - retry after a delay
UNKNOWN_PSP_ERRORAny other responseUnrecognised error - check data.error for the raw message and contact support if it persists
Voucher-level rejections (invalid voucher, declined amount) are returned by Neosurf with an HTTP 200 and a populated data.error / data.errorcode; these surface in the standard error response with the raw message.
For the full list of errorCode values and retryability guidance, see Errors.
Modified at 2026-06-09 11:01:55
Previous
Gigadat
Next
PayOne
Built with