Airwallex logo

Desktop/Mobile Website Browser

Accept Maxima cash payments on your website by redirecting shopper to Maxima payment instructions. See checkout process below:

  1. On the merchant’s checkout page, the shopper selects to pay at a Maxima store
  2. The shopper is redirected to a page where they receive a payslip containing a barcode. They can download the payslip and print it out
  3. The shopper takes the payslip to a Maxima store and pay with cash
  4. The payment is confirmed

Step 1. Initialize a Payment Intent

Create a PaymentIntent object with a request_id, amount, currency and a merchant_order_id from your backend server.

https://pci-api.airwallex.com/api/v1/pa/payment_intents/create \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer your_bearer_token \
  -d '{
    "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",
    "amount": 20,
    "currency": "EUR",
    "merchant_order_id": "85d7b0e0-7235-11ea-862e-9f6aa1adfca6"
    "return_url": "https://www.airwallex.com"
  }'

Step 2. Get available payment methods

To be able to display Maxima as a payment option on your checkout page, you need to get available payment methods from Airwallex API.

When the PaymentIntent is created, send a GET request with parameters country_code, transaction_currency, transaction_mode to API endpoint /api/v1/pa/config/payment_method_types to query for a list of available payment method based on the information provided. The response will also contain the required fields and necessary resources of each payment method for you to display them on your page.

Request:

/api/v1/pa/config/payment_method_types?transaction_currency=EUR&transaction_mode=oneoff&country_code=LT

Response: Render payment methods in items to show all available payment methods to the shopper at checkout page.

{
    "has_more": false,
    "items": [
        {
            "name": "maxima",
            "display_name": "Maxima",
            "transaction_mode": "oneoff",
            "flows": [],
            "transaction_currencies": [
                "*"
            ],
            "country_codes": [
                "*"
            ],
            "resources": {
              "logo_url": "",
              "has_schema": true // default is true
            },
            "active": true
        },
				...
    ]
}
Note for available payment methods:

Alternatively, you can maintain available payment methods and corresponding resources locally on your server if you do not want to use this API endpoint. However, we highly recommend you get available payment methods dynamically from this API to avoid any trouble when payment method information or resources get updated.

Step 3. Redirect to Maxima payment instructions to complete payment

When a shopper selects to pay with Maxima on their desktop/mobile browser, call the following API endpoints to get the URL which you can use to redirect the shopper to Maxima payment page to complete the payment.

  1. Obtain URL from Airwallex and redirect shopper to Maxima

Request:

https://pci-api.airwallex.com/api/v1/pa/payment_intents/{id}/confirm \
  -H 'Content-Type: application/json' \
  -H 'client-secret: Ss3thJHPE6TyI4r-8BJFlqNz1mA7DblVuN0c8GOthnchp7Sf-_JuQnuX3sqzv7_0EiTMOs2kcGopFrMoFC0w7IzPCErJ1a0P7sFnpwB6uz-H2h_6rDhhSd2tKJF-l2myVOXQV4Zou3s_OsX6thLiUKI=" \
  -d '{
    "request_id": "ed11e38a-7234-11ea-aa94-7fd44ffd1b89",
    "payment_method":
    {
      "type": "maxima",
      "maxima": {
        "shopper_name": "first_name last_name",
      }
    }
  }'

Response: Render the value of url to redirect shoppers to Maxima.

{
   "next_action": {
       "type": "redirect",
       "method": "GET",
       "url": "https://r3.girogate.de/ti/simmaxima?tx=957024256&rs=Yhbs8CJZjTkWjMDh3g7YGeuhqBUkIzwF&cs=1b87641dac985e466dabf882a4219e4e0853ab00cc64fb4958d4d7053087efcd"
  }
}
  1. Wait for notification from Airwallex

Airwallex will notify you on the payment result asynchronously via the webhook API. Please refer to webhook documentation to set up your webhook accordingly. Although subscribing to different events is optional, it is recommended to at least subscribe to the payment_intent.succeeded which indicates that the shopper has successfully paid for the order via Maxima.

  1. Query the PaymentIntent status

You may also query the status of a payment anytime via the PaymentIntents API

    GET /payment_intents/{id}