Skin localisation

All text within Hosted Cashier is by default available in 29 different languages, ISO-639-1 codes en, bg, cs, cy, da, de, el, es, et, fi, fr, hr, hu, in_ID, it, ja, lt, nl, no, pl, pt, pt_BR, ro, ru, sk, sl, sv, th, tr, zh_CN, zh_TW. You can control which locale is used in the hosted initialisation request (see Hosted payments API). When determining what locale to use when generating HTML, Hosted Cashier uses the priority order

  1. Locale in hosted initialisation request
  2. Locale requested by the user’s browser
  3. Application default (en)

The skin can change any text for any locale by providing one or more messages files. Each file sets what text is to be shown on the page for a defined set of keys. The file(s) go in a ‘locale’ folder at the top of the skin zip and must be named messages_<locale>.properties to specify the properties for a given locale. To change the messages for the default locale name the file messages.properties. Messages from the default locale are used when there is no locale specific message.

So, for example, to change the ‘pay now’ button to ‘continue’ the messages file could contain the following. The line beginning ‘#’ is a comment.

messages.properties

# Custom text for payment button
payment.pay.button = Continue

And for German it could be:

messages_de.properties

payment.pay.button = Fortsetzen

When a key is not in a messages file then other files are checked using the following order or precedence:

  1. Skin file for the specified locale
  2. Skin default file
  3. Pay360 file for the specified locale
  4. Pay360 default file

What that means, in the above example, is that payment.pay.button = Continue will be used for all locales where the skin doesn’t provide a locale specific translation. So if the skin doesn’t provide a messages_fr.properties, then the value ‘Continue’ will be used for the pay button, and not the ‘Payer’ defined in the Pay360 French messages file. Should you wish to use the Pay360 messages as the fall back, and only change the button for English, then the skin should provide messages_en.properties instead of messages.properties.

HTML

The values for the message keys can contain HTML, however they should not contain any javascript. For those labels that are used in attributes in the page, such as buttons and placeholders, HTML will not work.

List of Message Keys

Message Key Description Default Value Parameters
Page titles

These are the titles in the page metadata.

payment.title.register-card The page for paying with no saved cards Register Card
payment.title.card-list-selection The page for paying when the user has at least one saved card. Card List Selection
payout.title.card-list-selection The page for making a payout. Card List Selection
payment.title.3d-secure The page the user is taken to before being redirected to 3D Secure. 3D Secure
payment.title.top-redirect The page the user is taken to before redirected when escaping a frame, such as to PayPal Top Redirect
manage.title.manage-cards The manage cards page Manage Cards
Payment page

Text on pages for performing a payment.

