Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The settings here permit for a wide variety of options, and you can customize your SMS messages, screen messages, and receipts in ways that display your place as a professional in the market.

...

Table of Contents
minLevel21
maxLevel2
outlinefalse

...

Info

Different BATM versions will display different settings.

...

Each field is a type, represented by the prefix:

"text" may be printed on tickets, used onscreen, or sent in SMS messages.

"bmp" may only be used on printed tickets.

"qr(variablename)" may be used to create a QR code from any variable (PRINTED ONLY) - e.g. 

This is a wallet QR code: {qr(text.crypto.destination)}

The following HTML formatting fields may be used in certain strings:

  • <b> begin bold type

  • </b> end bold type

  • <i> begin italics

  • </i> end italics

  • <br/> break (creates a new line after this)

  • You may NOT use "<" or ">" characters in your text (except as shown above)

Info

The "strings" are just plain text formatted with HTML fields and graphics.

Example:

<b>This is bold text</b> and <i>this is italicized text.</i>

will be displayed as:

This is bold text and this is italicized text.

Warning

Fonts cannot currently be changed or resized.

Panel
panelIconIdatlassian-check_mark
panelIcon:check_mark:
bgColor#E3FCEF

Common (to all BATM versions)

support_phone: the phone number displayed on your BATM screen for support.

(Empty - no default set)

registration_delay: the time (in minutes) of the expected delay for identity registration. This is displayed on the BATM screen for your customer after they choose to register.

Code Block
15

sms_buy_crypto_ticket_template:  this SMS message is sent to customers after a BUY when using the optional SMS delivery.

Code Block
BUY CRYPTO RECEIPT TX ID: {text.transaction.id} Time: {text.time} Price: {text.fiat.amount} {text.fiat.currency} Fixed Fee: {text.fiat.fee.fixed} {text.fiat.currency} Crypto: {text.crypto.amount} {text.crypto.currency} Destination: {text.crypto.destination}

email_buy_crypto_ticket_template: this email message is sent to customers after a BUY when using the optional email delivery. Supports basic HTML tags.

Code Block
{bmp.logo}<b>BUY CRYPTO RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Fixed Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Crypto:</b> {text.crypto.amount} {text.crypto.currency}<br/><b>Rate:</b> 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination:</b> {text.crypto.destination}<br/><br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/>

terms_and_conditions: pre-transaction terms & conditions page shown at the BATM.

  • Supports basic HTML tags.

  • Creates a button on the BATM screen (when non-empty).

  • Add a "!" to the beginning of the string to force the customer to accept the terms & conditions prior to the transaction (“I AGREE” / ”CANCEL”).

  • Use !X! (e.g. !10!) - to wait X seconds before the Agree button is activated and can be clicked.

(Empty - no default set)

scam_disclaimer: see: Scam Disclaimer

(Empty - no default set)

alternative_welcome_message: replaces the default: "Welcome to Bitcoin ATM".

(Empty - no default set)

alternative_buy_message: replaces the default: "Buy Bitcoins" on the main screen

(Empty - no default set)

alternative_screensaver_message: replaces the default: "BUY BITCOINS!" on the screensaver

(Empty - no default set)

special_configuration: used ONLY under direction of development / support. See chart (below).

(Empty - no default set)

  • Separate multiple fields using a space (" ").

  • The chart is at the bottom of this article.

buy_transaction_failed_additional_message: these further instructions are displayed on the BATM screen to a customer in the event a BUY transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no default set)

sms_otp: the message text when delivering one time SMS passwords to customers.

(Empty - no default set)

  • Password field is represented within the text by: {text.otp}

  • Example: “Here is your GB OT passcode:”

custom_buy_limit_title: the BUY LIMIT title used during the chooseLimitScreen BUY flow.

(Empty - no default set)

...

style

...

NOTE:

  • Some of these fields may not appear in older software versions.

  • Update your Terminal firmware to the latest version if you experience any trouble!

disc
typelist
printablefalse

...

Alphabetical Listing

Expand by clicking the “>” below.

Expand
titleClick here to expand the list.

alternative_buy_message

alternative_screensaver_message

alternative_welcome_message

buy_anonymous_limit_alternative_message

buy_prepare_transaction_failed_blacklisted_message

buy_prepare_transaction_failed_high_risk_scoring_message

buy_registered_limit_alternative_message

buy_transaction_failed_additional_message

buy_transaction_success_additional_message

buy_unregistered_limit_alternative_message

collect_phone_voicecall_delay

custom_buy_fixed_fee_description

custom_buy_limit_description

custom_buy_limit_title

custom_pep_question

custom_sell_limit_description

custom_sell_limit_instruction

custom_sell_limit_title

customer_unregistered

email_buy_crypto_ticket_template

email_cashback_ticket_template

exceeded_cash_limit_per_12_months

exceeded_cash_limit_per_3_months

exceeded_cash_limit_per_calendar_year

exceeded_cash_limit_per_calendar_year_quarter

exceeded_cash_limit_per_day

exceeded_cash_limit_per_day_and_crypto_address

exceeded_cash_limit_per_hour

exceeded_cash_limit_per_month

exceeded_cash_limit_per_transaction

exceeded_cash_limit_per_week

exceeded_total_cash_limit_per_crypto_address

exceeded_total_cash_limit_per_identity

exceeded_total_terminal_cash_limit_for_buy

exceeded_total_terminal_cash_limit_for_sell

marketing_opt_in_agreement_text

marketing_opt_in_agreement_title

minimum_age_declined

pep_rejected_info

printer_buy_crypto_lnurl_ticket_template

