# General FAQs
# What type of applications can I build on GoDaddy Poynt?
PoyntOS SDK allows you to build applications that the merchant can interact with using the Smart Terminal. There are multiple application categories, including but not limited to:
- Point of Sale
- Loyalty
- CRM
- Analytics
- Accounting
- Inventory
- Employee management
You can also create powerful back-end applications that connect to the apps installed on the terminal using our RESTful Cloud APIs. Additionally, our platform includes a comprehensive set of resources to build the best solutions for merchants.
You can also check our section for developing your first app to learn more about this topic.
# Are there any restrictions for the apps that can be built on GoDaddy Poynt?
Yes. There are several things you must keep in mind before you begin building your application. Below are some of the main considerations.
- Your application cannot access sensitive payment card information.
- The consumer-facing screen (the smaller one) has several restrictions as to what can be displayed.
- Sideloading applications and services on live merchant devices is not allowed.
- GoDaddy Poynt must approve any access to custom USB devices from your applications.
- Applications will be reviewed and distributed by GoDaddy Poynt through secure channels.
Please refer to our SDK Documentation and application development guidelines for more information.
# Can I develop for GoDaddy Poynt if I don't have a testing device?
Yes. To develop an application that runs on the Smart Terminal, you can use the GoDaddy Poynt Emulator in Android Studio (AVD), Genymotion, or a standard 7" Android tablet.
You can also build pure cloud applications that operate independently without needing a physical terminal. Cloud applications can use the Cloud APIs (opens new window) to access business (opens new window), customer (opens new window) and transaction (opens new window) data or even create webhooks (opens new window) for a variety of events.
# Can my cloud-based app communicate with my Android app installed on the terminal?
Yes. Your Cloud app can send messages to your Android App as described in our documentation. If you need to enable Refund, Void, Poynt Collect, and other permissions for your Cloud App please send us an email at devsupport@poynt.co with your App ID.
# How can I submit a bug or error report from my device?
You can submit an error report by clicking on the Help application on the home screen and selecting the Diagnostics module. Then, you should click the SUBMIT ERROR REPORT button to send the report.
You can also press the Power Button until you see a three-option menu and select the option to Take bug report.
# How can I reset Cloud Connection?
You can reset the cloud connection by tapping on the clock of the home screen until you see the message: Resetting Cloud Messaging Connection
# How can I inject test encryption keys?
Go to Settings
> About
> tap 10 times on Payment Firmware
> click on the Initialize
button.
# How do I unlock Developer Preferences
on a developer device or emulator?
Swipe down from the top of the screen, go to Settings
> About
> and tap 10 times on PoyntOS Version
. When you go back to the Settings screen, you will see Develeoper Preferences
. (Please note that enabling Developer Preferences on a production terminal prompts for a PIN. If you really need to access Dev Prefs on a production terminal please contact Developer Support to get the PIN.)
# How can I check card reader configuration?
Go to Settings
> Developer Preferences
> Card Reader Configuration
. Tap on Get Config
button. You should see configuration options set for CONTACT, CONTACTLESS and MSR interfaces.
# Does Poynt5 support BLE?
Yes.
# Can my app have access to NFC APIs?
Currently, we do not provide direct access to NFC APIs. All NFC interactions are payment related and only accessible to the Poynt Payment service for PCI/security reasons.
# What are the different transaction statuses available today?
Authorized: The initial step where the transaction is approved by the payment system, indicating that the customer has sufficient funds or credit to make the purchase.
Before the actual funds are transferred, an authorization ensures that the payment method is valid and has the necessary funds or credit available. For standalone authorizations (not part of an immediate sale), a subsequent capture step is necessary to finalize the transaction.
Capture: The process of converting an authorized transaction into a completed sale by capturing the funds.
After authorization, capturing the funds finalizes the transaction, and the merchant can proceed to fulfill the order or provide the purchased goods or services.
Sale: This action represents completing a transaction by transferring funds from the customer's account to the merchant's account.
For a sale, the authorization and capture steps are involved. However, in some cases, there might not be a separate capture step required for the sale.
Settled: This is the point at which the funds from a transaction are transferred from the acquiring bank (the merchant's bank) to the merchant's account.
Settlement is the final step in completing a transaction, ensuring that the funds are securely transferred to the merchant.
Refund: This is the process of returning the purchase amount to the customer.
Refunds are typically initiated by the merchant in response to customer requests, product returns, or other valid reasons and can only happen for captured or settled transactions.
Partial Refund: This action is used to refund only a portion of the total purchase amount to the customer, allowing multiple partial refunds of a specific transaction.
Void: This is the cancellation of an authorized transaction before it is settled or captured.
A voided transaction ensures that the authorization is canceled, and funds are not captured. It's often done when a mistake is made, or the transaction needs to be canceled before completion.
Cancel: This is the termination of a transaction at any stage, typically before settlement.
Canceling a transaction can occur at various points in the process and prevents further processing of the transaction. It might involve voiding an authorization or reversing a sale before settlement and can happen due to multiple reasons, including the following:
- TIMEOUT: There is no response from host or there are connection issues.
- CARD_REMOVED: The card is removed before the transaction is completed.
- CHIP_DECLINE_AFTER_HOST_APPROVAL: This is a valid case in the EMV transaction completion processing stage.
- PIN_PAD_NOT_AVAILABLE: The card reader is not available.
- MERCHANT_CANCELLED: The merchant cancelled the transaction before it was completed.
# 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.
# 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.
# How do I get to Android System settings on a developer device?
You can either unlock Developer Preferences and tap on System or use this adb command adb shell am start -S com.android.settings/.Settings
.
# I uploaded the wrong APK. How can I remove it and upload the correct one?
There is no way to remove the wrong APK. If the package name of the correct APK is the same you can just increment versionCode in build.gradle and upload the correct version. If the package name of the correct APK is different you will need to create a new application.