payment.card.pan.label Label for the card number field. Card Number
payment.card.pan.placeholder Placeholder for the card number field.
payment.card.cardholder-name.label Label for the card holder name field. Cardholder Name
payment.card.cardholder-name.placeholder Placeholder for the card holder name field.
payment.card.nickname.label Label for the card nickname field. Card Nickname
payment.card.nickname.placeholder Placeholder for the card nickname field.
payment.card.issue-number.label Label for the issue number field. Issue Number (if applicable)
payment.card.issue-number.placeholder Placeholder for the issue number field.
payment.card.csc.label Label for the security code field. CSC Number
payment.card.csc.placeholder Placeholder for the security code field.
payment.card.billing-address-line1.label Label for the address line 1 field. Address Line 1
payment.card.billing-address-line1.placeholder Placeholder for the address line 1 field.
payment.card.billing-address-line2.label Label for the address line 2 field. Address Line 2
payment.card.billing-address-line2.placeholder Placeholder for the address line 2 field.
payment.card.billing-address-line3.label Label for the address line 3 field. Address Line 3
payment.card.billing-address-line3.placeholder Placeholder for the address line 3 field.
payment.card.billing-address-line4.label Label for the address line 4 field. Address Line 4
payment.card.billing-address-line4.placeholder Placeholder for the address line 4 field.
payment.card.billing-address-city.label Label for the city field. City
payment.card.billing-address-city.placeholder Placeholder for the city field.
payment.card.billing-address-region.label Label for the region field. Region
payment.card.billing-address-region.placeholder Placeholder for the city field.
payment.card.billing-address-postcode.label Label for the postcode field. Post Code
payment.card.billing-address-postcode.placeholder Placeholder for the postcode field.
payment.card.billing-address-country.label Label for the country field Country
payment.card.billing-address-country.placeholder Placeholder for the country field. — select a country —
payment.card.valid-from.label Label for the valid from field Valid From (if applicable)
payment.card.valid-from.month.placeholder Placeholder for the valid from month field. mm
payment.card.valid-from.year.placeholder Placeholder for the valid from year field. yy
payment.card.expiry.label Label for the expiry field. Expires
payment.card.expiry.month.placeholder Placeholder for the expiry month field. mm
payment.card.expiry.year.placeholder Placeholder for the expiry year field. yy
payment.amount.freeform.label Label for the amount field when it is editable. Amount ({0}) Currency symbol
payment.amount.freeform.placeholder Placeholder for the amount field when it is editable.
payment.amount.fixed.label Label for the amount field when it is fixed. Amount
payment.amount.range.label Label for the amount field when it is a range. Amount ({0}) Currency symbol
payment.amount.range.placeholder Placeholder for the amount field when it is a range.
payment.amount.choice.label Label for the amount field when it is a choice. Amount ({0}) Currency symbol
payment.amount.suggested.label Label for the amount field when it is range input with a suggested value. Amount ({0}) Currency symbol
payment.amount.min-max.label Amount help text when there is a range. {0} minimum, {1} maximum Minimum amount, Maximum amount
payment.amount.min.label Amount help text when there is a minimum but no maximum. {0} minimum Minimum amount
payment.amount.max.label Amount help text when there is a maximum but no minimum. {0} maximum Maximum amount
payment.card.update.label The link to update a card. Update
payment.add-card.link Link to add a new card. Add New Card
payment.card.save.label Label for the card save checkbox. Save My Card
payment.card.default.label Label for the save card as default checkbox. Set as My Default Card
payment.pay.button Text for the pay button Pay Now
payment.cancel.link Label for the link to abandone the hosted session and return to the merchant website. Cancel
payment.back.link Label to go back from the new card payment page to the card selection page. Back
payment.card.change.label Link to add a new card replacing the existing one. This occurs in place of the add a card link when the maximum number of cards per customer is one. Change Your Card
payment.method.paypal.label The label on the PayPal payment method selector. Pay with PayPal
payment.method.card.label The label on the Card payment method selector. Only on the new card payment page when there are non-card payment methods also available. Pay with Card
Payout page
payout.card.cardholder-name.label Label for the card number field. Cardholder Name
payout.amount.freeform.label Label for the amount field when it is editable. Amount ({0}) Currency symbol
payment.amount.freeform.placeholder Placeholder for the amount field when it is editable.
payout.amount.fixed.label Label for the amount field when it is fixed. Amount
payout.amount.range.label Label for the amount field when it is a range. Amount ({0}) Currency symbol
payment.amount.range.placeholder Placeholder for the amount field when it is a range.
payout.amount.choice.label Label for the amount field when it is a choice. Amount ({0}) Currency symbol
payout.amount.suggested.label Label for the amount field when it is range input with a suggested value. Amount ({0}) Currency symbol
payout.amount.min-max.label Amount help text when there is a range. {0} minimum, {1} maximum Minimum amount, Maximum amount
payout.amount.min.label Amount help text when there is a minimum but no maximum. {0} minimum Minimum amount
payout.amount.max.label Amount help text when there is a maximum but no minimum. {0} maximum Maximum amount
payout.pay.button Text for the pay button Pay Now
payout.cancel.link Label for the link to abandone the hosted session and return to the merchant website. Cancel
Manage cards page
manage.card.default.label Label for the save card as default checkbox. Set as My Default Card
manage.card.cardholder-name.label Label for the card holder name field. Cardholder Name
manage.card.cardholder-name.placeholder Placeholder for the card holder name field.
manage.card.nickname.label Label for the card nickname field. Card Nickname
manage.card.nickname.placeholder Placeholder for the card nickname field.
manage.card.valid-from.label Label for the valid from field. Valid From (if applicable)
manage.card.valid-from.month.placeholder Placeholder for the valid from month field. mm
manage.card.valid-from.year.placeholder Placeholder for the valid from year field. yy
manage.card.expiry.label Label for the expiry field. Expires
manage.card.expiry.month.placeholder Placeholder for the expiry month field. mm
manage.card.expiry.year.placeholder Placeholder for the expiry year field. yy
manage.card.issue-number.label Label for the issue number field. Issue Number (if applicable)
manage.card.issue-number.placeholder Placeholder for the issue number field.
manage.card.billing-address-line1.label Label for the address line 1 field. Address Line 1
manage.card.billing-address-line1.placeholder Placeholder for the address line 1 field.
manage.card.billing-address-line2.label Label for the address line 2 field. Address Line 2
manage.card.billing-address-line2.placeholder Placeholder for the address line 2 field.
manage.card.billing-address-line3.label Label for the address line 3 field. Address Line 3
manage.card.billing-address-line3.placeholder Placeholder for the address line 3 field.
manage.card.billing-address-line4.label Label for the address line 4 field. Address Line 4
manage.card.billing-address-line4.placeholder Placeholder for the address line 4 field.
manage.card.billing-address-city.label Label for the city field. City
manage.card.billing-address-city.placeholder Placeholder for the city field.
manage.card.billing-address-region.label Label for the region field. Region
manage.card.billing-address-region.placeholder Placeholder for the region field.
manage.card.billing-address-postcode.label Label for the postcode field. Post Code
manage.card.billing-address-postcode.placeholder Placeholder for the postcode field.
manage.card.billing-address-country.label Label for the country field. Country
manage.back.link Label to go back to the card selection page. continue with payment
manage.cancel.link Label for the link to abandon the hosted session and return to the merchant website. Only on the page for a card management session. Cancel
manage.delete.button Button to delete the selected card. Delete
manage.delete.disabled.tooltip Tooltip on the delete button when a card cannot be deleted. Card deletion unavailable
manage.update.button Button to save changes to the selected card. Update
manage.card-updated.message Massage shown at the top of the page after changes have been saved. Card Successfully Updated
Validation messages

