• Documentation
  • API Reference
  • Documentation
  • API Reference
Expand All Collapse All
< BACK TO HOME
  • APMs Overview
    • Introduction to APMs
    • APM Input Fields and APIs
    • APM subMethod Class
    • Account Details Capture
    • APM Countries and Currencies
  • Global Guides
    • Apple Pay
      • Registering with Apple Pay
        • (Manually) Register in the Apple System
          • Create an Apple ID
          • Enroll in the Apple Developer Program
            • Submit an Enrollment Request
            • Complete the Enrollment Process
            • Activate your Apple Developer Program Account
          • Register a Merchant ID in the Apple System
            • Create a Merchant ID
            • Create a Payment Processing Certificate
            • Create a Merchant Identity Certificate
            • Register and Verify Your Domain
      • Nuvei Apple Pay Implementations
        • Payment Page using IFrame
        • Static Apple Pay Button
        • Static Pay Button (Web SDK)
        • Dynamic Apple Pay Button
      • Apple Pay Integration
        • Apple Pay Guide (REST API)
        • Apple Pay Guide (Web SDK)
        • Apple Pay Guide (Checkout)
        • Apple Pay Integration Testing
    • Google Pay
      • Google Pay (REST API)
      • Google Pay (Web SDK)
      • Google Pay (Checkout)
    • Neteller
    • PayPal
    • Skrill
    • Visa Checkout
      • Visa Checkout (REST API)
  • US and Canada Guides
    • ACH
    • Interac Instant
    • Mazooma
    • PayNearMe
    • PlayPlus
      • PlayPlus (REST)
      • PlayPlus (Web SDK)
    • VIP Preferred
      • VIP Preferred (REST)
      • VIP Pref. (Web SDK/Checkout)
  • Europe Guides
    • Aircash
    • Okto Cash
    • Open Banking
  • Latin America Guides
    • LATAM Payouts
    • Pay4Fun
    • PIX
    • PIX Payouts
    • PSE
    • STPmex
  • Asia Pacific Guides
    • Alipay HK
    • Dana
    • DragonPay
    • GCash
    • India Payouts
    • KakaoPay
    • Touch ’n Go
    • TrueMoney

Okto Cash

On this page:
  • Introduction
  • Supported Countries
  • Supported Currencies
  • Implementation Details
  • User Experience
  • Testing
Attributes
  • METHOD TYPEVoucher
  • PAYMENT
  • PAYOUT
  • REFUNDS

Introduction

OKTO Cash is an e-voucher service that allows users to load their accounts that are held with a collaborating merchant safely, securely and in real-time, by paying in cash at a partnering point of sale (POS) system (such as a store or a market).

The solution enables users to pay for a product or a service online and then pay in cash at the nearest POS, by scanning a unique pay code (GS1 barcode or QR code).

Supported Countries

  • Cyprus
  • Greece
  • Italy
  • Romania

Supported Currencies

  • EUR
  • RON

Implementation Details

Click tab to open…

  • for REST API
  • for Web SDK
{
  "sessionToken":"<sessionToken from getSessionToken>",
  "merchantId":"<your merchantId>",
  "merchantSiteId":"<your merchantSiteId>",
  "clientRequestId":"<unique request ID in merchant system>",
  "amount":"200",
  "currency":"EUR",
  "userTokenId":"<a user identifier>",
  "clientUniqueId":"<unique transaction ID in merchant system>",
  "paymentOption":{
    "alternativePaymentMethod":{
      "paymentMethod":"apmgw_OKTO_CASH"
    }
  },
  "billingAddress":{
    "country":"IT",
    "email":"anthony.rossi@email.com"
  },
  "deviceDetails":{
    "ipAddress":"127.0.0.1"
  },
  "userDetails":{
    "country":"US"
  },
  "timeStamp":"<YYYYMMDDHHmmss>",
  "checksum":"<calculated checksum>"
}

function main() {
   sfc.createPayment({
    sessionToken: sessionData.sessionToken,         		
     useDCC: document.getElementById('dccCheckbox').checked == true ? true : false,
     paymentOption : {        
   //	 	userPaymentOptionId: document.getElementById('UPOID').value,	
        alternativePaymentMethod: {
            paymentMethod: "apmgw_OKTO_CASH",
             // AccountNumber: document.getElementById("AccountNumber").value,
             // RoutingNumber: document.getElementById("RoutingNumber").value
            
        }},
   billingAddress: {
        country: "IT",
        email:"anthony.rossi@email.com",
    },
    deviceDetails  : {
        ipAddress  : "127.0.0.1"
    },
    userDetails  : {
        country  : "US"
    },
}, function(res) {
  console.log(res);
  });
}

for REST API
{
  "sessionToken":"<sessionToken from getSessionToken>",
  "merchantId":"<your merchantId>",
  "merchantSiteId":"<your merchantSiteId>",
  "clientRequestId":"<unique request ID in merchant system>",
  "amount":"200",
  "currency":"EUR",
  "userTokenId":"<a user identifier>",
  "clientUniqueId":"<unique transaction ID in merchant system>",
  "paymentOption":{
    "alternativePaymentMethod":{
      "paymentMethod":"apmgw_OKTO_CASH"
    }
  },
  "billingAddress":{
    "country":"IT",
    "email":"anthony.rossi@email.com"
  },
  "deviceDetails":{
    "ipAddress":"127.0.0.1"
  },
  "userDetails":{
    "country":"US"
  },
  "timeStamp":"<YYYYMMDDHHmmss>",
  "checksum":"<calculated checksum>"
}

for Web SDK
function main() {
   sfc.createPayment({
    sessionToken: sessionData.sessionToken,         		
     useDCC: document.getElementById('dccCheckbox').checked == true ? true : false,
     paymentOption : {        
   //	 	userPaymentOptionId: document.getElementById('UPOID').value,	
        alternativePaymentMethod: {
            paymentMethod: "apmgw_OKTO_CASH",
             // AccountNumber: document.getElementById("AccountNumber").value,
             // RoutingNumber: document.getElementById("RoutingNumber").value
            
        }},
   billingAddress: {
        country: "IT",
        email:"anthony.rossi@email.com",
    },
    deviceDetails  : {
        ipAddress  : "127.0.0.1"
    },
    userDetails  : {
        country  : "US"
    },
}, function(res) {
  console.log(res);
  });
}

For this APM, the following parameters are mandatory:

  • userTokenId
  • amount
  • currency
  • paymentOption.alternativePaymentMethod block containing:
    • paymentMethod: "apmgw_OKTO_CASH"
  • deviceDetails block containing: ipAddress
  • billingAddress block containing: country, email
  • userDetails block containing: country

User Experience

The design and options of the payment page varies depending on the location where the  payment is being made.

  1. From “Other Payment Methods, select “OKTO Cash”.
  2. Agree to the Privacy Policy.
  3. Enter the amount (Greece and Cyprus) or select the pre-defined amount (Italy and Romania) to be deposited.
    The user is redirected to a page with a barcode or QR code (Greece and Cyprus) or barcode (Italy and Romania).
    Text, letter Description automatically generated
  4. Click the link to locate the nearest POS where the payment can be made.
    Background pattern Description automatically generated with medium confidence
  5. The user goes the nearest POS location and presents the pay code.
  6. The store merchant scans (or enters) the pay code.
  7. After receiving the money from the user, the store merchant executes a deposit and the player’s Okto account is instantly credited with the amount.

Testing

The merchant should contact Nuvei to complete the deposit testing.

2022 Nuvei. All rights reserved.