Mail or Telephone Order (MOTO) Usage

MOTO is for transactions initiated by phone/email. These bypass 3DS/PSD2 and are less secure; PCI DSS compliance is mandatory for callers.


Flow Overview

moto sequences ---

API Calls Used

  • POST /{customerID}/createToken
  • POST /{customerID}/pay
  • POST /{customerID}/reversal

Examples

Note: A JWT token is required to run these examples.

1. Create Token

let token = null;
const url = "https://{baseUrl}/V2/{customerID}/createToken";
let msg = {
  "cardNo": "4242424242424242",
  "valid": "2026-03-30",
  "cvc": "123",
  "hotelID": "1",
  "hotelIDType": "SIHOT.PMS",
  "user": "MOTOUSER",
  "datetime": "2025-06-01T10:00",
  "cardText": "John Doe",
  "serviceProvider": "{PaymentServiceProvider-Reference}"
};
postData(url, msg, jwt).then(e => {
    token = e.tokenNo;
    console.log(e);
});

2. Payment

const url = "https://{baseUrl}/V2/{customerID}/pay";
let msg = {
  "tokenNo": token,
  "amount": "2000",
  "currency": "EUR",
  "hotelID": "1",
  "hotelIDType": "SIHOT.PMS",
  "user": "MOTOUSER",
  "datetime": "2025-06-01T10:05",
  "text": "Payment for Reservation",
  "serviceProvider": "{PaymentServiceProvider-Reference}"
};
postData(url, msg, jwt).then(e => console.log(e));

3. Reversal (Refund)

const url = "https://{baseUrl}/V2/{customerID}/reversal";
let msg = {
  "transactionID": "lastTransactionID",
  "hotelID": "1",
  "hotelIDType": "SIHOT.PMS",
  "user": "MOTOUSER",
  "datetime": "2025-06-01T10:10",
  "currency": "EUR",
  "amount": "2000",
  "serviceProvider": "{PaymentServiceProvider-Reference}"
};
postData(url, msg, jwt).then(e => console.log(e));

See Helper Functions for the postData helper code.