printer_buy_crypto_ticket_template

printer_buy_crypto_ticket_transaction_failed_template

printer_cash_collection_ticket_template

printer_paper_wallet_template

printer_sell_crypto_ticket_template

printer_withdrawal_ticket_template

privacy_policy

registration_delay

registration_submitted_successfully_additional_message

registration_submitted_successfully_custom_message

registrations_disabled

required_disclosures_text

scam_disclaimer

sell_anonymous_limit_alternative_message

sell_arriving

sell_invalid_payment

sell_maximum_cash_reached

sell_registered_limit_alternative_message

sell_success_timeout

sell_timed_out

sell_transaction_failed_additional_message

sell_unregistered_limit_alternative_message

sell_withdrawal_ready

sms_buy_crypto_ticket_template

sms_identity_verification_caution

sms_identity_verification_failed

sms_identity_verification_link

sms_identity_verification_registration_success

sms_identity_verification_success

sms_otp

sms_sell_crypto_ticket_template

special_configuration

support_phone

terms_and_conditions

verify_wallet_ownership_no_button

verify_wallet_ownership_no_flow_confirm_button

verify_wallet_ownership_no_flow_message

verify_wallet_ownership_title_question

verify_wallet_ownership_yes_button

withdraw_transaction_failed_additional_message

withdraw_transaction_failed_not_enough_cash_message

...

Field types are represented by these prefixes:

"text" may be printed on tickets, used onscreen, or sent in SMS messages.

"bmp" may only be used on printed tickets.

"qr(variablename)" may be used to create a QR code from any variable (PRINTED ONLY) - e.g. 

This is a wallet QR code: {qr(text.crypto.destination)}

The following HTML formatting fields may be used in certain strings:

  • <b> begin bold type

  • </b> end bold type

  • <i> begin italics

  • </i> end italics

  • <br/> break (creates a new line after this)

  • You may NOT use "<" or ">" characters in your text (except as shown above)

Info

The "strings" are just plain text formatted with HTML fields and graphics.

  • Fonts cannot currently be changed or resized.

Example:

<b>This is bold text</b> and <i>this is italicized text.</i>

will be displayed as:

This is bold text and this is italicized text.

...

CUSTOM STRINGS (as seen in CAS Terminal details)

Unsorted, this list is presented in the same order as seen on the CAS Terminal web page.

  • Scroll towards the top to expand a linked list in alphabetical order.

Note

NOTE ABOUT CUSTOM STRINGS:

  • Some of these fields may not appear in older software versions.

  • Different BATM versions will display different settings.

    • Update your Terminal firmware to the latest version if you experience any trouble!

...

support_phone

The phone number displayed on your BATM screen for support.

(Empty - no default set)

anonymous_limit_alternative_message: displays a custom Anonymous tier message on the Choose Limit Screen button.

(Empty - no default set)

unregistered_limit_alternative_message: displays a custom Not Registered tier message on the Choose Limit Screen button.

(Empty - no default set)

registered_limit_alternative_message: displays a custom Registered tier message on the Choose Limit Screen button.

(Empty - no default set)

pep_rejected_info: displayed to customers that are rejected due to PEP restrictions.

Code Block
Please contact our support team {support_phone}.

registrations_disabled: displayed when new registrations are not being accepted, or are being pre-processed by third-parties (and registration is no longer performed at the BATM).

Code Block
We are sorry, to register please visit (not set). 

custom_registration_title: displays a custom title for the “Are you registered?” screen.

(Empty - no default set)

customer_unregistered: This SMS message will be sent to the Identity because their ID document expired.

Code Block
We are sorry, you were unregistered due to the expiration of your ID document.

custom_pep_question: this may be customized to comply with jurisdictional requirements.

(Empty - no default set)

registration_submitted_successfully_additional_message: shown to the customer after successfully uploading the required registration documents.

(Empty - no default set)

marketing_opt_in_agreement_text: this window (when displayed) shows after the QR has been presented by an UNREGISTERED or REGISTERED during a transaction. An “opt-in” is required for marketing in various regions.

(Empty - no default set)

For this message to be displayed:

  1. this custom string must contain text,

  2. the customer’s Identity must have a cellphone number,

  3. the customer must not have previously opted-in to the marketing agreement.

...

Code Block
MARKETING AGREEMENT

registration_submitted_successfully_custom_message: this additional message is displayed onscreen after the AML-triggered registrationSubmitedSuccessfulScreen

Code Block
Registration information was submitted successfully.<br/>We will inform you on {text.contact.info} when your account is activated.

required_disclosures_text: displayed on screen after the “Cash Limit Screen” (if non-empty).

  • Permitted variables: {text.fee.fixed}, {text.rate}, {text.rate.raw}

(Empty - no default set)

collect_phone_voicecall_delay: when your customer chooses to have a voice call instead of an SMS, delay the call for “X” minutes.

(Empty - no default set)

Info

The following custom messages may instead be presented to your customer when they exceed their respective limits:

  • exceeded_cash_limit_per_transaction

  • exceeded_cash_limit_per_hour

  • exceeded_cash_limit_per_day

  • exceeded_cash_limit_per_week

  • exceeded_cash_limit_per_month

  • exceeded_cash_limit_per_3_months

  • exceeded_cash_limit_per_12_months

  • exceeded_cash_limit_per_calendar_year_quarter

  • exceeded_cash_limit_per_calendar_year

  • exceeded_cash_limit_per_day_and_crypto_address

  • exceeded_total_cash_limit_per_crypto_address

  • exceeded_total_cash_limit_per_identity

  • exceeded_total_terminal_cash_limit_for_buy

  • exceeded_total_terminal_cash_limit_for_sell

