1. 6. Payment Providers (PSPs)
Mozarto - The Payments Orchestration Platform
  • 1. Introduction
  • 2. Quick Start
  • 3. Authentication
  • 4. Errors
  • 5. Redirect flow
    • Pay-In Flow
    • Pay-Out Flow
    • Webhook Setup
  • 6. Payment Providers (PSPs)
    • Overview
    • Brite
    • Cleo
    • Flexepin
    • ForumPay
    • Gigadat
    • Neosurf
    • Payone
    • Trust Payments
    • WorldPay
  • 7. Redirect Flow APIs
    • PayIn
      • Forumpay
      • Payone
    • PayOut
      • Forumpay
      • Payone
  • Schemas
    • TransactionData
  1. 6. Payment Providers (PSPs)

Payone

Payone#

Bank transfer and alternative payment methods. Supports Pay-In and Pay-Out.
Operations: Pay-In ✓ | Pay-Out ✓ | Webhook ✓
Processing: Asynchronous - redirect user to hosted page; final status via webhook
Fields marked with * are required.

Configuration (Mozarto back office)#

FieldDescription
accountName *Display name for this account
apiKey *Payone API key
webhookUrl *Your HTTPS endpoint for transaction status updates
siteUrl *Your site URL - used by Payone to build redirect URLs after payment
isWebhookSecuredAdds Authorization header to outbound webhook calls

Pay-In#

POST /v1/api/mozarto/cashier

Request body#

FieldTypeDescription
pspType *stringAlways "PAYONE"
type *stringAlways "PAYIN"
baseamount *numberAmount as a number (e.g. 100.00)
currency *stringCurrency code (e.g. "EUR")
currencyCode *stringCurrency code
userId *stringYour internal user/player identifier
email *stringUser's email address
firstName *stringUser's first name
lastName *stringUser's last name
phone *stringPhone number (min 6 digits)
brandIdstringBrand identifier

Example request#

{
  "pspType": "PAYONE",
  "type": "PAYIN",
  "baseamount": 100.00,
  "currency": "EUR",
  "currencyCode": "EUR",
  "userId": "user_123",
  "email": "player@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "phone": "4915112345678"
}

Response#

{
  "status": "success",
  "message": "Transaction successfully processed",
  "isSuccess": true,
  "data": {
    "success": true,
    "message": "Transaction successfully Ongoing Process",
    "redirect_url": "https://demo.payonepayment.com/webflow-payment/...",
    "transactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "merchantReference": "",
    "amount": 10
  }
}
Note: Payone uses data.redirect_url - not data.url as returned by other providers. Update any redirect logic accordingly.
FieldDescription
data.redirect_urlHosted payment page URL - redirect the user here
data.transactionIdMozarto transaction ID - use for status queries and idempotency
data.amountTransaction amount as a number
data.transaction_statusInitial status - always "Pending" on creation

Pay-Out#

POST /v1/api/mozarto/cashier
Uses the same request body as Pay-In with type set to "PAYOUT". All required fields remain the same.

Response#

{
  "status": "success",
  "message": "Withdraw request successfully processed",
  "isSuccess": true,
  "data": {
    "success": true,
    "message": "Withdraw request successfully processed",
    "withdraw": {
      "client": "Your account name",
      "brand": "Your account name",
      "userId": "000000000000000000000001",
      "transactionId": "HS932097JV",
      "first_name": "John",
      "last_name": "Doe",
      "email": "merchant@example.com",
      "phone": "07700900000",
      "userIp": "203.0.113.42",
      "currency": "EUR",
      "siteUrl": "https://your-site.com/operations",
      "amount": "10.00",
      "date": "2026-04-30",
      "status": "Pending"
    },
    "transactionId": "64a1f2b3c4d5e6f7a8b9c0d1",
    "merchantReference": "",
    "amount": 10
  }
}
FieldDescription
data.transactionIdMozarto transaction ID - use for status queries and idempotency
data.amountTransaction amount as a number
data.withdraw.transactionIdPayone internal transaction ID
data.withdraw.statusInitial status - always "Pending" on creation
data.withdraw.siteUrlThe siteUrl from your configuration
data.withdraw.userIpIP address of the request origin

Webhook#

Mozarto calls your webhookUrl when the transaction reaches a final state.
The method field will be PAYONE_PAYIN or PAYONE_PAYOUT.

Payload example#

{
  "transaction_id": "69f8a54b2beab46cc6a51149",
  "psp_transaction_id": "HS923856HU",
  "user_id": "000000000000000000000001",
  "status": "Declined",
  "transaction_status": "Declined",
  "message": "Declined",
  "amount": "10.00",
  "merchantReference": ""
}
FieldDescription
transaction_idMozarto transaction ID - matches data.transactionId from the Pay-In/Pay-Out response
psp_transaction_idPayone internal transaction ID - matches the ID embedded in data.redirect_url
user_idThe user ID passed in the original request
statusRaw Payone status string - do not use for business logic
transaction_statusNormalized Mozarto status - use this for all business logic
messageHuman-readable description of the outcome
amountTransaction amount as a string
merchantReferenceThe merchant reference passed in the original request - empty string if not set
Modified at 2026-05-08 07:49:47
Previous
Neosurf
Next
Trust Payments
Built with