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)

Cleo

Cleo#

Bank transfer payment provider supporting multiple Latin American markets (Chile, Peru, Mexico). Pay-In and Pay-Out.
Operations: Pay-In ✓ | Pay-Out ✓ | Webhook ✓
Processing: Asynchronous - redirect user to hosted page; final status via webhook
Markets: Chile, Peru, Mexico
Fields marked with * are required.

Configuration (Mozarto back office)#

FieldDescription
cleoApiKey.chileApiKey *API key for Chile transactions
cleoApiKey.peruApiKey *API key for Peru transactions
cleoApiKey.mexicoApiKey *API key for Mexico transactions
customerExternalKeyForCleo *Your external key identifier for Cleo
webhookUrl *Your HTTPS endpoint for transaction status updates
isWebhookSecuredAdds Authorization header to outbound webhook calls
The correct regional API key is selected automatically based on the countryCode in the transaction request.

Pay-In#

POST /v1/api/mozarto/cashier

Request body#

FieldTypeDescription
pspType *stringAlways "CLEO"
type *stringAlways "PAYIN"
baseamount *numberAmount as a number (e.g. 10000.00)
currency *stringCurrency code (e.g. "CLP", "PEN", "MXN")
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)
gender *stringUser's gender
dob *stringDate of birth (e.g. "1990-01-15")
countryCode *stringCountry code - determines which regional API key is used ("CL", "PE", "MX")
kycVerified *booleanKYC verification status
blocked *booleanWhether user is blocked
isVelocity *booleanVelocity check flag
transactionCount *stringNumber of prior transactions
userBalance *numberUser's current balance
partnerName *stringPartner/operator name
emailVerification *stringVerified email address
verificationDate *stringDate email was verified
brandIdstringBrand identifier
bonusCodestringBonus code
address *object{ line1, line2?, city, state, postalCode, country }

Example request#

{
  "pspType": "CLEO",
  "type": "PAYIN",
  "baseamount": 10000.00,
  "currency": "CLP",
  "currencyCode": "CLP",
  "userId": "user_123",
  "email": "player@example.com",
  "firstName": "John",
  "lastName": "Doe",
  "phone": "56912345678",
  "gender": "male",
  "dob": "1988-05-20",
  "countryCode": "CL",
  "kycVerified": true,
  "blocked": false,
  "isVelocity": false,
  "transactionCount": "1",
  "userBalance": 0,
  "partnerName": "ExamplePartner",
  "emailVerification": "player@example.com",
  "verificationDate": "2024-01-01",
  "address": {
    "line1": "Av. Libertador 1234",
    "city": "Santiago",
    "state": "RM",
    "postalCode": "8320000",
    "country": "CL"
  }
}

Response#

{
  "status": "success",
  "isSuccess": true,
  "data": {
    "status": "PENDING",
    "url": "https://checkout.cleo.finance/...",
    "sessionId": "60a74038-5b94-427e-8cff-abc123"
  }
}

Pay-Out#

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

Response#

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

Webhook#

Mozarto calls your webhookUrl when the transaction reaches a final state.
The method field will be CLEO_PAYIN or CLEO_PAYOUT.
Modified at 2026-05-08 07:47:49
Previous
Brite
Next
Flexepin
Built with