These messages are shown after form fields when the content has failed validation.

validation.transaction.amount The amount value is not valid. Please enter a valid amount
validation.transaction.amount.csc The secuity code is not valid. Please enter the security code
validation.transaction.amount.invalidnumber The amount contains invalid characters. The amount you entered must be numeric
validation.transaction.amount.option If the amount is not one of the required options, when there is a specified list. This shoudl not happen unless the form control is overridden. Value must be one of given options
validation.transaction.amount.other The amount given is negative The amount you entered must be greater than zero
validation.transaction.amount.range The amount is outside the required range. Value must be in range
validation.transaction.card.selection A unavailable card has been selected, this should not happen unless the form control is overridden. Invalid card selection
validation.transaction.card.billingAddress A billing address field is too long. Max number of permitted characters is 255
validation.transaction.pan The card number is not valid. Please enter a valid card number
validation.transaction.amount.invalidcsc The security code is not valid. Security code must be 3 or 4 digits long
validation.transaction.issueNumber The issue number is not valid. Issue number must be between 0 and 99
validation.transaction.validDate.format The valid from date is not valid. Please enter a valid start date
validation.transaction.validDate.future The valid from date is in the future. Valid From date must be set in the past
validation.transaction.expiryDate.format The expiry date is not valid. Please enter a valid expiry date
validation.transaction.cardHolder The cardholder name is not provided. Please enter the name as shown on the card
validation.transaction.card.nickname.long The card nickname is too long. Please enter a maximum of 20 characters
validation.transaction.card.nickname.characters The card nickname contains invalid characters Please check that the nickname only contains either letters, numbers, spaces, commas, hyphens or apostrophes
Redirect messages

Text shown to the user while awaiting a redirect.

redirect.3ds.message The only text on the page when redirecting for 3D Secure. Requesting authorisation, please wait…
redirect.message The only text on the page when redirecting and escaping the frame. Redirecting… If you are not redirected shortly, please follow <a href=”{0}” id=”redirectLink” target=”_top”>this link</a> Destination URL.
Error messages

Text shown when something has gone wrong.