Panel
panelIconId1f5a8
panelIcon:printer:
panelIconText🖨
bgColor#E3FCEF

Printed ticket strings

printer_paper_wallet_template: this is printed when a paper wallet is chosen.

Code Block
<b>PAPER WALLET - {text.cryptoCurrency}</b><br/><br/><br/><b>Spend</b><br/>{text.cryptoCurrency} - private key - keep this QR code private!{bmp.privatekey}{text.privatekey}{bmp.logo}<b>Load</b><br/>{text.cryptoCurrency} - public key<br/>{text.address}{bmp.address}<br/>

printer_buy_crypto_ticket_template: the paper BUY receipt contents.

...

registration_delay

The time (in minutes) of the expected delay for identity registration. This is displayed on the BATM screen for your customer after they choose to register.

Code Block
15

sell_success_timeout

After these # minutes, the “sell success” screen on the BATM will return to the main/normal screen.

Code Block
300

printer_paper_wallet_template

This is printed when a paper wallet is chosen.

Code Block
<b>PAPER WALLET - {text.cryptoCurrency}</b><br/><br/><br/><b>Spend</b><br/>{text.cryptoCurrency} - private key - keep this QR code private!{bmp.privatekey}{text.privatekey}{bmp.logo}<b>Load</b><br/>{text.cryptoCurrency} - public key<br/>{text.address}{bmp.address}<br/>

printer_buy_crypto_ticket_template

The paper BUY receipt contents are set here.

Code Block
{bmp.logo}<b>BUY CRYPTO RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Fixed Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Crypto:</b> {text.crypto.amount} {text.crypto.currency}<br/><b>Rate:</b> 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination:</b> {text.crypto.destination}<br/><br/>Keep this receipt!<br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/>

printer_buy_crypto_lnurl_ticket_template

When a Lightning BUY is prepared, this ticket will be printed.

Code Block
{bmp.logo}<b>BUY CRYPTO RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Additional Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Percentage Fee:</b> {text.fee.percentage}%<br/><b>Crypto:</b> {text.crypto.amount} {text.crypto.currency}<br/><b>Rate:</b> 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><br/>{bmp.lnurl}<br/><br/>Use LNURL wallet to withdraw<br/><br/>

sms_buy_crypto_ticket_template

This SMS message is sent to customers after a BUY when using the optional SMS delivery.

Code Block
BUY CRYPTO RECEIPT TX ID: {text.transaction.id} Time: {text.time} Price: {text.fiat.amount} {text.fiat.currency} Fixed Fee: {text.fiat.fee.fixed} {text.fiat.currency} Crypto: {text.crypto.amount} {text.crypto.currency} Destination: {text.crypto.destination}

email_buy_crypto_ticket_template

This email message is sent to customers after a BUY when using the optional email delivery. Supports basic HTML tags.

Code Block
{bmp.logo}<b>BUY CRYPTO RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Fixed Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Crypto:</b> {text.crypto.amount} {text.crypto.currency}<br/><b>Rate:</b> 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination:</b> {text.crypto.destination}<br/><br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/>

printer_sell_crypto_ticket_template

This paper offer prints after a SELL is negotiated. It displays the QR code and crypto amount the customer is required to send to you to consummate your offer. The ticket is then scanned at the BATM for the customer to withdraw the agreed upon fiat.

Code Block
{bmp.logo}<b>SELL CRYPTO RECEIPT AND REDEEM TICKET</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Fixed Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Destination><b>Crypto:</b> {text.crypto.amount} {text.crypto.destinationcurrency}<br/><br><b>Rate:</>Keepb> this receipt!<br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/>

printer_pos_crypto_ticket_template: printed for the CortexPay POS.

Code Block
{bmp.logo}<b>Order ID:</b> {text.orderid}<br/><b>Total price1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination:</b> {text.totalprice} {text.cashcurrencycrypto.destination}<br/><b>Tip><b>UUID:</b> {text.tip} {text.cashcurrencytransaction.uuid}<br/><b>Amount with tip><br/><b>Operator:</b> {text.amounttip} {text.cashcurrency}<br/><b>Amount to be paid: Name, Address, Phone, etc<br/><br/><b>How to proceed:</b><br/><b>1.Please send exactly </b> {text.amountpaidcrypto.amount} {text.ammountcurrency}<br/><brcrypto.currency} to <br/>{bmptext.crypto.logodestination}<br/><br/><br/><br/>

printer_cash_collection_ticket_template: enables a custom cash collection ticket, as mandated by certain armored car (and other cash pickup) services. This is a subtitle (only).

(Empty - no default set)

Panel
panelIconId1f52c
panelIcon:microscope:
panelIconText🔬
bgColor#E3FCEF

Onfido/Veriff customizations

sms_identity_verification_link: the {link} field is set in your Organization settings.

Code Block
Please use following link to verify your identity. {link}

sms_identity_verification_success:

Code Block
Verification was successful. You should be registered shortly.

sms_identity_verification_registration_success:

Code Block
Congratulations, your registration was successful.

sms_identity_verification_caution:

Code Block
Something went wrong and we have to verify you manually, sorry. It can take some time.

sms_identity_verification_failed:

Code Block
Verification was unsuccessful. Please try again.
Panel
panelIconId1f4e4
panelIcon:outbox_tray:
panelIconText📤
bgColor#E3FCEF

SELL-capable only

printer_sell_crypto_ticket_template: this paper offer prints after a SELL is negotiated. It displays the QR code and crypto amount the customer is required to send to you to consummate your offer. The ticket is then scanned at the BATM for the customer to withdraw the agreed upon fiat.

