Payments
To accept payments with Montonio, you need to integrate with our Stargate API. In the Guides section, you can find detailed instructions on how to integrate with the API, along with code examples in various programming languages.
What is an Order?
When you integrate with Montonio, you’ll be working with a set of objects which are used to represent the payment process. The most important and central object is the Order.
To accept payments, you must first create an Order, ideally matching one-to-one with an Order object in your e-commerce, ERP, or accounting system. The Order object contains all the information needed to process a payment, such as the amount, currency, preferred payment method, the customer’s email address, etc.
What payment methods can be used?
An Order can be paid for using one of the available payment methods, which is specified when creating the Order. The available payment methods per currency are:
| Payment method | Supported currencies | System name |
|---|---|---|
| Bank Payments | EUR, PLN | paymentInitiation |
| Card Payments | EUR, PLN | cardPayments |
| MobilePay | EUR | mobilePay |
| BLIK | PLN | blik |
| Buy Now Pay Later | EUR | bnpl |
| Hire Purchase | EUR | hirePurchase |
What is the lifecycle of an Order?
In order to communicate the status of a payment we use the Order’s paymentStatus.
Whenever an order transitions from one status to another you will receive a webhook (HTTP POST request).
You can expect the following values for paymentStatus:
| Status | Available by default | Description |
|---|---|---|
| PENDING | ✅ YES | Order is created but the payment is not yet completed by the customer. This is the first status of an Order. |
| PAID | ✅ YES | Order has been paid for by the customer. |
| VOIDED | ✅ YES | An order previously marked as PAID was rejected by the bank1 An email is sent to the merchant’s contact address to inform you of this exceptional case. |
| PARTIALLY_REFUNDED | ✅ YES | Order amount has been partially refunded. |
| REFUNDED | ✅ YES | Order amount has been fully refunded. |
| ABANDONED | ✅ YES2 | When an order is PENDING for a certain duration (30 minutes by default) we will update the order status to ABANDONED and send a webhook. |
| AUTHORIZED | ❌ Opt in3 | Intermediate status for paymentInitiation payments indicating that the payment is signed by the customer but not yet processed by the bank. |
References:
- A PAID order becoming VOIDED can only happen with the
paymentInitiationpayment method. It’s a rare edge case for when the customer’s bank experienced technical issues or rejected the payment for suspicious activity. Read more about it in this article. - The
ABANDONEDstatus is enabled for merchants who started using Montonio after 2023.08.29. Contact Customer Support to enable this feature if you joined before 2023.08.29. - Feature available only for select enterprise customers.
What is the lifecycle of a Refund?
In order to communicate the status of a refund we use the Refund’s status. You can expect the following values for status:
| Status | Description |
|---|---|
| PENDING | Refund has been created but not yet processed. This is the first status of a Refund. |
| PROCESSING | Refund has been submitted for processing. The funds are being transferred back to the customer. |
| SUCCESSFUL | Refund has been successfully processed and the funds have been returned to the customer. |
| REJECTED | Refund was rejected and could not be completed. |
| CANCELED | Refund was cancelled before processing. |
How to access the API?
The API Base URLs for the available environments are as follows:
- Production:
https://stargate.montonio.com/api- Sandbox:
https://sandbox-stargate.montonio.com/api
To authenticate with the API, you’ll need to use API keys. Read more about API keys and how to get them. The authentication mechanism is described in the Authentication section of the API reference.
Getting started
The best way to get started is to first read the Integration checklist.
Once you’re familiar with the flow, dive deeper into the Developer guides to build your integration step-by-step.
Happy integrating! 🚀