Independent Pages
This document covers all services for independent pages, including the requests and responses associated with these services.
NOTE
Authenticated Endpoints
Accessing authenticated endpoints requires users to establish a session through Session Authentication. To do this:
- Users must log in using their credentials (e.g., username and password) via a designated authentication endpoint.
- Upon successful login, the server will generate and return a session cookie to the client.
- This session cookie must be included in subsequent API requests as part of the headers. The session cookie serves as proof of authentication and ensures secure access to protected resources.
POST
Order Note Page
This page is used to add notes for orders.
Path: https://{commerce_url}/orders/checkout/?page=OrderNotePage
Example Request
In order to add notes to the order, the "notes" field needs to be included in the request. This field should contain the specific note that user want to add to the order.
import requests
url = "https://{commerce_url}/orders/checkout/?page=OrderNotePage"
payload = 'notes=my%20order%20note%20is...'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The notes are added to the pre_order
field in the response that is returned after the request is sent.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order":
{
"notes": "my order note is..."
}
}
POST
Gift Box Index Page
This page is called before the Gift Box Page to check the validity of the settings. After performing the necessary checks, it recommends the Gift Box Page as the next page.
Path: https://{commerce_url}/orders/checkout/?page=GiftBoxIndexPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=GiftBoxIndexPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
In the context list, the next step is returned as the GiftBoxPage.
{
"context_list": [
{
"page_context": {
"price": "10.90"
},
"page_name": "GiftBoxPage",
"page_slug": "giftboxpage"
}
],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {}
}
POST
Gift Box Page
The gift box field is added to the preorder, and it specifies whether there are options available to add to the gift box.
Path: https://{commerce_url}/orders/checkout/?page=GiftBoxPage
Example Request
Fields such as note
, gift_video
, and gift_video_notification_sent
are included in the request to determine the specifications of the gift box.
import requests
url = "https://{commerce_url}/orders/checkout/?page=GiftBoxPage"
payload = 'note=it\'s%20my%20note&gift_video=false&gift_video_notification_sent=false'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The sent fields (note
, gift_video
, gift_video_notification_sent
) are added to the gift_box
field in the pre_order.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"gift_box": {
"note": "it's my note.",
"gift_video": false,
"gift_video_notification_sent": false,
"price": "10.90"
}
}
}
POST
Delivery Bags Page
The delivery bags products are calculated and added to the preorder.
Path: https://{commerce_url}/orders/checkout/?page=DeliveryBagsPage
Example Request
To perform the operation for a specific product, it is necessary to include the product SKU field in the request. This allows for identification of the product for which the operation will be performed.
import requests
url = "https://{commerce_url}/orders/checkout/?page=DeliveryBagsPage"
payload = 'product=product.sku'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The bags_fee
and bags
information are returned in the pre_order
.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"bags_fee": ""
"bags": [
{
"pk": 3803,
"name": "Antoınette Tatlı Bıçağı",
"sku": "1KBICK0009",
"base_code": "1KBICK0009",
"attributes": {
},
"attribute_set": 7,
"attributes_kwargs": {},
"extra_attributes": {},
"productimage_set": [],
"price": "10.90",
"in_stock": false,
"currency_type": "try",
"retail_price": "27.25",
"unit_type": null,
"absolute_url": "/product/3803/",
"productvideo_set": [],
"product_type": "1",
"price_type": "default",
"form_schema": null,
"is_ready_to_basket": false,
"stock": null,
"data_source": null
},
]
}
}
POST
Reward List Page
Queries the available rewards can be used by retrieving the credit card information.
Path: https://{commerce_url}/orders/checkout/?page=RewardListPage
Example Request
To list the rewards, provide the card information (card_number
, card_year
, card_month
, card_cvv
).
import requests
url = "https://{commerce_url}/orders/checkout/?page=RewardListPage"
payload = 'card_number=03948590328570&card_year=30&card_month=03&card_cvv=234'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The reward information that is compatible with the provided card information is returned in the page_context
, and the next page will be the RewardSelectionPage
where points can be selected.
{
"context_list":[
{
"page_context":{
"rewards":[
{
"amount":"1234.00",
"type":"general"
}
]
},
"page_name":"RewardSelectionPage",
"page_slug":"rewardselectionpage"
}
],
"template_name":"orders/checkout.html",
"errors":null,
"pre_order":{
"rewards": []
}
}
POST
Reward Selection Page
When a POST request is sent to this page, the card and bank compatible rewards are used.
Path: https://{commerce_url}/orders/checkout/?page=RewardSelectionPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=RewardSelectionPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The reward to be used is selected and added to the selected_rewards
and pre_order
fields.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"selected_rewards": "",
}
}
POST
Coupon Selection Page
This method is used to add or remove coupons from the pre-order.
Path: https://{commerce_url}/orders/checkout/?page=CouponSelectionPage
Example Request
To add or remove coupons from the pre-order, users need to specify the coupon name and the action to be applied. For example, to add a coupon named "A", user would use the action of adding. Similarly, to remove a coupon named "B", you would use the action of removing.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CouponSelectionPage"
payload = 'coupon=coupon-name&action=add'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
Following the applied process, the list of coupons is added to the pre_order
, and the coupons are checked from this list.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"coupons": ["coupon-name"]
}
}
POST
Order Selection Page
By adding an extra_field in the order, users can utilize its benefits.
Path: https://{commerce_url}/orders/checkout/?page=OrderSelectionPage
Example Request
The schema and other relevant details (data_type
, key
, etc.) must be sent in the extra_field.
import requests
url = "https://{commerce_url}/orders/checkout/?page=OrderSelectionPage"
payload = 'extra_field=%7B%22key%22%3A%20%22extra_field%22%2C%20%22label%22%3A%20%22Extra%20Field%22%2C%20%22data_type%22%3A%20%22nested%22%2C%20%22schema%22%3A%20%7B%22foo%22%3A%20%7B%22key%22%3A%20%22foo%22%2C%20%22label%22%3A%20%22Foo%22%2C%20%22required%22%3A%20true%2C%20%22data_type%22%3A%20%22text%22%7D%7D%7D'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The provided information is added to the pre_order
along with the specified extra_field
name.
{
"context_list": [],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"extra_field" :'{ "key": "extra_field", "label": "Extra Field", "data_type": "nested", "schema": { "foo": { \n"key": "foo", "label": "Foo", "required": True, "data_type": "text" } } }\n'
}
}
POST
Campaign List Page
Queries the campaigns suitable for credit cards.
Path: https://{commerce_url}/orders/checkout/?page=CampaignListPage
Example Request
To list the campaigns that are suitable for a specific credit card, card_number
must be sent in the request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CampaignListPage"
payload = 'card_number=03948590328570'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
Inside the page_context
, a list of campaigns is returned, and the next page targeted is the CampaignSelectionPage.
{
"context_list": [
{
"page_context": {
"campaigns": []
}
"page_name": "CampaignSelectionPage",
"page_slug": "campaignselectionpage"
}
],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {}
}
POST
Campaign Selection Page
This page adds the selected campaign to the preorder.
Path: https://{commerce_url}/orders/checkout/?page=CampaignSelectionPage
Example Request
One of the rotating campaigns from the CampaignListPage
should be selected and included in the request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CampaignSelectionPage"
payload = 'campaign='
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
In the response, the campaign that was sent in the request as the selected_campaign
is added to the pre_order
.
{
"context_list": []
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"selected_campaign": ""
}
}
POST
Address Clear Page
Clears the address information written on the preorder.
Path: https://{commerce_url}/orders/checkout/?page=AddressClearPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=AddressClearPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The address information in the pre_order
is cleared, and the next page directed is the AddressSelectionPage
.
{
"context_list": [
"page_context": {
"addresses": [],
"country": {}
}
"page_name": "AddressSelectionPage",
"page_slug": "addressselectionpage"
]
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
...
}
}
POST
Checkout Provider Index Page
The list of providers that can be used is returned.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderIndexPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderIndexPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The list of checkout_providers
is returned in the page_context
, and the CheckoutProviderSelectionPage
is called to enable the selection of a checkout from this list.
{
"context_list": [
{
"page_context": {
"checkout_providers": [
{
"pk": 1,
"name": "Akifast",
"slug": "akifast"
}
]
},
"page_name": "CheckoutProviderSelectionPage",
"page_slug": "checkoutproviderselectionpage"
}
],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"checkout_provider_process_started": True
}
}
POST
Checkout Provider Selection Page
The customer is given the option to choose which checkout provider to use on this page.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderSelectionPage
Example Request
The ID of one of the providers returned for the CheckoutProviderIndexPage
is selected and included in the request with the checkout_provider
field.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderSelectionPage"
payload = 'checkout_provider=provider.id'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The redirect_url
is returned in the page_context
, and this URL is saved in the pre_order
as remote_redirect_url
.
{
"context_list": [
{
"page_context": {
"redirect_url": "https://sandbox.akifast.com/api/v1/hpp?session_token=10dedd46-9f3d-4273-8220-d0f51975ca1c&transaction_token=uDV2wuZCBKOxvbBPSGyS%2F8qPbRZgyVcuDLVGU43%2B3vYrS7kXzlkkakdKTMrZ2VpWwPpIO0oHlEeQkIbZWw7I3g%3D%3D"
},
"page_name": "CheckoutProviderAddressSelectionPage",
"page_slug": "checkoutprovideraddressselectionpage"
}
],
"template_name": "orders/checkout.html",
"errors": null,
"pre_order": {
"remote_redirect_url": "https://sandbox.akifast.com/api/v1/hpp?session_token=10dedd46-9f3d-4273-8220-d0f51975ca1c&transaction_token=uDV2wuZCBKOxvbBPSGyS%2F8qPbRZgyVcuDLVGU43%2B3vYrS7kXzlkkakdKTMrZ2VpWwPpIO0oHlEeQkIbZWw7I3g%3D%3D",
}
}
POST
Checkout Provider Address Selection Page
This is the page where the user selects the address in Akifast.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderAddressSelectionPage
Example Request
The billing_address
, shipping_address
, session_token
, and basket_id
fields should be sent based on the selected address.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderAddressSelectionPage"
payload = 'billing_address=%7B...%7D&shipping_address=%7B...%7D&session_token=token&basket_id=basket.id'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
A new redirect_url is returned in the page_context as the response.
{
"context_list": [
"page_slug": "checkoutprovideraddressselectionpage",
"page_name": "CheckoutProviderAddressSelectionPage",
"page_context": {
"redirect_url": "",
}
]
}
POST
Checkout Provider Shipping Option Page
The available shipping companies are listed when the user selects an address in Akifast.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderShippingOptionPage
Example Request
The request should include the basket_id
, conversation_id
, and language
fields in order to list the available shipping companies.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderShippingOptionPage"
payload = 'basket_id=basket.id&conversation_id=conversation.id&language='
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The shipping_options
response is returned with the shipping_options
list in the page_context
.
{
"context_list": [
{ "page_context":
{
"shipping_options": {
...
},
}
POST
Checkout Provider Agreement List Page
The page displays contract titles.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderAgreementListPage
Example Request
The previously sent information (basket_id
, session_token
, shipping_option_key
, shipping_address
, billing_address
) needs to be sent again on this page. Additionally, include the fields code
and user
in this information.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderAgreementListPage"
payload = 'billing_address=%7B...%7D&shipping_address=%7B...%7D&session_token=token&basket_id=basket.id&shipping_option_key=shipping.pk&user=%7B...%7D&code='
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
In the response, the agreements
field is returned within the page_context
.
{
"context_list": [
{ "page_context":
{
"agreements": {
...
}
}
}
]
}
Checkout Provider Notification Page
The page is sent to the shop side for order creation after the payment is received on the Akifast side. The request includes all the necessary information for order creation.
POST
Checkout-Provider-Notification-Page
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderNotificationPage
Example Request
To complete a post-negotiation transaction, send the following fields in the request: agreements
, conversation_id
, payment_info
, transaction
, card_info
, shipping_address
, akifast_user
, and is_successful
.
{
"agreements": True,
"conversation_id": "",
"payment_info": {},
"transaction": {},
"card_info": {},
"shipping_address": {},
"billing_address": {},
"akifast_user": {},
"is_successful": True
}
Example Response
After sending the required information, the page_context
returns the following fields: code
, text
, and agreement_body
.
{
"context_list": [
{ "page_context":
{
"code": "",
"text": "",
"agreement_body": ""
}
}]
}
POST
Checkout Provider Thank You Page
After the order is created, a return_url
is generated within the Akifast application. This URL serves as a dynamic address for the thank you page, indicating that your order has been successfully approved.
Path: https://{commerce_url}/orders/checkout/?page=CheckoutProviderThankYouPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=CheckoutProviderThankYouPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
The page_context
returns the return_url
, and the user is redirected to that URL.
{
"context_list": [
{ "page_context":
{
"return_url": "https://...",
}
GET
Thank You Page
The thank you page is shown to the user after the order is completed.
Path: https://{commerce_url}/orders/checkout/?page=ThankYouPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=ThankYouPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Example Response
In the response, a redirect_url
is returned which redirects the user to the ThankYouPage
.
{
"context_list": [
{
"page_context":
{
"redirect_url": "https://{commerce_url}/completed/{ORDERNUMBER}",
"order_id": 123,
"order_number": "ON123",
"new_user": false,
"token": "df8a210c-c19d-4497-ad63-494fdea1f1e0",
"campaigns":
[ { "code": "1", "message": "xyz" }, ], }, } ],
"template_name":
"orders/checkout.html",
"errors": null,
"pre_order": {...}
}
}
]
}
POST
Redirect Guard Page
This page provides a control to ensure successful redirection and prevent further redirection.
Redirect-Guard-Page
Path: https://{commerce_url}/orders/checkout/?page=RedirectGuardPage
Example Request
There is no need to include any data in the request. Simply submit an empty request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=RedirectGuardPage"
payload = {}
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
No additional data is returned in the response.
{}
POST
Loyalty Card Page
This page is used to set loyalty point amount.
Path: https://{commerce_url}/orders/checkout/?page=LoyaltyCardPage
Example Request
Include the selected_loyalty_amount
field in the request to indicate the chosen amount.
import requests
url = "https://{commerce_url}/orders/checkout/?page=LoyaltyCardPage"
payload = 'selected_loyalty_amount=100.00'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
Upon sending the request, the response include fields such as loyalty_total_amount
, loyalty_amount
, card_number
, applied_amount
, and loyalty_points_type
. These fields provide detailed information about the transaction. If the operation is unsuccessful, these fields are returned blank.
{
"loyalty_total_amount": "100.00",
"loyalty_amount": "100.00",
"card_number": "5555555555554444",
"applied_amount": "100.00",
"loyalty_points_type": "points_type"
}
POST
Send Barcode SMS Page
This page is used to send barcode SMS to the phone number provided.
Path: https://{commerce_url}/orders/checkout/?page=SendBarcodeSmsPage
Example Request
Include the phone number to which the message is requested in the request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=SendBarcodeSmsPage"
payload = 'phone_number=5XXXXXXXXX'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
No additional data is returned in the response.
{}
POST
Send Checkout URL SMS Page
If a customer does not have a QR reader app and cannot scan the barcode, the checkout URL is sent to them via SMS.
Path: https://{commerce_url}/orders/checkout/?page=SendBarcodeSmsPage
Example Request
Include the phone number to which the message is requested in the request.
import requests
url = "https://{commerce_url}/orders/checkout/?page=SendBarcodeSmsPage"
payload = 'phone_number=5XXXXXXXXX'
headers = {
'x-requested-with': 'XMLHttpRequest',
'Cookie': 'osessionid=<session_id>',
'Content-Type': 'application/x-www-form-urlencoded'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Example Response
No additional data is returned in the response.
{}