Code Block
{bmp.logo}<b>SELL CRYPTO RECEIPT AND REDEEM TICKET</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Fixed Fee:</b>><b>before {text.transaction.expirationTimestamp}.</b>{bmp.paymentrequest}<br/><b>2.Wait a few minutes before your payment is confirmed.</b><br/><b>3.On machine choose REDEEM TICKET.</b><br/><b>4.Scan QR code on this ticket.</b><br/><br/><b>DON'T LOSE THIS REDEEM TICKET!!</b><br/><b>TICKET IS NEEDED FOR CASH WITHDRAWAL!!</b><br/>{bmp.logo}<br/>

sms_sell_crypto_ticket_template

This SMS is sent after a SELL is negotiated. It contains the target wallet and crypto amount the customer is required to send to you to consummate your offer.

Code Block
SELL CRYPTO RECEIPT AND REDEEM TICKET {text.transaction.id}. Please send {text.crypto.amount} {text.crypto.currency} to {text.crypto.destination} before {text.transaction.expirationTimestamp}. Wait until your payment is confirmed. On machine choose REDEEM TICKET. Scan the following QR code: https://coin.cz/qrcode.html?qrcodetext={text.paymentrequest} Price: {text.fiat.amount} {text.fiat.currency}, Fee: {text.fee.percentage}% + {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Crypto:</b>, Rate: 1 {text.crypto.amountcurrency} = {text.crypto.currency}<br/><b>Rate:</b> 1 rate} {text.cryptofiat.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination
  • An SMS message cannot contain an image, thus a QR code cannot be directly sent. The URL in this example embeds a QR image (via coin.cz) sendable by SMS.

  • A QR code is required for the customer to present at the BATM for the withdrawal.

email_cashback_ticket_template

This message is sent to a customer to permit a manually-created redemption (REDEEM) transaction. The message includes a REDEEM QR code.

Code Block
{bmp.logo}<b>CASHBACK RECEIPT AND REDEEM TICKET</b><br/><br/><b>TX ID:</b> {text.cryptotransaction.destinationid}<br/><b>UUID><b>Time:</b> {text.transaction.uuidtime}<br/><br/><b>Operator><b>Amount:</b> Name, Address, Phone, etc<br/><br/><b>How{text.fiat.amount} {text.fiat.currency}<br/><br/>{qr(cashback)}<br/>How to proceed:<<br/b><br/><b>1.Please send exactly </b> {text.crypto.amount} {text.crypto.currency} to <br/>{text.crypto.destination}<br/><b>before {text.transaction.expirationTimestamp}.</b>{bmp.paymentrequest}<br/><b>2.Wait a few minutes before your payment is confirmed.</b><br/><b>3.On machine choose REDEEM TICKET.</b><br/><b>4.Scan QR code on this ticket.</b><br/><br/><b>DON'T LOSE THIS REDEEM TICKET!!</b><br/><b>TICKET IS NEEDED FOR CASH WITHDRAWAL!!</b><br/>{bmp.logo}<br/>

sms_sell_crypto_ticket_template: this SMS is sent after a SELL is negotiated. It contains the target wallet and crypto amount the customer is required to send to you to consummate your offer.

Code Block
SELL CRYPTO RECEIPT AND REDEEM TICKET {text.transaction.id}. Please send {text.crypto.amount} {text.crypto.currency} to {text.crypto.destination} before {text.transaction.expirationTimestamp}. Wait until your payment is confirmed. On machine choose REDEEM TICKET. Scan the following QR code: https://coin.cz/qrcode.html?qrcodetext={text.paymentrequest} Price: {text.fiat.amount} {text.fiat.currency}, Fee: {text.fee.percentage}% + {text.fiat.fee.fixed} {text.fiat.currency}, Rate: 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}

sms_cashback_ticket_template: this message is sent to a customer to permit a manually-created redemption (REDEEM) transaction. The message includes a REDEEM QR code.

Code Block
CASHBACK RECEIPT AND REDEEM TICKET "{text.transaction.id}" {text.time} Amount: {text.fiat.amount} {text.fiat.currency} ; QR code available at: {text.qr.code.url}

email_cashback_ticket_template: this message is sent to a customer to permit a manually-created redemption (REDEEM) transaction. The message includes a REDEEM QR code.

Code Block
{bmp.logo}<b>CASHBACK RECEIPT AND REDEEM TICKET</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Amount:</b> {text.fiat.amount} {text.fiat.currency}<br/><br/>{qr(cashback)}<br/>How to proceed:<br/>1. Choose REDEEM TICKET on the ATM.<br/>2. Scan the QR code on this ticket.<br/><br/>DON'T LOSE THIS REDEEM TICKET!!<br/>TICKET IS NEEDED FOR CASH WITHDRAWAL!!<br/>{bmp.logo}<br/>

printer_withdrawal_ticket_template: this paper SELL receipt is printed by the BATM after the fiat has been withdrawn by the customer.

Code Block
{bmp.logo}<b>CASH WITHDRAWAL RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Related TX:</b> {text.transaction.related.id}<br/><b>Time:</b> {text.time}<br/><b>Amount:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>UUID:</b> {text.transaction.uuid}<br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/><br/>{bmp.logo}<br/>

sell_withdrawal_ready: this SMS communicates that the SELL is ready for customer withdrawal.

Code Block
Cash withdrawal {text.transaction.id} is ready.

sell_invalid_payment: this SMS notifies your customer that the wrong amount has been submitted to the wallet specified in printer_sell_crypto_ticket_template.

