MOTO is for transactions initiated by phone/email. These bypass 3DS/PSD2 and are less secure; PCI DSS compliance is mandatory for callers.
---
POST /{customerID}/createTokenPOST /{customerID}/payPOST /{customerID}/reversalNote: A JWT token is required to run these examples.
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);
});
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));
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
postDatahelper code.