# Developer Portal Documentation > Read our developer guides for integrating in-store payments. ## Guides - [Overview](https://developer.mx51.io/docs/sci-overview.md): In these guides, you will learn about Simple Cloud Integration (SCI) and how to integrate it with your Point of Sale (POS). - [API Credentials & Authentication](https://developer.mx51.io/docs/sci-api-credentials-authentication.md): Before starting, obtain the API Credentials and understand how Authentication works for pairing and transactions. - [Pairing](https://developer.mx51.io/docs/sci-pairing.md): SCI makes it easy to connect your POS with an EFTPOS payment terminal. This is known as ‘pairing’. - [Requirements](https://developer.mx51.io/docs/sci-requirements.md): For your SCI integration to be certified by our team, it must satisfy all mandatory requirements. There are also some additional features that you may choose to add. - [Overview](https://developer.mx51.io/docs/sci-transactions-overview.md): In this guide, you will learn how SCI processes transactions between your POS and the EFTPOS terminal, and how to build the dynamic transaction UI using the Action Framework. - [Purchase, refund and signature transactions](https://developer.mx51.io/docs/sci-purchase-refund-and-signature-transactions.md): In this guide, you will learn how to create purchase and refund transactions as well as how to handle the signature verification flow. - [Transaction recovery](https://developer.mx51.io/docs/sci-transaction-recovery.md): In this guide, you will learn how to handle the real-world failure scenarios your integration may encounter — network interruptions, timeouts, and cancellations — and how to implement the override flow. - [Tipping & surcharges](https://developer.mx51.io/docs/sci-tipping-surcharges.md): In this guide, you will learn how to pass tip and surcharge amounts in transaction requests, and how to read the final applied amounts from the response. - [MOTO](https://developer.mx51.io/docs/sci-moto.md): SCI enables your POS to make MOTO (Mail Order / Telephone Order) transactions. - [Cashout](https://developer.mx51.io/docs/sci-cashout.md): Cashout allows customers to withdraw cash from their card at the merchant's POS. - [Settlement](https://developer.mx51.io/docs/sci-settlement.md): In this guide, you will learn how to trigger a settlement, query settlement totals for today or a previous date, and poll for the result. - [Terminal receipt configuration](https://developer.mx51.io/docs/sci-receipt-printing-settings.md): Configure the terminal & receipt printing configurations for your POS. - [Kiosk Mode](https://developer.mx51.io/docs/kiosk-mode.md): SCI supports kiosk mode, allowing your POS to process transactions without an operator. - [Certification test suite](https://developer.mx51.io/docs/sci-certification-test-suite.md): Here is the test suite needed for certifying your SCI integration. - [Frequently asked questions](https://developer.mx51.io/docs/sci-faq.md): In this guide, you can find answers to frequently asked questions about SCI. - [Overview](https://developer.mx51.io/docs/spice-overview.md): In these guides, you will learn about Spice and how to integrate it with your Point of Sale (POS) machine. - [Install and pair](https://developer.mx51.io/docs/spice-install-pair.md): Before starting, check that your POS machine satisfies the system requirements, then install Spice and the Gecko Bank app, and pair them together. - [Requirements](https://developer.mx51.io/docs/spice-minimum-development-checklist.md): For a <> to be certified by our team, it must satisfy these mandatory requirements. There are also some optional features that you may choose to add. - [User interface](https://developer.mx51.io/docs/spice-user-interface.md): Spice's user interface (UI) enables merchants to interact with Spice and its settings. This guide covers how to use each part of this UI. - [Overview of transactions](https://developer.mx51.io/docs/spice-transactions.md): Spice empowers your POS with support for several types of transactions, all with a consistent interface. This guide covers the basics of transactions. - [Ping test](https://developer.mx51.io/docs/spice-ping-test.md): Before each transaction, a ping test should be performed to check that the EFTPOS terminal is ready to make the transaction. - [Purchases and refunds](https://developer.mx51.io/docs/spice-purchases-refunds.md): Making purchases and giving refunds are two of the most essential types of transactions handled by Spice. - [Signature transactions](https://developer.mx51.io/docs/spice-signature-transactions.md): Spice provides a workflow for handling transactions that require a signature, and your Spice integration will need to support this workflow. - [Transaction recovery](https://developer.mx51.io/docs/spice-transaction-recovery.md): Spice is designed to be resilient to the various real-world scenarios in which transactions can be interrupted. This guide covers how to handle each of these transaction recovery scenarios. - [MOTO](https://developer.mx51.io/docs/spice-moto.md): Spice can enable your POS to make MOTO (Mail Order/Telephone Order) transactions. - [Tips and surcharges](https://developer.mx51.io/docs/spice-tips-surcharges.md): These extra charges can be added to the total amount of a purchase. - [Cashout](https://developer.mx51.io/docs/spice-cashout.md): Cashout allows customers to withdraw cash from their card at the merchant’s POS. - [Settlement](https://developer.mx51.io/docs/spice-settlement.md): Merchants can settle funds with their bank using Spice, and they can also make settlement enquiries. - [Pre-authorisation](https://developer.mx51.io/docs/spice-pre-authorisation.md): Pre-authorisation (pre-auth) allows <>s to reserve funds on a <>’s card before either charging or releasing the funds later. - [Pay at Table](https://developer.mx51.io/docs/spice-pay-at-table.md): Pay at table allows <>s to make transactions from the <> instead of the POS, hence allowing them to make purchases away from their desk. - [Multi-terminal pairing](https://developer.mx51.io/docs/multi-terminal-pairing.md): Spice allows merchants to pair multiple terminals to process transactions in various operational settings. - [Additional settings](https://developer.mx51.io/docs/spice-additional-settings.md): By enabling the merchant to configure more of Spice’s default settings, you can give them more possibilities when using your POS. - [Frequently asked questions](https://developer.mx51.io/docs/spice-adaptor-faq.md): In this guide, you can find answers to frequently asked questions about Spice. - [Release notes](https://developer.mx51.io/docs/spice-release-notes.md): Find out about new features and improvements to Spice. - [Test suites](https://developer.mx51.io/docs/spice-certification-process.md): Here are the test suites needed for certifying your Spice integration. - [Overview](https://developer.mx51.io/docs/spi-overview.md): In these guides, you will learn about the SPI library and how to integrate it with your Point of Sale (POS) machine. - [Installation](https://developer.mx51.io/docs/spi-installation.md): Before starting, check that your POS satisfies the software requirements, then install SPI and the Gecko Bank app and pair them together. - [Requirements](https://developer.mx51.io/docs/spi-requirements.md): For your <> to be certified by our team, it must satisfy these mandatory requirements. There are also some additional features that you may choose to add. - [Set up SPI](https://developer.mx51.io/docs/spi-setup.md): Instantiate SPI and configure it with settings and pairing details. - [Listen for events](https://developer.mx51.io/docs/spi-events.md): Subscribe to SPI’s events so you can log them and perform actions. - [Pairing](https://developer.mx51.io/docs/spi-pairing.md): The SPI library makes it easy to connect your <> with an <>. This is known as ‘pairing’. - [Pairing UI](https://developer.mx51.io/docs/spi-pairing-ui.md): Your POS must provide a user interface for pairing and viewing the pairing status. - [Transactions](https://developer.mx51.io/docs/spi-transactions.md): SPI empowers your POS with the ability to make several types of transactions. - [Signature transactions](https://developer.mx51.io/docs/spi-signature-transactions.md): SPI provides a workflow for handling transactions that require a signature. - [Transaction recovery](https://developer.mx51.io/docs/spi-transaction-recovery.md): SPI is designed to be resilient to the various real-world scenarios in which transactions can be interrupted. - [Transactions UI](https://developer.mx51.io/docs/spi-transactions-ui.md): Your POS must provide a user interface for making transactions, viewing their progress, and interacting with them. - [MOTO](https://developer.mx51.io/docs/spi-moto.md): SPI can enable your POS to make MOTO (Mail Order/Telephone Order) transactions. - [Libraries](https://developer.mx51.io/docs/spi-libraries.md): Guides for using the SPI libraries. - [.NET](https://developer.mx51.io/docs/spi-net.md) - [iOS](https://developer.mx51.io/docs/spi-ios.md): Library and reference POS for iOS. - [Java/Android](https://developer.mx51.io/docs/spi-java-android.md): Library and reference POS for Java. - [JavaScript](https://developer.mx51.io/docs/spi-javascript.md): Library and reference POS for JavaScript. - [Frequently asked questions](https://developer.mx51.io/docs/spi-frequently-asked-questions.md): In this guide, you can find answers to frequently asked questions about SPI. - [Release notes](https://developer.mx51.io/docs/spi-release-notes.md): This page provides the release notes for the SPI client library. - [Test suites](https://developer.mx51.io/docs/spi-test-suites.md): Here are the test suites needed for certifying your <>. - [Certification](https://developer.mx51.io/docs/certification.md): Certification is an important step to confirm that your <> is working correctly. And likewise, recertification and regression testing are used to confirm it still works after changes. - [Gecko Bank](https://developer.mx51.io/docs/gecko-bank.md): Gecko Bank is a full-feature virtual terminal that we recommend for testing your <>, and it can be installed on your Android device. - [Glossary](https://developer.mx51.io/docs/glossary.md): Wondering what a term means? Here you will find some of the terms that we use when talking about our products. - [Magic numbers](https://developer.mx51.io/docs/magic-numbers-for-test-transactions.md): When testing your <> using an EFTPOS terminal, there are certain transaction amounts that you can enter to force specific response codes to be returned — just like magic! - [Code samples](https://developer.mx51.io/docs/code-samples.md): Take a tour of the code below, and copy it into your project to get started. - [Physical terminals](https://developer.mx51.io/docs/test-terminal-and-guides.md): On this page, you will find a list of the physical EFTPOS terminals that possess all or most of the features needed for testing your <>. ## API Reference - [Ping](https://developer.mx51.io/reference/ping.md): Check if the EFTPOS terminal is ready - [Get terminals](https://developer.mx51.io/reference/get-terminals.md): Get a list of the EFTPOS terminals paired with Spice. - [Get purchase](https://developer.mx51.io/reference/get-purchase.md): Get a purchase transaction. - [Make purchase](https://developer.mx51.io/reference/make-purchase.md): Make a purchase transaction. - [Get cashout](https://developer.mx51.io/reference/get-cashout.md): Get a cashout transaction. - [Make cashout](https://developer.mx51.io/reference/make-cashout.md): Make a cashout transaction. - [Get MOTO](https://developer.mx51.io/reference/get-moto.md): Get a MOTO transaction. - [Make MOTO](https://developer.mx51.io/reference/make-moto.md): Make a MOTO transaction. - [Get refund](https://developer.mx51.io/reference/get-refund.md): Get a refund transaction. - [Make refund](https://developer.mx51.io/reference/make-refund.md): Make a refund transaction. - [Make settlement](https://developer.mx51.io/reference/make-settlement.md): Make a settlement. - [Make settlement enquiry](https://developer.mx51.io/reference/make-settlement-enquiry.md): Make a settlement enquiry. - [Get pre-auth](https://developer.mx51.io/reference/get-pre-auth.md): Get a pre-auth transaction. - [Open pre-auth](https://developer.mx51.io/reference/open-pre-auth.md): Open a pre-auth transaction. - [Top up pre-auth](https://developer.mx51.io/reference/top-up-pre-auth.md): Top up a pre-auth transaction. - [Extend pre-auth](https://developer.mx51.io/reference/extend-pre-auth.md): Extend a pre-auth transaction. - [Partially cancel pre-auth](https://developer.mx51.io/reference/partially-cancel-pre-auth.md): Partially cancel a pre-auth transaction. - [Cancel pre-auth](https://developer.mx51.io/reference/cancel-pre-auth.md): Cancel a pre-auth transaction. - [Complete pre-auth](https://developer.mx51.io/reference/complete-pre-auth.md): Complete a pre-auth transaction. - [Verify account](https://developer.mx51.io/reference/verify-account.md): Request to verify an account. - [Ping](https://developer.mx51.io/reference/ping-1.md): Check if Table Server is ready - [Get tables](https://developer.mx51.io/reference/get-tables-1.md): Get open tables. If an `operatorId` is provided, it will that single open table. - [Get a table](https://developer.mx51.io/reference/get-table-1.md): Get an open table. - [Get bill](https://developer.mx51.io/reference/get-bill-1.md): Get a bill and its details. - [Update bill](https://developer.mx51.io/reference/update-bill-1.md): Update a bill. - [Get operators](https://developer.mx51.io/reference/get-operator-ids-1.md): Retrieve a list of Operator IDs. - [Progress pairing](https://developer.mx51.io/reference/progresspairing.md): Progresses a pairing that is initiated via the terminal - [Create Transaction](https://developer.mx51.io/reference/createtransaction.md): Create transaction. - [Get Transaction](https://developer.mx51.io/reference/gettransaction.md): Get transaction. - [Unpair](https://developer.mx51.io/reference/unpair.md): Unpair an active pairing. ## Recipes - [Listen for events](https://developer.mx51.io/recipes/listen-for-events.md) - [Pairing](https://developer.mx51.io/recipes/pairing.md) - [Set up SPI](https://developer.mx51.io/recipes/set-up-spi.md) - [Signature transactions](https://developer.mx51.io/recipes/signature-transactions.md) - [Transaction recovery](https://developer.mx51.io/recipes/transaction-recovery.md) - [Transactions](https://developer.mx51.io/recipes/transactions.md)