Code Block
Invalid payment {text.transaction.id} received.

sell_timed_out: this SMS notifies your customer that your SELL offer has expired, and the payment was not received within the required time limit.

Code Block
Sell offer {text.transaction.id} expired. Don't send the payment.

sell_arriving: this SMS notifies your customer that the coin satisfying the SELL terms has been seen on the network, and is waiting for the required confirmations (next: sell_withdrawal_ready).

Code Block
Transaction {text.transaction.id} arriving, thank you. We will inform you when the cash withdrawal is ready.

sell_transaction_failed_additional_message: these further instructions are displayed on the BATM screen to a customer in the event a SELL transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no default set)

withdraw_transaction_failed_not_enough_cash_message: replaces the default “Withdrawal is not possible. Not enough cash in the machine.” message.

(Empty - no default set)

withdraw_transaction_failed_additional_message: these further instructions are displayed on the BATM screen to a customer in the event a REDEEM transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no default set)

custom_sell_limit_title: the SELL LIMIT title shown during the chooseLimitScreen SELL flow.

(Empty - no override set)

custom_sell_limit_instruction: a SELL LIMIT subheading (e.g. “choose X”) shown during the chooseLimitScreen SELL flow.

(Empty - no override set)

custom_sell_limit_description: the SELL LIMIT description shown during the chooseLimitScreen SELL flow.

(Empty - no override set)

required_disclosures_text: pre-transaction disclosure shown at the BATM.

  • Add a "!" to the beginning of the string to force the customer to accept the disclosure prior to the transaction (“I AGREE” / ”CANCEL”).

  • Use !X! (e.g. !10!) - to wait X seconds before the Agree button is activated and can be clicked.

(Empty - no default set)

Field Assignments & Definitions

...

Field

...

Description

...

Applies to:

...

{text.time}

...

Transaction time at location.

...

All

...

{text.transaction.id}

...

The RID of the transaction.

...

All

...

{text.fiat.amount}

...

The fiat amount of this transaction.;

...

All

...

{text.fiat.currency}

...

The fiat (USD/EUR/etc) used.

...

All

...

{text.crypto.amount}

...

The amount of coin involved.

...

All

...

{text.crypto.currency}

...

The type of coin (BTC/LTC/etc).

...

All

...

{text.crypto.destination}

...

The wallet presented during the BUY.

...

BUY

...

{text.fiat.fee.fixed}

...

Any flat fee assessed.

...

All

...

{text.crypto.rate}

...

The calculated rate based on the amount involved, your percentages, and fees.

...

All

...

{text.privatekey}

...

The text version of any private key when a hard-copy is chosen by the customer.

...

BUY

...

{text.transaction.uuid

...

This ID links a WITHDRAW to this SELL.

...

SELL

...

{text.transaction.expirationTimestamp}

...

The expiration datetime of the SELL offer.

...

ALL

...

{text.transaction.related.id}

...

The ID of the associated SELL.

...

WITHDRAW

...

{text.otp}

...

The OTP sent to a Customer.

...

OTP

...

{bmp.logo}

...

Your logo from Sprites (or GB).

...

All

...

{bmp.paymentrequest}

...

The QR-coded SELL offer.

...

SELL

...

{bmp.address}

...

A QR-coded wallet address.

...

BUY

...

{bmp.privatekey}

...

A QR-coded private key.

...

BUY

Permitted Fields

...

Custom String

...

Permitted Fields

...

>1. Choose REDEEM TICKET on the ATM.<br/>2. Scan the QR code on this ticket.<br/><br/>DON'T LOSE THIS REDEEM TICKET!!<br/>TICKET IS NEEDED FOR CASH WITHDRAWAL!!<br/>{bmp.logo}<br/>

printer_withdrawal_ticket_template

This paper SELL receipt is printed by the BATM after the fiat has been withdrawn by the customer.

Code Block
{bmp.logo}<b>CASH WITHDRAWAL RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Related TX:</b> {text.transaction.related.id}<br/><b>Time:</b> {text.time}<br/><b>Amount:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>UUID:</b> {text.transaction.uuid}<br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/><br/>{bmp.logo}<br/>

printer_buy_crypto_ticket_transaction_failed_template

If a BUY transaction fails, the paper receipt contents are set here.

Code Block
{bmp.logo}<b>BUY CRYPTO RECEIPT</b><br/><br/><b>TX ID:</b> {text.transaction.id}<br/><b>Time:</b> {text.time}<br/><b>Price:</b> {text.fiat.amount} {text.fiat.currency}<br/><b>Additional Fee:</b> {text.fiat.fee.fixed} {text.fiat.currency}<br/><b>Percentage Fee:</b> {text.fee.percentage}%<br/><b>Crypto:</b> {text.crypto.amount} {text.crypto.currency}<br/><b>Rate:</b> 1 {text.crypto.currency} = {text.crypto.rate} {text.fiat.currency}<br/><b>Destination:</b> {text.crypto.destination}<br/><br/>Keep this receipt!<br/><br/><b>Operator:</b> Name, Address, Phone, etc<br/><br/>

terms_and_conditions

Pre-transaction terms & conditions page shown at the BATM.

  • Supports basic HTML tags.

  • Creates a button on the BATM screen (when non-empty).

  • Add a "!" to the beginning of the string to force the customer to accept the terms & conditions prior to the transaction (“I AGREE” / ”CANCEL”).

  • Use !X! (e.g. !10!) - to wait X seconds before the Agree button is activated and can be clicked.

(Empty - no default set)

scam_disclaimer

See these details: Scam Disclaimer

(Empty - no default set)

sell_withdrawal_ready

This SMS communicates that the SELL is ready for customer withdrawal.

Code Block
Cash withdrawal {text.transaction.id} is ready.

sell_invalid_payment

This SMS notifies your customer that the wrong amount has been submitted to the wallet specified in printer_sell_crypto_ticket_template.

Code Block
Invalid payment {text.transaction.id} received.

sell_timed_out

This SMS notifies your customer that your SELL offer has expired, and the payment was not received within the required time limit.

Code Block
Sell offer {text.transaction.id} expired. Don't send the payment.

sell_arriving

This SMS notifies your customer that the coin satisfying the SELL terms has been seen on the network, and is waiting for the required confirmations (next: sell_withdrawal_ready).

Code Block
Transaction {text.transaction.id} arriving, thank you. We will inform you when the cash withdrawal is ready.

alternative_welcome_message

Replaces the default: "Welcome to Bitcoin ATM".

(Empty - no default set)

alternative_buy_message

Replaces the default: "Buy Bitcoins" on the main screen

(Empty - no default set)

alternative_screensaver_message

Replaces the default: "BUY BITCOINS!" on the screensaver

(Empty - no default set)

special_configuration

Used ONLY under direction of development / support. See chart (below).

(Empty - no default set)

  • Separate multiple fields using a space (" ").

  • The chart is at the bottom of this article.

buy_transaction_failed_additional_message

These further instructions are displayed on the BATM screen to a customer in the event a BUY transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no default set)

