# Frequently Asked Questions

# Does PCM guarantee message delivery?

PCM will hold your message only up to the time specified in the message ttl (time-to-live) parameter. If, for whatever reason, the Poynt Terminal is offline longer than that period of time, your message will not be delivered.

# Does PCM guarantee at MOST once delivery?

Yes. PCM delivers your message only once, so you don't need de-dupe logic.

# Does PCM guarantee ordered message delivery?

No. Order Cloud message is not guaranteed. While most messages will arrive in the order sent, there is a chance that messages will arrive out of order. Your app must take this scenario into account.

# How fast are messages delivered from the cloud to the GoDaddy Poynt device?

A number of network conditions can impact the speed of message delivery from the cloud to the app on the Poynt Terminal. While most messages are delivered in near real-time, your application logic must consider account delays in message delivery.

Even if your cloud application is running from a world-class data center, GoDaddy Poynt terminals are connected to the internet using various methods (i.e. WiFi, Ethernet, 3G) and conditions. There are a number of tools that can simulate various network conditions, including an Android Emulator.

# What is the maximum message TTL (time-to-live)?

When sending your message, you can specify a value (in seconds) in the ttl (time-to-live) parameter. PCM will not deliver the message if the TTL time has passed. The maximum value TTL is 2419200 (that's 4 weeks -- 4 * 7 * 24 * 60 * 60).

# Can I overwrite a previously sent message?

PCM messages have a parameter called collapseKey. When specified, this key becomes the message's unique identifier. If you send two PCM message with the same collapseKey, and assuming the first message has not yet been delivered, then the second message will overwrite the first message.

# What is the maximum message size that I can send?

PCM message payloads (i.e. the data element) can be up to 4096 bytes long.

# Why isn't my on-terminal app receiving cloud messages?

There are many reasons why your cloud messages aren't making it to the smart terminal. If your client app is getting a 401 (unauthorized access) error code, you can refer to this thread (opens new window) on the developer discussions forum.

# Why is my emulator not receiving cloud messages?

The cloud messaging application does not have system privileges while running on the emulator so when it's killed for any reason, you will have to manually restart the app.

adb shell am start co.poynt.cloudmessaging

# Why is my custom tender transaction not showing up in the transaction list?

Please check the logcat when you create the transaction. The most likely reason is that you are not setting a required field in the Transaction object in which case you would see a 400 error in the logcat with the message explaining which field should be set.

# When I perform a refund the Payment Fragment shows status Refunded but after Transaction list refreshes the SALE transaction is still showing as refundable

Please check the logcat to see if the PUT call to record the refund in the Poynt cloud has failed.

This could happen if your transaction processor did not set all of the required fields in the transaction object. The developerMessage in the error response will indicate which required field is not set.

Last Updated: 10/4/2022, 8:01:35 AM