Introduction to Online API
The Online API was created to allow online shops to easily and quickly connect an additional payment method for orders - "Mokka - payment in advance".
"Mokka - payment in advance" is an instant possibility for the buyer to pay for purchases in online shops. Our system will divide your payment into equal installments according to a schedule agreed upon beforehand by the customer. After the schedule has been approved, Mokka will immediately transfer the money for your purchase.
Using the Online API methods you can register a customer in Mokka, pay for a purchase in advance, make a cancellation or return an order. Using the Online API on your website will require minimal modifications on the shop frontend. Online API is based on REST architecture, which allows you to easily communicate with the Mokka system. You will only need to implement the payment method, adjust the price display and place the marketing material on the website strictly according to Mokka's guidelines.
Business Process
Supported business processes via Online API
- Online shopping from partner shops
- Deferred payments
- Cancellation of order by Partner
- Return of purchased goods by the customer
Main processes based on API
Registration method
The process is initiated by the customer at the time of registration through a banner on the home screen or through an orange Mokka price shown in the product card.
|
|
|
Request Json query
{
"terms_url": "https://mokka.ro/landings/demostore/",
"callback_url": "https://shop.example.com/revo/decision",
"redirect_url": "https://shop.example.com/revo/redirect",
"authorized_client": true,
"primary_phone": "654456546",
"primary_email": "john.connor@gmail.com",
"current_order":
{
"order_id": "119R"
},
"person":
{
"first_name": "John",
"surname": "Connor",
"patronymic": "",
"birth_date": "15.01.1975"
}
"additional_data":
{
"previous_url": "https://revo.ru/where-to-buy",
"returning_customer": true,
"bank_card": true,
"last_orders": "1",
"sum_orders": 10000.0
"client":
{
"client_id": "541USR",
"registration_date": "11.11.2021",
"data_change_date": "15.11.2021"
"purchases_value": 1
"purchases_sum": 10000.0,
"first_purchase_date": "11.11.2021",
"last_purchase_date": "11.11.2021",
"uniq_user_phone": 1
}
"purchase":
[{
"product_name": "Selphone Xiaomi mi 8",
"number": 1,
"product_price": 10000.00
}]
}
}
terms_url | string | URL with Mokka conditions (link provided by Mokka). |
callback_url | string | URL for Mokka response with information about client's limit. |
redirect_url | string | URL for redirecting upon clicking the button "Return to online store” in the Mokka form. |
authorized_client | bool | Flag which shows if customer is logged in on the merchant's account. |
primary_phone | string | Client phone number from merchant's account (without country code). |
primary_email | string | Client email from merchant's account |
current order | An object containing information about current request | |
order_id | string | Request ID |
person | object | An object containing information about the client from merchant's account |
first_name | string | Client name |
surname | string | Client surname |
patronymic | string | Client patronymic |
birth_date | string | Client birth date in dd.mm.yyyy format |
additional_data | object | An object containing additional information |
previous_url | string | Previous url client came from |
returning_customer | bool | Flag which shows if customer made a purchase for the last 24 month |
bank_card | bool | Flag which shows if customer made a payment with bank card for the last 24 month |
last_orders | int | Number of all orders client made for the last 24 month |
sum_orders | float | Value of all orders client made for the last 24 month |
client | object | An object containing information about the client |
client_id | string | Client ID |
registration_date | string | Date of registration of the client in the format dd.mm.yyyy. |
data_change_date | string | Date of the last change of the client data in the format dd.mm.yyyy. (name, birth date, phone number, email, document) |
purchases_value | int | Number of purchases from successful orders for the last 24 month |
purchases_sum | float | Value of purchases from succesful orders for the last 24 month |
first_purchase_date | string | The date of customer's first purchase in the format dd.mm.yyyy. |
last_purchase_date | string | The date of the customer's last purchase in the format dd.mm.yyyy. |
uniq_user_phone | int | Number of unique clients with primary_phone in merchant's client base |
purchase | array | An array containing information about 5 previous succesful orders |
product_name | string | Product name |
number | int | Product quantity |
product_price | float | Purchase cost |
{
"status": 0,
"message": "Payload valid",
"iframe_url": "https://stage-backend.revoplus.pl/form/v1/af45ef12f4233f"
}
Parameter Name | Type | Description |
status | integer | Response code. |
message | string | A short text description of the response. |
iframe_url | string | URL to the generated iFrame. |
Checkout method
The Checkout method is available for those who would like to use the Mokka payment method. The method consists of a Registration and transaction. The Registration step is the same as shown in the diagram above. The transaction step is shown below. The customer can make a transaction only if the limit granted is greater than the purchase amount.
|
|
Request Json query
{
"terms_url": "https://mokka.ro/landings/demostore/",
"callback_url": "https://shop.example.com/revo/decision",
"checkout_url": "https://shop.example.com/revo/checkout",
"redirect_url": "https://shop.example.com/revo/redirect",
"authorized_client": true,
"primary_phone": "654456546",
"primary_email": "john.connor@gmail.com",
"skip_result_page": true,
"current_order":
{
"order_id": "120R",
"amount": 51000.0,
"tax_amount": 0.0,
"discount_amount": 0.0,
"prepayment_amount": 1000.0,
"valid_till": "21.07.2018 12:08:01+03:00"
},
"person":
{
"first_name": "John",
"surname": "Connor",
"patronymic": "",
"birth_date": "15.01.1975"
},
"cart_items":
[{
"SKU": "441R",
"name": "Samsung Note 8",
"price": 48000.0,
"tax_price": 0.0,
"quantity": 1,
"quantity_unit": "pcs",
"category": "Phone"
},
{
"SKU": "530C",
"name": "Phone cover",
"price": 3000.0,
"tax_price": 0.0,
"quantity": 1,
"quantity_unit": "pcs",
"category": "Accessories"
}],
"delivery_info":
{
"first_name": "Sarah",
"surname": "Connor",
"patronymic": "",
"phone": "654456546",
"email": "sarah.connor@gmail.com",
"type": "Pickpoint",
"address": "McKinley street 1"
},
"additional_data":
{
"previous_url": "https://revo.ru/where-to-buy",
"returning_customer": true,
"bank_card": true,
"last_orders": 2,
"sum_orders": 61000.0,
"same_address": true
},
"client":
{
"first_name": "John",
"surname ": "Connor",
"patronymic": "",
"phone": "654456546",
"email": "john.connor@gmail.com",
"client_id": "654456546",
"registration_date": "11.11.2021",
"data_change_date": "15.11.2021",
"purchases_value": 2,
"purchases_sum": 61000.0,
"first_purchase_date": "11.11.2021",
"last_purchase_date": "11.11.2021",
"uniq_user_phone": "1"
},
"purchase":
[{
"product_name": "Selphone Xiaomi mi 8",
"number": 1,
"product_price": 10000.0
}]
}
terms_url | string | Merchant's landing page URL |
checkout_url | string | Merchant's checkout page URL |
redirect_url | string | URL for redirecting upon clicking the button "Return to online store” in the Mokka form |
callback_url | string | URL for Mokka response with information about client's limit |
authorized_client | bool | Flag which shows if customer is logged in on the merchant's account |
primary_phone | string | Client phone number from merchant's account (without country code) |
primary_email | string | Client email from merchant's account |
current order | object | An object containing information about current order |
order_id | string | Order ID |
term | string | Installments period in months |
amount | int | Total order amount |
tax_amount | float | Tax ammount |
discount_amount | float | Discount ammount |
prepayment_amount | float | The amount already prepaid by the client |
valid_till | string | A period during which the order is considered to be valid |
person | object | An object containing information about the client from merchant's account |
first_name | string | Client name |
surname | string | Client surname |
patronymic | string | Client patronymic |
birth_date | string | Client birth date in dd.mm.yyyy format |
cart_items | array | An array containing information about current order cart |
sku | string | Product ID |
name | string | Product name |
price | float | Product price |
tax_price | float | Tax amount |
quantity | int | Product quantity |
quantity_unit | string | Quantity Unit |
category | string | Product category |
delivery_info | object | An object containing information about the delivery of current order |
first_name | string | Receiver name |
surname | string | Receiver surname |
patronymic | string | Receiver patronomics |
phone | string | Receiver phone number (without country code) |
string | Receiver email | |
type | string | Delivery type. Possible values: store pick-up, pick-up point, registered box, unregistered box courier, shipping company. |
address | string | Delivery address |
additional_data | An object containing additional information. | |
previous_url | string | Previous url client came from |
returning_customer | bool | Flag which shows if customer made a purchase for the last 24 month |
bank_card | bool | Flag which shows if customer made a payment with bank card for the last 24 month |
last_orders | int | Number of all orders client made for the last 24 month |
sum_orders | float | Value of all orders client made for the last 24 month |
same_address | bool | Flag which shows if delivery address is the same as previous |
client | object | An object containing information about the client |
first_name | string | Client name from chekout step |
surname | string | Client surname from chekout step |
patronymic | string | Client patronomics from chekout step |
phone | string | Client phone number from chekout step (without country code) |
string | Client email from chekout step | |
client_id | string | Client ID |
registration_date | string | Date of registration of the client in the format dd.mm.yyyy. |
data_change_date | string | Date of the last change of the client data in the format dd.mm.yyyy. (name, birth date, phone number, email, document) |
purchases_value | int | Number of purchases from successful orders for the last 24 month |
purchases_sum | float | Value of purchases from succesful orders for the last 24 month |
first_purchase_date | string | The date of customer's first purchase in the format dd.mm.yyyy. |
last_purchase_date | string | The date of the customer's last purchase in the format dd.mm.yyyy. |
uniq_user_phone | int | Number of unique clients with primary_phone in merchant's client base |
purchase | An array containing information about 5 previous succesful orders | |
product_name | string | Product name |
number | int | Product quantity |
product_price | float | Purchase cost |
Response example in case of successful authentication.
{
"status": 0,
"message": "Payload valid",
"iframe_url": "https://stage-backend.revoplus.pl/factoring/v1/form/6976174c5b6a1bb089d15b80e0a6afc62d4283fe"
}
Parameter Name | Type | Description |
status | integer | Response code. |
message | string | A short text description of the response. |
iframe_url | string | URL to the generated iFrame. |
Callback parameters
For security, the system sends in the GET parameter signature. Signature is SHA1. hexdigest
(data + secret_key). Data is a callback body.
Callback in case of success order registration.
{
"order_id": "R107356",
"payment_id": "ABC123",
"decision": "approved",
"amount": 2500.00,
"prepayment_amount": 100.00,
"total_amount": 2600.00,
"term": 3,
"client":
{
"primary_phone": "654456546"
"email": "john.connor@gmail.com",
"full_name": "John Connor",
"first_name": "John",
"surname": "Connor",
"patronymic": ""
},
"schedule":
[{
"date": "2018-01-01",
"amount": 2933.33
},
{
"date": "2018-02-01",
"amount": 2933.33
},
{
"date": "2018-03-01",
"amount": 2933.33
}]
}
order_id | string | Unique order number. Maximum 255 characters. A unique random string can be used. | ||
payment_id | string | Unique payment identification. Maximum 255 characters. | ||
decision | string | Decision on instalments. In case of positive decision - approved (the order is waiting to be finalized). In case of negative decision - declined . |
||
amount | float | Amount withheld from client's Mokka account. | ||
prepayment_amount | float | The amount already prepaid by the client. | ||
total_amount | float | Total order amount, including prepayment. | ||
term | integer | Installments period in months. | ||
client | object | An object containing information about the client. | ||
primary_phone | string | Client’s phone number consisting of 9 digits (omitting the country code). | ||
primary_email | string | Client’s email. | ||
full_name | string | Client's full name: last name, first name and patronymic diveded by spaces. | ||
first_name | string | Cleint's first name. | ||
surname | string | Client's last name. | ||
patronymic | string | Client's patronymic. | ||
schedule | object | Object containing information about the payment schedule. | ||
date | string | Payment date in yyyy-mm-dd format. |
||
amount | float | Payment amount. | ||
monthly_overpayment | float | Monthly overpayment amount. |
Status method
The Status method allows you to retrieve the current status of the customer's loan decision and the status of the loan process in Mokka. Possible cases with a detailed description are presented in the section below.
Request Json query
{
"order_id": "R107356"
}
Parameter Name | Type | Description |
order_id | integer | Unique order number |
Response example in case when the client has completed the registration process and is awaiting the Partner response
{
"status": 0,
"message": "Payload valid",
"current_order":
{
"order_id": "R107356",
"expired": false,
"status": "hold",
"decision": "approved",
"amount": 4999.0,
"term": 3
}
}
Parameter Name | Type | Description |
Status | integer | Response Code |
Message | string | A short text description of the response. |
current_order |
object |
An object containing information about the order. |
order_id |
string |
Unique order number. Maximum 255 characters. A unique random string can be used. |
expired |
boolean |
Flag showing the current order status (funds withholding). The value is false for valid orders and true for expired orders (valid_till date and time has come). |
status |
string |
Order status information. Possible values: pending, hold, finished, canceled, declined, refunded. |
decision |
string |
Decision on installments. In case of positive decision - approved (the order is waiting to be finalized). In case of negative decision - declined. |
amount | float | Total order amount. |
term | integer | Installments period in months. |
Finish Method
The Finish method is launched by the online store when it is certain that the order can be completed. Then the store sends a request with information about the order number and the amount. This method is very important in the customer lending process and was marked in the diagram during the checkout process. As the moment of completing the loan process. Finalizing an order that has already been expired status will result in execution of `Cancel` method.
{
"order_id": "R107356",
"amount": 6700.00,
"check_number": "ZDDS3123F"
}
Parameter Name | Type | Description |
order_id | integer | Response code. |
amount | float | Amount withheld from client's Mokka account |
check_number |
string |
Fiscal document number according to Partner's system (i.e. receipt number). |
{
"status": 0,
"message": "Payload valid"
}
Parameter Name | Type | Description |
status | integer | Response code. |
Message | String | A short text description of the response. |
Cancel method
The method enables the cancellation of an order placed in the online store by the customer. The process is initiated by the customer when cancelling an order placed on the partner's website.
|
|
Json query example
{
"order_id": "R107356"
}
Parameter Name | Type | Description |
order_id | integer | Unique order number |
Response example in case of successful document upload.
{
"status": 0,
"message": "Payload valid"
}
Parameter Name | Type | Description |
Status | integer | Response Code |
Message | String | A short text description of the response. |
Return method
With this method, the customer can return the goods purchased in the online store.
The process is initiated by the Customer when he/she makes a full or partial return of the purchased goods.
Partial restoration of the customer's limit according to the amount of the refund; Recalculate the payment schedule according to the new purchase amount;
Full restoration of customer limit; Return the balance to the customer (funds already deposited by the customer as an advance payment) |
|
Json query example
{
"order_id": "R001233",
"amount": 2010.00
}
Parameter Name | Type | Description |
order_id | integer | Unique order number |
amount |
float |
Amount to be returned. A return can either be full or partial. |
Json response example in case of successful return
{
"status": 0,
"message": "Payload valid"
}
Parameter Name | Type | Description |
Status | integer | Response Code |
Message | string | A short text description of the response. |
Integration steps
The integration process with Mokka Online API includes the following steps:
- Deployment: initial familiarization and testing of Online API support (usually performed at the partner's test environment).
- Functional Testing: Find and fix errors that may occur when sending and processing requests.
- Placement of marketing materials on the partner's side (must meet the visualization requirements set by the company).
- Launch: receive the merchant settings from the Mokka integration manager and start accepting payments.
Implementation
At this stage you should familiarize yourself with the procedure of using Online API, the rules of generating and sending requests to the service and prepare the texts of the requests for debug testing.
Testing and debugging requests during integration is done on the test server: https://stage-backend.revoplus.pl/— POLAND
https://stage-backend.mokka.ro/— ROMANIA
Test parameters
To test Online API, you need to get the test parameters from mokka integration manager:
- identifier - store_id
- key - secret_key
Online API is implemented using HTTPS based on JSON requests. Requests are sent using the POST method.
API methods
Method | Name | Description of the Request | API URL |
POST | Registration | Granting of a Limit | factoring / v1 / limit / auth |
POST | Checkout | Transaction in the Online Shop | factoring / v1 / precheck / auth |
POST | Finish | Finalizing transactions | factoring / v1 / precheck / finish |
POST | Limit | Downloading the customer's current limit | api / external / v1 / client / limit |
POST | Status | Download order status | factoring / v1 / status |
POST | Schedule | Downloading a payment schedule | factoring / v1 / schedule |
POST | Change | Change in the contract amount | factoring / v1 / precheck / change |
POST | Cancel | Cancellation of an order | factoring / v1 / precheck / cancel |
POST | Return | Return of order (full or partial) | factoring / v1 / return |
Authorization
Every API request requires authorization. To process the request, you must generate an authorization header that contains:
- https://stage-backend.revoplus.pl/ – the base URL of the service (test);
- store_id – the unique identifier of the store received from Mokka;
- signature – digital signature generated from JSON request text and secret_key.
Procedure for generating a digital signature
- Prepare a valid JSON request;
- Transform the request text by adding an extra "\" before each " and "\" character;
- Add the secret key received from Mokka to the result;
- Apply the SHA1 encryption algorithm to the last line.
- The result is a 40-character digital signature to be added to the request header.
Example of creating a digital signature on ruby
- The content of the JSON request is written into the variable data :
data = "{"order_id": \"FACTPRECHR152632\", \"amount\": \"8300.00\"}"
- The variable secret_key contains the name of the key:
secret_key = "9fff8c602b08b00323567be0001480f6"
- The signature is formed into a signature variable:
signature = Digest::SHA1.hexdigest(data + secret_key)
signature = "347e8cff27d30b5200c8b32def4365ebbf4270d0"
Once the signature has been generated correctly, you can send the request to our system by adding it to the request header.
Here is a sample query:
- In the request URL field, enter a header with your digital signature and the store ID you received.
POST https://stage-backend.revoplus.pl/ {API URL}?store_id=01&signature=34738cff27d30b5200c8b32def4365ebbf4270d0
- API URL - This URL from API Methods API URL
- In the Body section, enter the text of the callback received in the earlier step, after running the puts command.
{"callback_url": "https://shop.ru/revo/decision", "redirect_url": "https://shop.ru/revo/redirect", "primary_phone": "9267654321", "primary_email": "LOGIN@MAIL.com", "current_order":{"order_id": "R001234"}}
API Tests
Now that you have established proper communication with Mokka API, you can test our Environment. The test scenario below gives you an in-depth look at the purchasing process. API testing procedure
- Obtaining a customer limit using the Register method;
- Making a purchase using the Checkout method;
- Cancelling a completed order using the Cancel method;
- Return an order using the Return method.
When sending test requests, it is recommended to pass parameters that meet the following conditions:
- Phone number – must start with a 333 prefix, so text messages are not sent to real people
- The confirmation code and pin code is 1111 (the code for testing on the production Server is set in the partner settings).
Additional Documentation with sample requests is in https://docs.mokka.pl/ The scenarios for each stage are described below.
Obtaining the Limit – Registration
Steps | Result |
1. Submitting a Registration Request | Getting a link to an iframe |
2. Calling iframe_url | Displaying iframe |
3. Filling out the form with non-existent data in the database (phone numbers in the format +7 (888) 221XXXX) and pressing the "Send SMS" button |
Go to the stage of confirmation by SMS code |
4. Enter the confirmation code: 8888 |
Displaying the result screen with information about the unavailability of the installment service |
Obtaining a Limit – Existing Customer
Steps | Expected Result |
1. Submitting a Registration Request | Getting a link to an iframe |
2. Calling iframe_url | Displaying iframe |
3. Filling in the form with non-existent data in the database (phone numbers in the format +7 (888) 22XXXXX) and pressing the "Send SMS" button |
Go to the stage of confirmation by SMS code |
4. Enter the confirmation code: 8888 |
Displaying the result screen with information about the approved limit |
Checkout method with an existing customer
Steps | Result |
Sending a transaction request | Answer with Link |
Calling an iframe from a Link | Display of iframe |
Entering the phone number of an existing customer |
SMS Pin request, schedule display |
Acceptance of the payment schedule | Transaction summary |
Checkout method with a new customer
Steps | Result |
Sending a Checkout Request | Getting a link to an iframe |
2. Calling iframe_url | Displaying iframe |
3. Pressing the "Enter" button, entering the phone number and pressing the "Send SMS" button | Go to the stage of confirmation by SMS code |
4. Enter the confirmation code: 1111 |
Display of the result screen with information about the approved advance and the payment schedule |
5. Sending a Finish request with the attached check.pdf file. | Receiving a positive response (status = 0) |
Cancellation of an order
Steps | Expected Result |
1. Sending a Checkout Request | Getting a link to an iframe |
2. Calling iframe_url | Displaying iframe |
3. Pressing the "Enter" button, entering the phone number and pressing the "Send SMS" button |
Go to the stage of confirmation by SMS code |
4. Enter the confirmation code: 1111 |
Display of the result screen with information about the approved advance and the payment schedule |
5. Sending Request Cancel |
Receiving a positive response (status = 0) |
6. Sending Status Request |
Receiving response: decision = approved status = canceled |
Return of an order
Steps | Result |
1. Sending a Return request with order_id = order number from clause 2.1 and amount = total cost of the order | Receiving a positive response (status = 0) |
2. Sending Status Request |
Receiving response: decision = approved status = refunded |
If the details of an existing user are entered, the current limit of that user should appear. Special clients number for testing:
- 333 XXX 610 – Rejection of application (blocked client)
- 333 XXX 630 – Rejection of application (client limit it’s not enough)
- 333 XXX 681 – Rejection of application (overdue client)
- 333 XXX XXX – Acceptance of application
Possible error codes
The code |
Message |
Description |
0 | Payload valid | All OK |
10 | JSON decode error | Invalid Request |
20 | order_id missing | Order_id not specified |
21 | Wrong order_id format | Invalid order_id format |
22 |
Order exists |
An order with the given order_id already exists and is finalized |
23 |
Order expired |
An order with the given order_id has already expired |
24 |
Order with specified ID not found | The order with the specified order_id was not found |
30 |
Wrong order amount format | Amount is not in the correct format (decimal places are required) |
31 |
Wrong order prepayment amount format |
Prepayment amount is not in the correct format (decimal places must be specified) |
32 | Order amount is different from the amount specified before |
The order amount indicated during finalization differs from the amount for which the order was made. Finalization not completed |
33 |
Order amount is outside of tariff limits |
The amount of the application is not included in the range set in the partner's tariff. Application not created |
34 |
Order term value is wrong |
An incorrect value of the term for the maturity of the advance payment is specified (there is no such tariff) |
35 | Order prepayment amount is wrong |
The prepayment amount is the amount |
40 | Order callback_url missing |
Callback_url not specified |
41 | Order redirect_url missing |
Redirect_url not specified |
50 | Store ID is missing | Store_id not specified |
51 | Store not found | No store found with the specified store_id |
60 | Signature missing | No digital signature specified |
61 | Signature wrong | The specified digital signature is invalid |
62 | Error saving file | Error saving file |
70 |
Phone number is different | The phone number is different from the one specified in the application |
71 |
Client has not enough limit | The client does not have enough funds to pay in parts of the order |
80 |
Unable to finish – order is already finished / canceled | Unable to finalize the order – the order with the specified order_id has already been finalized or canceled |
81 |
Unable to cancel – order is already finished / canceled |
Unable to cancel the order – the order with the specified order_id has already been finalized or canceled |
82 |
Unable to change – order is already finished / canceled |
Unable to change the order – the order with the specified order_id has already been finalized or canceled |
90 |
Cart items are missing |
Unable to change the application – the information about the basket was not transmitted |
100 | At the moment, the server cannot process your request | In all other cases |
110 |
Invalid time format value |
Invalid order validity format valid till |
404 |
Not found |
The connection must be made using the HTTPS protocol |
At this stage, Mokka marketing materials are published on the site. There are certain requirements for the provision of the Mokka service on the partner's side. During the integration, it is necessary to:
Place the item "Mokka - payment in advance" among the payment methods. Buyers have the option to receive a loan from Mokka and pay immediately.
Marketing Materials can you see on:
- Romania version demo.mokka.ro
- Polish version demo.mokka.pl/
After pressing: Send Request Order after selecting payment from Mokka
- Place a banner on the home page opening a form through which the customer can register and find out the amount of advance available to him without leaving the store.
When pressed: Sends a registration request when the banner is clicked.
- Customize the display of the broken price on the tab of each product. The broken price will show the customer the amount of monthly payment when they purchase the item using the down payment.
After hitting the mokka banner: Send a registration request to Mokka
- Place the Mokka payment system logo in the footer of your site (bottom of pages).
- Add a Mokka landing page. On the landing page, the customer can read the detailed terms and conditions, register and find out the amount of down payment available to them, as well as get answers to frequently asked questions. The content of the landing page is provided in the form of an iframe.
After clicking: Opens the Mokka page after clicking on an element.
- Add information about the possibility to use Mokka in the "Delivery & payment" section (or similar). In addition, partner's employees who work with customers should read the Mokka Terms of Service listed at https://mokka.pl/pomoc/.
- You can see what the finished solution looks like at www.demo.mokka.
Integration Summary
This is a checklist of your implementation Online API
Test Connection with Mokka Online API.
Get Credential for Authentication on Mokka Online API.
Test Authorization with Mokka Online API.
Test Main Method.
Check all business processes for obtaining a Limit, Buy with Mokka, Cancel payment, and Return partial or full of your order.
Test the bad scenario with block, overdue and no limit clients, with special phone numbers.
Add Mokka Marketing Materials into your order section.
Create a demo account and provide username and password with a link to Mokka on your own environment, so that we can audit and test your implementation.