buy_transaction_success_additional_message

This additional notification is displayed on the BATM screen to a customer in the event a BUY transaction succeeds (e.g. "Please wait up to 3 hours for the coin to arrive.").

(Empty - no default set)

sell_transaction_failed_additional_message

These further instructions are displayed on the BATM screen to a customer in the event a SELL transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no message set)

buy_prepare_transaction_failed_blacklisted_message

If the BUY transaction is listed on a blacklist (OFAC, internal, etc), the message set here will be shown to the customer.

(Empty - no message set)

buy_prepare_transaction_failed_high_risk_scoring_message

If the BUY transaction is scored (by a scoring service) as “high risk”, the message set here will be shown to the customer. See: https://generalbytes.atlassian.net/l/cp/bUgXUUs6

(Empty - no message set)

withdraw_transaction_failed_not_enough_cash_message

Replaces the default “Withdrawal is not possible. Not enough cash in the machine.” message.

(Empty - no message set)

withdraw_transaction_failed_additional_message

These further instructions are displayed on the BATM screen to a customer in the event a REDEEM transaction fails (e.g. "Please call xxx-yyy-zzzz").

(Empty - no message set)

sms_otp

The message text when delivering one time SMS passwords to customers.

(Empty - no default set)

  • The OTP field is represented within the text by: {text.otp}

  • Example: Here is your GB OT passcode: {text.otp}

custom_buy_limit_title

The BUY LIMIT title used during the chooseLimitScreen BUY flow.

(Empty - no default set)

custom_buy_limit_description

The BUY LIMIT description used during the chooseLimitScreen BUY flow.

(Empty - no default set)

custom_buy_fixed_fee_description

The BUY LIMIT fixed fee description used during the chooseLimitScreen BUY flow.

(Empty - no default set)

custom_sell_limit_title

The SELL LIMIT title shown during the chooseLimitScreen SELL flow.

(Empty - no default set)

custom_sell_limit_instruction

A SELL LIMIT subheading (e.g. “choose X”) shown during the chooseLimitScreen SELL flow.

(Empty - no override set)

custom_sell_limit_description

The SELL LIMIT description shown during the chooseLimitScreen SELL flow.

(Empty - no default set)

buy_anonymous_limit_alternative_message

Displays a custom Anonymous tier message on the BUY Choose Limit Screen button.

(Empty - no default set)

buy_unregistered_limit_alternative_message

Displays a custom Not Registered tier message on the BUY Choose Limit Screen button.

(Empty - no default set)

buy_registered_limit_alternative_message

Displays a custom Registered tier message on the BUY Choose Limit Screen button.

(Empty - no default set)

sell_anonymous_limit_alternative_message

Displays a custom Anonymous tier message on the SELL Choose Limit Screen button.

(Empty - no default set)

sell_unregistered_limit_alternative_message

Displays a custom Not Registered tier message on the SELL Choose Limit Screen button.

(Empty - no default set)

sell_registered_limit_alternative_message

Displays a custom Registered tier message on the SELL Choose Limit Screen button.

(Empty - no default set)

pep_rejected_info

Displayed to customers that are rejected due to PEP restrictions.

Code Block
Please contact our support team {support_phone}.

registrations_disabled

Displayed when new registrations are not being accepted, or are being pre-processed by third-parties (and registration is no longer performed at the BATM).

Code Block
We are sorry, to register please visit (not set). 

custom_registration_title

Displays a custom title for the “Are you registered?” screen.

(Empty - no default set)

customer_unregistered

This SMS message will be sent to the Identity because their ID document expired.

Code Block
We are sorry, you were unregistered due to the expiration of your ID document.

custom_pep_question

This may be customized to comply with jurisdictional requirements.

(Empty - no default set)

printer_cash_collection_ticket_template

Enables a custom cash collection ticket, as mandated by certain armored car (and other cash pickup) services. This is a subtitle (only).

(Empty - no default set)

registration_submitted_successfully_additional_message

Shown to the customer after successfully uploading the required registration documents.

(Empty - no default set)

marketing_opt_in_agreement_text

This window (when displayed) shows after the QR has been presented by an UNREGISTERED or REGISTERED during a transaction. An “opt-in” is required for marketing in various regions.

