Closedeema-logo
    • General
    • Getting started
    • API
    • Place order
    • Get order status
    • Refund
    • Cancel
Menudeema-logo

Get started

About deema
"deema" BNPL is an innovative payment option that allows customers to divide their purchases into smaller, interest-free payments. As a merchant, integrating deema's API into your checkout will make this payment option available to your clientele.

deema API Key
To utilize the API, you will need to register for a merchant account. Once your account is validated, an API key will be emailed to you. This key is necessary to authenticate all API requests and should be handled with utmost confidentiality.

deema merchant dashboard webhooks controls
"deema" also supports webhooks, allowing your server to receive alerts when specific events occur. You can adjust your webhook settings from the merchant dashboard by selecting the webhook tab. Within this tab, you can designate the URL for your webhook.

For additional security, an authorization header can be set for your webhook. This ensures that the webhook call originates from a trusted source. Although this feature is optional, it is highly recommended to ensure the security of your integration.

Security in deema
At "deema", we take security seriously. We follow the Payment Card Industry Data Security Standard (PCI DSS) and other industry-standard security practices to ensure the protection of your customer's payment data. Our robust security measures include secure encryption, tokenization, and regular security audits.

// Production host

https://api.deema.me/

// Sandbox host

https://staging-api.deema.me/

Place order

The deema Place Order API is a RESTful API that enables merchants to place orders on deema service. With this API, merchants can offer their customers the ability to purchase goods or services and defer payment until a later date, while the merchant still receives payment upfront.

Request body schema

amount
required
number
Amount.
currency_code
required
string
ISO 3-Letter Currency Code.
merchant_order_id
required
number
Merchant order ID.
merchant_urls
required
object
Merchant URLs
success
required
string
The success link.
failure
required
string
The faliure link.
POST /api/merchant/v1/purchase

// Request body sample

{
"amount": 1000,
"currency_code": "KWD",
"merchant_order_id": "12341222",
"merchant_urls": {
"success": "https://success_link.com",
"failure": "https://failure_link.com"
}
}

// Response body sample

{
"message": "Purchase created successfully",
"data": {
"order_reference": "8d5b34f9-c694-42cb-ad95-d12f27764aa8",
"redirect_link": "https://staging-pay.deema.me/?order_reference=8d5b34f9-c694-42cb-ad95-d12f27764aa8"
}
}

Get order status

This endpoint allows the merchant to retrieve the status of a specific order, the status can be one of the following:

1. Pending: The order is still pending, and payment has not been processed yet. This status is returned when the order is created, and the payment is yet to be confirmed.
2. Expired: The payment link has expired, and the payment has not been processed. This status is returned when the payment link provided to the customer has expired before the payment was processed.
3. Cancelled: The payment link has been cancelled by the merchant, and the payment has not been processed. This status is returned when the merchant cancels the payment link before the payment is processed.
4. Captured: The payment has been successfully completed, and the merchant can process the order. This status is returned when the payment has been successfully processed, and the merchant can proceed with the order processing.

These order statuses can be useful for the merchant to keep track of the order status and payment status. The API can return the appropriate order status based on the payment status and other factors, allowing the merchant to take appropriate actions based on the order status.

Query parameters

order_reference
required
string
GET /api/merchant/v1/purchase/status

// Response body sample

{
"message": "Order status",
"data": {
"status": "pending"
}
}

Refund

The Refund API allows merchants to make patial refunds for payments that have been previously made by customers.

Request body schema

amount
required
number
PUT /api/merchant/v1/purchase/PURCHASE_ID/refund

// Request body sample

{
"amount": 300
}

// Response body sample

{
"message": "refund released",
"data": null
}

Cancel

The Cancel API allows merchants to cancel payments that have been previously made by customers.

PUT /api/merchant/v1/purchase/PURCHASE_ID/cancel

// Response body sample

{
"message": "cancelled",
"data": null
}