error.cannot-process-transaction An error occurred processing a transaction. This is shown on the payment form allowing the customer to retry. <p>An unexpected error occurred. Your payment was not processed. Please try again later.</p>
error.max-cards-limit-reached The user has tried to register a card when having reached the configured limit. You’ve reached the maximum number of cards allowed.
error.cannot-register-card If the payment has been rejected due to merchant customer and card restrictions. E.g. Maximum number of registrations in a 24 hour period, no duplicate registrations allowed. <p>Unfortunately theft and misuse of payment methods is common today. We have implemented various measures to ensure the safety of your money. One of these measures is to return any funds deposited back to the original payment method they came from, wherever possible. This complies with money laundering & fraud prevention regulations. For this reason you may not be able to change your card before having made a withdrawal.</p><p>When you have withdrawn funds from your account, please return to the Change Card option, whereupon you will be able to update your card.</p><p>If you encounter any problems, please contact customer services for assistance.</p>
error.cannot-register-card.limit.net-deposit-value If a card registration is prevented due to the net deposit value restriction. <p>Unfortunately theft and misuse of payment methods is common today. We have implemented various measures to ensure the safety of your money. One of these measures is to return any funds deposited back to the original payment method they came from, wherever possible. This complies with money laundering & fraud prevention regulations. For this reason you may not be able to change your card before having made a withdrawal.</p><p>When you have withdrawn funds from your account, please return to the Change Card option, whereupon you will be able to update your card.</p><p>If you encounter any problems, please contact customer services for assistance.</p>
error.cannot-register-card.limit.daily-registrations If a card registration is prevented due to the daily registrations restriction. <p>Unfortunately theft and misuse of payment methods is common today. We have implemented various measures to ensure the safety of your money. One of these measures is to return any funds deposited back to the original payment method they came from, wherever possible. This complies with money laundering & fraud prevention regulations. For this reason you may not be able to change your card before having made a withdrawal.</p><p>When you have withdrawn funds from your account, please return to the Change Card option, whereupon you will be able to update your card.</p><p>If you encounter any problems, please contact customer services for assistance.</p>
error.cannot-register-card.limit.address-match-only If a card registration is prevented due to the address match only count restriction. <p>Unfortunately theft and misuse of payment methods is common today. We have implemented various measures to ensure the safety of your money. One of these measures is to return any funds deposited back to the original payment method they came from, wherever possible. This complies with money laundering & fraud prevention regulations. For this reason you may not be able to change your card before having made a withdrawal.</p><p>When you have withdrawn funds from your account, please return to the Change Card option, whereupon you will be able to update your card.</p><p>If you encounter any problems, please contact customer services for assistance.</p>
error.cannot-register-card.limit.no-data-match If a card registration is prevented due to the no data match count restriction. <p>Unfortunately theft and misuse of payment methods is common today. We have implemented various measures to ensure the safety of your money. One of these measures is to return any funds deposited back to the original payment method they came from, wherever possible. This complies with money laundering & fraud prevention regulations. For this reason you may not be able to change your card before having made a withdrawal.</p><p>When you have withdrawn funds from your account, please return to the Change Card option, whereupon you will be able to update your card.</p><p>If you encounter any problems, please contact customer services for assistance.</p>
error.cannot-register-card.return.link Link from the cannot register card page back to the payment page. Go Back
error.generic.heading Heading on the generic error page Error
error.generic.message-request An error that could not be handled has occurred. This is shown on its own page. An Error Occurred Processing Your Request
Error page titles

Title for when an error requires its own page, very rare unless the user is bypassing form controls by editing HTML, or there is a major server side malfunction.

error.title.cannot-add-new-card Page telling the user they cannot add the given card. Cannot Register New Card
error.title.cannot-delete-card Page telling the user they cannot delete the specified card. Cannot Delete Card
error.title.cannot-register-card Page telling the user they cannot register the given card. Cannot Register Card
error.title.generic Title for an unrecoverable error page. Generic Error
EmailPay messages
payment.title.result Title for the transaction result page. Result
info.email-pay.used.message Text when the link is not longer usable. Unfortunately this link is no longer accessible, as a previous payment has already been successfully authorised. Please contact the merchant should you want to make a new payment.
info.email-pay.expired.message Text when the link has expired. Unfortunately the page you’re trying to access cannot be found. This is likely because the link has either expired or has been entered incorrectly.
info.email-pay.cancelled.message Text when the link has been cancelled. This particular link has now been cancelled by the merchant. Please contact the merchant for further details or to request a new payment link.
info.email-pay.pending.message Text when the link being visited is already in use. It would appear that another transaction is currently being processed using this link. To continue, please shut down all open payment links and try again.
info.email-pay.error.message Text for a temporary error when visiting a link and the user should retry. An error occurred while attempting to load this page. Please try again later.
info.email-pay.not-found.message Text when the link id given does not exist. Unfortunately the page you’re trying to access cannot be found. This is likely because the link has either expired or has been entered incorrectly.
result.not-submitted.message Text shown when the user tries to pay but the link has been cancelled by the merchant. Therefore it was cancelled while the user was on the payment page. The payment was not submitted for authorisation and has now been cancelled
result.successful.message Text when the transaction was successful. Your payment has been successful
result.not-successful.message Text when the transaction did not succeed. Unfortunately on this occasion your payment was unsuccessful and the transaction did not go through. Please try another card or payment type and contact your card issuer for further details
error.title.email-pay Title for an unrecoverable error page when using an EmailPay link. EmailPay Errors