(Empty - no default set)

For this message to be displayed:

  1. this custom string must contain text,

  2. the customer’s Identity must have a cellphone number,

  3. the customer must not have previously opted-in to the marketing agreement.

marketing_opt_in_agreement_title

Customizethe title to the marketing opt-in agreement described above.

Code Block
MARKETING AGREEMENT

registration_submitted_successfully_custom_message

This additional message is displayed on-screen after the AML-triggered Registration Submitted screen.

Code Block
Registration information was submitted successfully.<br/>We will inform you on {text.contact.info} when your account is activated.

required_disclosures_text

Displayed on screen after the “Cash Limit Screen” (if set).

  • Permitted variables: {text.fee.fixed}, {text.rate}, {text.rate.raw}

  • Add a "!" to the beginning of the string to force the customer to accept the disclosure prior to the transaction (“I AGREE” / ”CANCEL”).

  • Use !X! (e.g. !10!) - to wait X seconds before the Agree button is activated and can be clicked.

(Empty - no default set)

  • The {link} field is set in your Organization settings. Used with Onfido/Veriff.

Code Block
Please use following link to verify your identity. {link}

sms_identity_verification_success

  • Used with Onfido/Veriff.

Code Block
Verification was successful. You should be registered shortly.

sms_identity_verification_registration_success

  • Used with Onfido/Veriff.

Code Block
Congratulations, your registration was successful.

sms_identity_verification_caution

  • Used with Onfido/Veriff.

Code Block
Something went wrong and we have to verify you manually, sorry. It can take some time.

sms_identity_verification_failed

  • Used with Onfido/Veriff.

Code Block
Verification was unsuccessful. Please try again.

Exceeded cash limit messages

The following custom messages may instead be presented to your customer onscreen when they exceed their respective limits.

(Empty - no default set for any of these messages)

  • exceeded_cash_limit_per_transaction

  • exceeded_cash_limit_per_hour

  • exceeded_cash_limit_per_day

  • exceeded_cash_limit_per_week

  • exceeded_cash_limit_per_month

  • exceeded_cash_limit_per_3_months

  • exceeded_cash_limit_per_12_months

  • exceeded_cash_limit_per_calendar_year_quarter

  • exceeded_cash_limit_per_calendar_year

  • exceeded_cash_limit_per_day_and_crypto_address

  • exceeded_total_cash_limit_per_crypto_address

  • exceeded_total_cash_limit_per_identity

  • exceeded_total_terminal_cash_limit_for_buy

  • exceeded_total_terminal_cash_limit_for_sell

privacy_policy

An additional screen presented to the customer revealing any regionally required privacy policy declaration.

(Empty - no default set)

verify_wallet_ownership_no_flow_confirm_button

If wallet ownership verification is enabled in your AML/KYC settings, this text is shown on the button when the customer has chosen “no” (the wallet is not theirs), e.g. “OK”.

(Empty - no default set)

verify_wallet_ownership_no_flow_message

If wallet ownership verification is enabled in your AML/KYC settings, this message is shown after the customer presses “no” (the wallet is not theirs),

  • e.g. “Transaction aborted. We cannot send Bitcoin to wallets outside your control.”

(Empty - no default set)

verify_wallet_ownership_no_button

If wallet ownership verification is enabled in your AML/KYC settings, this text is shown on button:No”.

After pressing this button, the customer moves on to display the “no_flow” messages:

verify_wallet_ownership_yes_button

If wallet ownership verification is enabled in your AML/KYC settings, this text is shown on button:Yes”.

After pressing this button, the customer moves forward (as usual) to the transaction.

(Empty - no default set)

verify_wallet_ownership_title_question

If wallet ownership verification is enabled in your AML/KYC settings, this message is shown when the customer must confirm wallet ownership, e.g. “DO YOU CONTROL THE TARGET WALLET?”

This screen title is shared between this screen, and the “no_flow” screens.

(Empty - no default set)

collect_phone_voicecall_delay

When your customer chooses to have a voice call instead of an SMS, delay the call for “X” minutes.

Code Block
15

minimum_age_declined

Code Block
We are sorry. You must be at least {minimumAge} years old to use this service.

sell_maximum_cash_reached

Specify the message that will appear on-screen during the sell flow when your customer reaches maximum available cash for dispensing from the BATM.

(Empty - no default set)

...

Field Assignments & Definitions

Field

Description

Applies to:

{bmp.address}

A QR-coded wallet address.

BUY

{bmp.logo}

Your logo from Sprites (or GB).

All

{bmp.paymentrequest}

The QR-coded SELL offer.

SELL

{bmp.privatekey}

A QR-coded private key.

BUY

{cryptosetting.name}

The Crypto Setting associated with the transaction.

BUY, SELL

{identity.firstname}

The FIRST name from the related Identity.

BUY, SELL

{identity.lastname}

The LAST name from the related Identity.

BUY, SELL

{text.crypto.amount}

The amount of coin involved.

All

{text.crypto.currency}

The type of coin (BTC/LTC/etc).

All

{text.crypto.destination}

The wallet presented during the BUY.

BUY

{text.crypto.rate}

The calculated rate based on the amount involved, your percentages, and fees.

All

{text.crypto.rateNoFees}

Cryptocurrency Rate Without Fees

BUY, SELL

{text.crypto.rateSpread}

Spread Between Rates in Fiat Currency

  • = rate - rateNoFees

BUY, SELL

{text.fiat.amount}

The fiat amount of this transaction.;

All

{text.fiat.currency}

The fiat (USD/EUR/etc) used.

All

{text.fiat.fee.fixed}

Any flat fee assessed.

All

{text.fiat.fee.total}

Total Fee in Fiat Currency

BUY, SELL

{text.otp}

The OTP sent to a Customer.

OTP

{text.privatekey}

The text version of any private key when a hard-copy is chosen by the customer.

BUY

{text.time}

Transaction time at location.

All

{text.transaction.expirationTimestamp}

The expiration datetime of the SELL offer.

ALL

{text.transaction.id}

The RID of the transaction.

All

{text.transaction.uuid

This ID links a WITHDRAW to this SELL.

SELL

{text.transaction.related.id}

The ID of the associated SELL.

WITHDRAW

...

Permitted Fields

Custom String

Permitted Fields

sms_buy_crypto_ticket_template

{text.time}
{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.destination}
{text.fiat.fee.fixed}
{text.crypto.rate}

{text.fiat.fee.total}
{text.crypto.rateNoFees}
{text.crypto.rateSpread}
{identity.firstname}
{identity.lastname}
{cryptosetting.name}

sms_sell_crypto_ticket_template

{text.time}
{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.destination}
{text.fiat.fee.fixed}
{text.crypto.rate}

{text.fiat.fee.total}
{text.crypto.rateNoFees}
{text.crypto.rateSpread}
{identity.firstname}
{identity.lastname}
{cryptosetting.name}

email_buy_crypto_ticket_template

{text.time}
{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.destination}
{text.fiat.fee.fixed}
{text.crypto.rate}

email_buy_crypto_ticket_template

{text.time}
{text.transaction.id}
{text.fiat.amount

{bmp.logo}

{text.fiat.

currency}
{text.crypto.amount

fee.total}
{text.crypto.

currency

rateNoFees}
{text.crypto.

destination

rateSpread}
{

text.fiat.fee.fixed

identity.firstname}
{

text

identity.

crypto.rate

lastname}
{

bmp

cryptosetting.

logo

name}

printer_paper_wallet_template

{text.address}
{text.privatekey}
{text.cryptoCurrency}
{bmp.address}
{bmp.privatekey}
{bmp.logo}

printer_buy_crypto_ticket_template

{text.time}
{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.

destination

destination}
{text.fiat.fee.fixed}
{text.crypto.rate}
{bmp.logo}

{text.fiat.fee.total}
{text.crypto.rateNoFees}
{text.crypto.rateSpread}
{

text.fiat.fee.fixed

identity.firstname}
{

text

identity.

crypto.rate

lastname}
{

bmp

cryptosetting.

logo

name}

printer_sell_crypto_ticket_template

{bmp.logo}
{bmp.paymentrequest}
{text.time}
{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.destination}
{text.transaction.uuid}
{text.fiat.fee.fixed}
{text.fee.percentage}
{text.transaction.expirationTimestamp}
{text.crypto.rate}

{text.fiat.fee.total}
{text.crypto.rateNoFees}
{text.crypto.rateSpread}
{identity.firstname}
{identity.lastname}
{cryptosetting.name}

printer_withdrawal_ticket_template

{bmp.logo}
{text.time}
{text.transaction.id}
{text.transaction.related.id}
{text.fiat.amount}
{text.fiat.currency}
{text.transaction.uuid}

printer_pos_crypto_ticket_template

{bmp.logo}
{text.orderid}
{text.totalprice}
{text.tip}
{text.amounttip}
{text.amountpaid}
{text.cashcurrency}
{text.

ammountcurrency

amountcurrency}

sell_withdrawal_ready

{text.transaction.id}
{text.fiat.amount}
{text.fiat.currency}
{text.crypto.amount}
{text.crypto.currency}
{text.crypto.destination}
{text.fiat.fee.fixed}
{text.crypto.rate}

sell_invalid_payment
sell_timed_out
sell_arriving

...

Panel
panelIconId1f50d
panelIcon:mag:
panelIconText🔍
bgColor#DEEBFF

Special configuration strings

  • Separate multiple fields (where needed) using a space (" ").

Setting

Description

acceptanceProblemRejectThreshold=X

Terminals will report the event “Acceptance Problem” after 3 failed attempts to accept a banknote (default).

  • Change the threshold to X with this string (e.g. “8”).

alarm_delay_seconds=xx

 alarm arming delay after closing the door (door sensors required).

alarm_pin=abcd

Assign a numerical PIN for disarming the alarm.

  • Example: alarm_pin=12345

alt-admin-access

  • will enable alternative access to advanced administration from basic administration via back button click

btc_reject_bc1

Rejects customer SegWit wallet addresses ("bc1").

checkpin=abcd

Terminal will ask for numerical PIN before purchase.

  • Minimum PIN length = 4

  • Example: checkpin=4

datasaving

Decreases the “ping” frequency

  • reduces data usage & increases responsiveness

idledatasaver

reduces the ping period in screensaver mode to 150 sec

ltc_reject_ltc1

Rejects customer wallet addresses beginning with ("ltc1").

paperwalletonly

Force paper wallet usage (required in certain jurisdictions.

  • If activated, be certain to enable wallet backups.

 See: /wiki/spaces/ESD/pages/941817861

rebootIntervalMinutes=

Changes the "no connection" timeout.

  • Example: rebootIntervalMinutes=10  sets a 10 minute timeout

ukraine

Adds aid option for Ukraine, see: https://generalbytes.atlassian.net/l/cp/HWrVFiV0

-Xbitflyer=1

Enables BitFlyer

experimental

(deprecated) Implements the new (experimental) Terminal UI.

legacy

(deprecated) Implements the old (legacy) Terminal UI.