Overview
Introduction
This API is intended for EasyProcess + IDEM Merchants who want to manage their account and customers through a web service.
EasyProcess + IDEM offers a whole new way to request and receive payments.
Thanks to this API, you can now request a single or recurring payment, to a single targeted person, with a given amount.
Once created, all requests will have a unique ID, link, and QRCode. Any person will be able to click on the provided link or scan the QRCode, to be redirected to a dedicated interface of payment.
Better than that, if the request targets a IDEM member and if he has the IDEM App on his smartphone, they will have received a push notification, and they only have to confirm their payment in one click.
The type of request will depend on the defined parameters during the creation.
But the main usage is to request a unique payment to one of your customer, therefor, you have to provide an amount, a first name, a last name, and an email address.
In return, you will have a unique ID to store on your side, and you will have a (unique) link to the payment interface and a link to the QRCode.
During the creation, you can choose to automatically send this information to the customer, otherwise, you will have to give this information by your own (by printing them on an invoice, a ticket, or sending it by email, etc.).
Next, all the payment parts are handled by the customer, either on a dedicated website or in the IDEM App. On your side, you only have to wait for notifications concerning this request (see WebHook).
More common operations like requests, customers, and transactions retrieving are also offered.
About the API
The API is built using restful endpoints and standard HTTP verbs.
- Response codes are used to indicate the status of the message and any error codes.
- JSON is returned on all our API responses, including errors, with a consistent structure for all messages.
- Authentication to the API is performed via token-based auth.
- All API requests must be made over HTTPS. Calls made over plain HTTP will fail.
- All requests must use TLS 1.2 or above.
You can view code examples in the dark area to the right, and you can switch the programming language of the examples with the tabs in the top right (for now only Shell, but more to come!).
Backwards Compatibility
The following changes are considered backwards compatible:
- Adding new API endpoints
- Adding new properties to the responses from existing API endpoints
- Adding optional request parameters to existing API endpoints
- Altering the format or length of IDs
- Altering the message attributes returned by validation failures or other errors
- Sending web hooks for new event types
- Reordering properties returned from existing API endpoints
Testing
EasyProcess + IDEM offers a sandbox environment for simulating API requests to help you test your integration. To use the sandbox environment, you would need a sandbox API token when making calls to the sandbox API endpoints. The sandbox is available on https://gateway.idem-club.info/api/idem, while the live environment is on https://gateway.idem-club.com/api/idem. Therefore, please make sure you are using the right URL and token if you want to make sandbox rather than live requests.
Why use a sandbox environment?
You are allowed to make all the same API requests in the sandbox environment as you are in the live environment. You will also be notified of request status changes via the specified web hook. The key differences are, for sandbox requests:
- Requests do not incur any charges
- Sandbox requests/customers are isolated from the non-sandbox environment. However, note that customer notification mails are still sent out to sandbox customers.
The main reasons for using the sandbox environment are therefore to:
- Verify your system has network connectivity with the EasyProcess + IDEM API
- Verify you are posting all the required data in the right format to the EasyProcess + IDEM API
- Verify you are handling the EasyProcess + IDEM API responses correctly
- Verify your web hook is working
As payments are not real, the sandbox environment is NOT for:
- Processing real payments
- Testing payment response time
Changelog
| Date | Changes |
|---|---|
| 2024-12-16 | Initial release |
| 2025-09-17 | Added JavaScript SDK |
Usage
Endpoints
Please note that the sandbox and the live environment use different domains.
While you are testing, on sandbox, please make sure to use
https://gateway.idem-club.info/api/idem
And while you are live, please use
https://gateway.idem-club.com/api/idem
Authentication
Authentication
curl -s "https://gateway.idem-club.info/api/idem"
-H "Authorization: Bearer your_api_token"
Sample Response
{
"status" : "KO",
"msg" : "Invalid token."
}
Make sure to replace
your_api_tokenwith your API token.
The API uses token-based authentication. You will be provided with a token which must be included in the header of all requests made to the API, in this format:
The API key must be included in all API requests to the server, in a header that looks like the following:
Authorization: Bearer your_api_token
All API requests must be made over HTTPS. Any requests made over HTTP will fail.
You will be provided with both live and sandbox tokens. Requests made with the sandbox token can be used to trial and test our API before going live. Requests made in sandbox-mode will return test data, and no credit will be credited or deducted from your account.
Pagination
Requests that return multiple items, e.g. "list of transactions," will be paginated to 20 items by default.
You can specify further pages using the page_number parameter and specify page size using the per_page parameter.
Pagination details are included in the response.
HTTP Codes
Standard HTTP error codes are returned in the case of a failure.
- 2xx codes indicate a successful message;
- 4xx codes indicate an error caused by information provided by the client;
- and 5xx codes indicate an error on EasyProcess + IDEM’s servers.
The following HTTP codes are used:
| Error Code | Common Name | Meaning |
|---|---|---|
| 200 | Success | The request was processed correctly. |
| 400 | Bad Request | Your request is invalid. |
| 401 | Unauthorized | Your API token is wrong. |
| 403 | Forbidden | You are not allowed to perform the requested action. |
| 404 | Not Found | The requested endpoint could not be found. |
| 405 | Method Not Allowed | You tried to access an endpoint with an invalid method. |
| 406 | Not Acceptable | You requested is miss-formatted. |
| 422 | Unprocessable Entity | General error. See msg and error_code for more info. |
| 429 | Too Many Requests | You're requesting too many payments! Slow down! |
| 500 | Internal Server Error | We had a problem with our server. Try again later. |
| 503 | Service Unavailable | We're temporarily offline for maintenance. Please try again later. |
Payment Request, Request and Transaction
In the system, each attempt to make a payment generates a request, which is assigned a unique ID for identification purposes. This ID must be referenced when communicating with the API.
It is important to note the distinction between a transaction and a request. A transaction represents a payment and is always linked to a request. However, not all requests lead to a transaction. For example, if a request is rejected due to invalid parameters, it will not result in a transaction. Therefore, it is crucial to use the request ID when referencing a payment attempt, rather than relying on a transaction ID.
Additionally, there is a concept of a payment request, which differs from a standard request. Payment requests are created using the "CreatePaymentRequest" function to solicit payment from a customer. A single payment request can generate multiple requests and their corresponding transactions.
To summarize:
- a payment request is a solicitation sent to a customer asking them to make a payment.
- a request is an attempt to process a payment, typically initiated by a
payment requestor a gateway request. - a transaction is the payment resulting from a
request.
WebHooks
Sample Webhook
<form method="post">
<input type="hidden" name="MerchantApiResponse[status]" value="OK">
<input type="hidden" name="MerchantApiResponse[request_id]" value="11122">
<input type="hidden" name="MerchantApiResponse[request_status]" value="completed">
<input type="hidden" name="MerchantApiResponse[tr_id]" value="22782">
<input type="hidden" name="MerchantApiResponse[sub_account_id]" value="8888">
<input type="hidden" name="MerchantApiResponse[ref_id]" value="1234">
<input type="hidden" name="MerchantApiResponse[msg]" value="">
<input type="hidden" name="MerchantApiResponse[info]" value="">
<input type="hidden" name="MerchantApiResponse[phone_number]" value="[email protected]">
<input type="hidden" name="MerchantApiResponse[w_number]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][request_id]" value="11122">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][tr_id]" value="22782">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][user_id]" value="6095">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][ref_id]" value="1234">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][sub_account_id]" value="8888">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][date]" value="2014-03-27 13:19:35">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][refund_date]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][expiration]" value="2014-03-28 01:19:35">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][statement_id]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][refund_statement_id]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][method]" value="gateway">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][amount]" value="5.00">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][description]" value="Order number 1234">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][addinfo]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][status]" value="completed">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][status_infos]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_amount]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_cycles]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_period]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_start]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_end]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_status]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][recurring_info]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][transaction]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][employee_id]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][location_id]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][firstname]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][lastname]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformRequest][email]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_id]" value="22782">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_type]" value="creditcard2merchant">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_from_type]" value="creditcard">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_from_id]" value="*7457">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_from_currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_to_type]" value="merchant">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_to_id]" value="12345678">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_to_currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_requested_original]" value="5.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_requested_currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_amount_requested]" value="5.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_amount_transfered]" value="5.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_amount_total_cost]" value="5.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_amount_refunded]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_change_rate]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees]" value="0.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees_currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees_type]" value="fixed">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees_rate_fixed]" value="0.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees_rate_percent]" value="0.0000">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_fees_level]" value="2">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_date_created]" value="2014-03-27 13:19:35">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_date_updated]" value="2014-03-27 13:19:42">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_date_completed]" value="2014-03-27 13:19:42">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_date_refunded]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_notif_sender]" value="email">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_notif_receiver]" value="none">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_status]" value="completed">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][tr_status_msg]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformTransaction][pay_infos]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][user_id]" value="6095">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][currency]" value="USD">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][email]" value="[email protected]">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][gender]" value="m">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][firstname]" value="John">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][middlename]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][lastname]" value="Doe">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][address]" value="Some street ">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][city]" value="Fort Lauderdale">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][zipcode]" value="33301">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][country]" value="US">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][state]" value="FL">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][phone]" value="33679555985">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][level]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][question1]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][answer1]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][question2]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][answer2]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][question3]" value="">
<input type="hidden" name="MerchantApiResponse[PlatformAccount][answer3]" value="">
<input type="hidden" name="MerchantApiResponse[hash]" value="def2e614513fc7cf0d85c97167fb10ab">
</form>
A WebHook, formerly know as Instant Payment Notification (IPN), is a message service that notifies you of events related to Easy Process transactions.
You can use it to automate back-office and administrative functions, such as fulfilling orders, tracking customers, and providing status and other information related to a transaction.
IPN notifies you when an event occurs that affects a transaction. Typically, these events represent various kinds of payments; however, the events may also represent authorizations, frauds management actions, and other actions, such as refunds, disputes, and chargebacks.
IPN is a message service that Easy Process uses to notify you about events. These events include the following:
- Payments
- Refunds
- Rejected request/transaction
- Chargeback
In many cases, events can be generated by the Easy Process Gateway, an Easy Process agent, or by the customer themselves.
You detect and process IPN messages with a listener, sometimes called a handler, which is a script or program that you write, on your side. It waits for messages and passes them to various back-end or administrative processes that respond the messages.
The actions to take when your listener is notified of an event are specific to your needs. Examples of actions you might take when your listener receives an IPN message include the following:
- Trigger order fulfillment or enable media downloads when a check clears or a payment is made
- Update your list of customers
- Update accounting records
- Create specialized “to do” lists based on the kind of event
You will “always” receive the IPN, no matter what the customer does after the transaction. This way IPN enables you to automate your response to events.
Sandbox requests and transactions also trigger webhook notifications.
The Webhook URL can be specified individually for each payment request.
If not specified, the notification URL set in your merchant account will be used.
« When I will receive what and where? »
The most frequently asked question when a merchant integrates Easy Process Payment Button is « When and where I will receive the IPN? ».
The answer is « For the ‘where’, it depends on the provided URL OR on your global settings and for the ‘when’, IPN is sent automatically on all status change. ».
The IPN is sent automatically on the URL you specified, when the status of your transaction is updated (it can be completed, rejected, refunded, or chargeback).
Please note that there is no IPN for canceled transaction. In case of cancellation, the customer will simply be redirected to the URL you provided.
It is important to understand that the IPN is a server-to-server communication and that it does not require an action made by the customer, and it cannot be altered. This way, the IPN is more reliable than the simple “return on website”.
We encourage you to use the IPN to automatically process the transactions and to not trust the “return URL” alone.
Also note that, most of the time, your will receive the IPN before the customer returns to your website, but, in rare case, due to network latency, you may encounter a short delay.
Data sent in the IPN
These data are sent in a POST “array”.
In PHP, for example, you will access these data using $_POST[‘MerchantApiResponse’].
For a better understanding, we can represent these data as an HTML form, like the one on the right.
IP ADDRESSES
All webhook requests will be coming from the following IPs:
Sandbox 18.205.86.169
Production 18.205.86.169
Please make sure that you’ve allowlisted these IPs to receive webhook notifications.
IPN Data
Below are all the parameters of the WebHook / IPN explained.
Root data
| Property | Type | Description |
|---|---|---|
| status | string | Has the value "OK" for successful, "PENDING" for pending transaction or "ERROR" for failure |
| request_id | int | Request ID is the unique ID of the request |
| request_status | string | Request status, it can be 'pending', 'accepted', 'rejected', 'cancelled', 'completed', 'refunded' |
| tr_id | int | Transaction ID is the unique ID of transaction associated to the request |
| sub_account_id | string | Sub Account ID for which you have associated this request |
| ref_id | string | Reference ID is the unique ID you've passed for this request |
| msg | string | Message |
| info | string | Additional information |
| PlatformTransaction | PlatformTransactionType | Easy Process Transaction information associated to a request/transaction |
| PlatformAccount | PlatformAccountType | Easy Process Account information associated to a request/transaction |
| PlatformRequest | PlatformRequestType | Easy Process Request with full information |
| hash | string | Hash code to check the authenticity of the IPN response |
Quick Start
This API is typically used to request a payment from a customer and then wait for the payment to trigger automatic processes on your end.
To get started, you need to call the function to create a payment request.
When you make this call, it's a good idea to provide the customer's complete profile. This way, everything will be pre-filled for them, making the payment process quicker and easier.
At this stage, you can decide whether you want us to send the payment request or if you'd rather share the payment link yourself.
You can control this using the sendmail parameter in the payment request.
On the right (or below on mobile) is what a basic call to this function might look like.
Basic Payment Request Payload
{
"payment_request": {
"amount": "20",
"reference": "823456",
"description_int": "Order #823456 / Customer #123",
"description_pub": "Your order #823456 on https://our.web.site",
"sendmail": true
},
"customer": {
"email": "[email protected]",
"firstname": "Michel",
"lastname": "POIGNANT",
"address1": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
}
}
In this example, the customer will receive an email that looks something like this:

Inviting them to either follow a link or scan a QR code.
If you prefer to communicate this information yourself and have more control over the button URLs, you can add more parameters. (Check them out on the right or below if you're on mobile)
Advanced Payment Request Payload
{
"payment_request": {
"amount": "20",
"reference": "823456",
"description_int": "Order #823456 / Customer #123",
"description_pub": "Your order #823456 on https://our.web.site",
"sendmail": false,
"notify_url": "https://our.web.site/idem/ipn",
"back_url": "https://our.web.site/return/back?ref=923456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=923456",
"paid_label": "Continue to the store"
},
"customer": {
"email": "[email protected]",
"firstname": "Michel",
"lastname": "POIGNANT",
"address1": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
}
}
If you choose to set sendmail to false (the default is true), make sure to share the payment request link with the customer OR redirect them to this link in some way.
Once they open the link, the customer will see an agreement page first, something like this:

Next they will have the payment page, like this:

In this example, please note the "Go to the Store" button, which was specified in the request. You can also note that no additional information is requested from the customer, as all necessary details have already been provided in the request.
Once the payment is made, the customer will see a page like this one:
And, if provided, the customer will be redirected to your paid_url.

At this point, you should have received the webhook at the provided URL. (Please take a look at the webhook example on the right or below if you're on mobile.)
Payment Request Webhook
{
"request_id": "355",
"tr_id": "317",
"order_ref": "923456",
"w_number": "",
"phone_number": "",
"tr_status": "completed",
"tr_amount": "20",
"tr_currency": "USD",
"tr_requested_amount": "20",
"tr_requested_currency": "USD",
"tr_change_rate": "",
"hash": "b8224f277bd79d322651355bbae81aa0",
"MerchantApiResponse": {
"status": "OK",
"request_id": "355",
"request_status": "completed",
"tr_id": "317",
"sub_account_id": null,
"ref_id": "923456",
"description": "Your order #923456 on https://our.web.site",
"msg": null,
"info": null,
"PlatformRequest": {
"request_id": "355",
"pr_id": "17",
"tr_id": "317",
"user_id": "10",
"ref_id": "923456",
"sub_account_id": null,
"key": null,
"date": "2024-12-19 13:15:40",
"refund_date": null,
"refund_amount": null,
"expiration": "2024-12-21 13:15:40",
"statement_id": null,
"refund_statement_id": null,
"method": "gateway",
"type": "creditcard",
"is_pre_auth": null,
"is_recurring": null,
"is_a_cycle": null,
"recurring_id": null,
"currency": "USD",
"amount": "20",
"description": "Your order #923456 on https://our.web.site",
"addinfo": null,
"status": "completed",
"status_infos": null,
"recurring_amount": null,
"recurring_cycles": null,
"recurring_period": null,
"recurring_start": null,
"recurring_end": null,
"recurring_status": null,
"recurring_info": null,
"transaction": null,
"card_present": null,
"employee_id": null,
"location_id": null,
"firstname": null,
"lastname": null,
"email": null,
"Documents": null
},
"PlatformTransaction": {
"tr_id": "317",
"tr_type": "creditcard2merchant",
"tr_from_type": "creditcard",
"tr_from_id": "20",
"tr_from_currency": "USD",
"tr_to_type": "merchant",
"tr_to_id": "12345678",
"tr_to_currency": "USD",
"tr_requested_original": "20",
"tr_requested_currency": "USD",
"tr_amount_requested": "20",
"tr_amount_transfered": "20",
"tr_amount_total_cost": "20",
"tr_amount_refunded": null,
"tr_change_rate": null,
"tr_fees": "0",
"tr_fees_currency": "USD",
"tr_fees_type": "fixed",
"tr_fees_rate_fixed": "0",
"tr_fees_rate_percent": "0",
"tr_fees_level": "0",
"tr_date_created": "2024-12-19 13:15:40",
"tr_date_updated": "2024-12-19 13:15:40",
"tr_date_completed": "2024-12-19 13:15:40",
"tr_date_refunded": null,
"tr_notif_sender": "email",
"tr_notif_receiver": "none",
"tr_status": "completed",
"tr_status_msg": null,
"pay_infos": "57609138"
},
"PlatformAccount": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329",
},
"PlatformPaymentRequest": {
"pr_id": "17",
"pr_code": "763ab528",
"user_id": "10",
"type": "idem",
"creation_date": "2024-12-19 12:50:52",
"validity": null,
"expiration_date": null,
"amount": "20",
"currency": "USD",
"ref_id": "923456",
"description_internal": "Order #923456 / Customer #123",
"description_public": "Your order #923456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"link": "https://gateway.idem-club.info/763ab528",
"qrcode_url": "https://gateway.idem-club.info/files/merchants/12345678/2024/12/763ab528.png",
"notify_url": "https://our.web.site/webhook.php",
"back_url": "https://our.web.site/return/back?ref=923456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=923456",
"paid_label": "Continue to the store",
"status": "completed",
"Documents": null,
"Requests": null
},
"hash": "de560d1f79b3329e16a58c372c72edb3"
}
}
And then, you can process the payment on your side if the PlatformRequest->status is completed.
At any time, you can also check the status of your payment request with the function Retrieve a payment request.
JavaScript SDK
Introduction
The JavaScript SDK provides an easy way to integrate EasyProcess + IDEM payment processing directly into your web application. With just a few lines of code, you can create secure payment forms that handle card processing, 3D Secure authentication, and real-time status updates.
Prerequisites
Contact your sales representative to enable the SDK for your account.
Configuration
Step 1: Enable SDK in Settings
Go to your merchant settings and configure the SDK:
- SDK Key: Define a key/token that will be used to authenticate your requests to the SDK
- Allowed Origins: Specify the origins that are permitted to use the SDK (e.g.,
https://yoursite.com,https://www.yoursite.com)
Make sure to note your Merchant ID (an 8-digit number), as you will need it for initialization.
Quick Start
Basic HTML Setup
Please take a look at the HTML example, on the right or below if you're on mobile.
Basic HTML Setup for the SDK
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Payment Page</title>
<!-- SDK Files (use the correct domain for your environment) -->
<!-- Prod: https://gateway.idem-club.com | Sandbox: https://gateway.idem-club.info -->
<script src="https://gateway.idem-club.com/sdk/v1/sdk.min.js"></script>
<!-- Minimal styling for the SDK -->
<link rel="stylesheet" href="https://gateway.idem-club.com/sdk/v1/sdk.min.css">
<!-- Optional: Your custom styles -->
<style>
#payment-container {
max-width: 400px;
margin: 50px auto;
padding: 20px;
border: 1px solid #ddd;
border-radius: 8px;
}
</style>
</head>
<body>
<div id="payment-container">
<h2>Complete Payment</h2>
<div id="payment-form"></div>
</div>
<script>
// Your JavaScript goes here (see next section)
</script>
</body>
</html>
JavaScript Implementation
Please take a look at the JavaScript example, on the right or below if you're on mobile.
JavaScript SDK Implementation
// Initialize the SDK (environment is inferred from the domain serving the SDK)
var sdk = PaymentSDK.init({
merchantId: '12345678', // Replace with your merchant ID
sdkKey: 'YOUR_SDK_KEY_HERE' // Replace with your SDK key
});
// Create the payment form
var paymentForm = sdk.createPaymentForm({
container: '#payment-form',
// Payment details
amount: 49.99,
currency: 'USD',
orderRef: '1234', // Your reference - must be unique per transaction
// Customer information (required fields)
customer: {
email: '[email protected]',
firstname: 'John',
lastname: 'Doe',
zipcode: '10001',
country: 'US'
},
// Success handler
onSuccess: function(result) {
console.log('Payment successful!', result);
alert('Payment completed! Transaction ID: ' + result.transaction_id);
// Redirect to success page
window.location.href = '/payment-success';
},
// Error handler
onError: function(error) {
console.error('Payment failed:', error);
alert('Payment failed: ' + error.message);
},
// Pending handler (for async processors)
onPending: function(context) {
console.log('Processing payment...');
// SDK automatically handles status updates via SSE
// The form will update when payment completes
}
});
Testing
Sandbox Environment
- Load SDK from the sandbox domain:
https://gateway.idem-club.info/sdk/v1/sdk.min.js - Test cards for synchronous processors:
- Success:
4444333322221111 - Decline: Any other valid card number
- Success:
- Test cards for async processors:
- Success:
4242424242424242 - Decline: Any other valid card number
- Success:
Browser Console
- Open Developer Tools (F12)
- Check Console for any errors
- Verify SDK initialization message
Common Test Scenarios
- Successful payment
- Declined card
- Invalid card number
- Expired card
- Missing required fields
Production Checklist
- Load SDK from production domain (
https://gateway.idem-club.com) - Verify CORS origins are correctly configured
- Test with real payment amounts
- Implement proper error handling
- Add logging for troubleshooting
- Set up webhook endpoints for backend processing
Advanced Features
Debug Logging
Use the optional onLog function to surface SDK internal logs to your console.
Please take a look at the JavaScript example, on the right or below if you're on mobile.
Debug Logging
var sdk = PaymentSDK.init({
merchantId: '12345678',
sdkKey: 'YOUR_SDK_KEY_HERE',
onLog: function() {
// Prefix logs for easy filtering in the console
try {
console.log('[PaymentSDK]', Array.prototype.slice.call(arguments));
} catch (e) {}
}
});
What gets logged:
- SDK initialization details (including domain-inferred environment)
- SSE connection events (open, message, error)
- Status updates received from the stream
- Non-fatal parse or network errors
Handle Async Payments
Please take a look at the JavaScript example, on the right or below if you're on mobile.
Handle Async Payments
onPending: function(context) {
// Show custom loading UI
document.getElementById('loading-message').style.display = 'block';
// Session ID available for status checking
console.log('Session ID:', context.session_id);
// SSE automatically handles updates
// onSuccess or onError will be called when complete
}
IDEM Club Integration
For merchants with IDEM Club integration enabled (m_idem = 1), the SDK automatically handles:
- IDEM user validation
- Automatic token purchase and transfer upon payment completion
- Push notifications to IDEM App users
- One-click payment confirmation for IDEM members
The mr_idem_user_id field will be automatically set when processing payments for IDEM Club members.
Webhook Integration
Do not rely on JavaScript callbacks alone for fulfillment or accounting. Always implement a backend Webhook listener to receive authoritative status updates even if the browser closes or the network drops.
- What it is: Server-to-server notification on status changes (completed, rejected, refunded, etc.)
- Why it matters: More reliable than browser redirects; ensures consistent backend updates
- What to do: Expose a secure endpoint that validates the message and finalizes your order on terminal status
- Learn more: See the Webhooks section in this documentation
Error Codes
| Code | Description | User Action |
|---|---|---|
declined |
Payment was declined | Try different payment method |
attempts_exceeded |
Too many failed attempts | Wait and try again later |
session_expired |
Payment session expired | Refresh page and start over |
idem_user_invalid |
IDEM Club validation failed | Check customer information |
browser_not_supported |
Browser doesn't support SSE | Use modern browser (not IE) |
Troubleshooting
| Issue | Solution |
|---|---|
| "Missing Authorization header" | Check SDK key is correct |
| "Origin not allowed" | Verify domain in sdk_allowed_origins |
| "Session expired" | Payment took too long, refresh page |
| "SDK disabled" | Contact support to enable SDK |
| Form doesn't appear | Check container selector exists |
| SSE connection fails | Ensure CloudFlare or similar is not blocking SSE |
Debugging 400 Bad Request
If calling PaymentSDK.init() results in a 400 Bad Request during POST /api/sdk/auth/token:
- Enable logging - Initialize with
onLogto capture SDK messages - Verify domain/environment - Ensure correct domain (sandbox:
.info, prod:.ai) - Inspect Network tab - Check the request body and response
- Common causes:
- Invalid/missing
merchant_id - Invalid
sdk_keyor key not issued for this merchant - SDK disabled for this merchant
- Origin not allowed (add exact Origin to
sdk_allowed_origins) - Sandbox key used from prod domain (or vice versa)
- Invalid/missing
- Provide
correlation_idto support for faster tracing
Objects / Models
The Response object
Sample Response object
{
"status": "OK",
"msg": "Sample Response",
"payment_request": null,
"customer": null,
"transaction": null,
"request": null,
"requests": [],
"transactions": [],
"data": [],
"per_page": null,
"current_page": null,
"total_items": null
}
| Name | Type | Description | Apply to |
|---|---|---|---|
| status | string | Request status. Can be "OK" or "KO" | all |
| msg | string | Additional info on the status | all |
| payment_request | Payment Request | A payment request | /payment-request/* |
| customer | Customer | A customer | /payment-request/* /request/* /customer/* |
| request | Request | A merchant request / transaction / payment | /request/* |
| payment_requests[] | Payment Request[] | Array of payment requests | /payment-requests/* |
| requests[] | Request[] | Array of merchant requests | /requests/* |
| customers[] | Customers[] | Array of customers | /customers/* |
| data[] | array | Versatile data as array | Future usages |
| per_page | integer | Items per page | /payment-requests/* /requests/* /customers/* |
| current_page | integer | The current page | /payment-requests/* /requests/* /customers/* |
| total_items | integer | The total count of items | /payment-requests/* /requests/* /customers/* |
PlatformPaymentRequestType
| Name | Type | Property | Description |
|---|---|---|---|
| pr_id | integer | unique - readonly | Internal unique ID in the system for this payment request |
| pr_code | char(8) | unique - readonly | Internal unique code in the system for this payment request |
| type | string | mandatory | Type of payment request: 'single', for a one time payment, 'multiple', for multiple payments |
| creation_date | datetime | readonly | The date and time at which the request was made |
| validity | integer | optional | Number of minutes for which the request will be valid |
| expiration | datetime | readonly | Expiration date of the payment request; calculated if validity is provided |
| amount | double | optional | Requested amount for this payment |
| currency | char(3) | optional | Currency used for the requested amount (ex: USD) |
| reference | string | mandatory - unique | Your reference ID (must be unique) |
| user_id | integer | optional | Internal unique ID of a customer in the system. Only filled if the request is linked to an existing account. |
| description_internal | string | optional | Internal description of this request |
| description_public | string | optional | Public description of this request (visible by customer) |
| addinfo | string | optional | Additional infos that you may want to store |
| qrcode_url | string | readonly | Https link to retrieve the QR Code of this request (PNG picture) |
| link | string | readonly | Https link to open in a browser in order to proceed to the payment |
| notify_url | string | optional | URL on which you want to receive the webhook for this request |
| back_url | string | optional | A return URL for the customer, present at any moment on the regular payment page |
| back_label | string | optional | Label for your return URL, default is "Back to store" |
| paid_url | string | optional | A return URL for the customer, present only after a successful payment on the regular payment page |
| paid_label | string | optional | Label for your success return URL, default is "Back to store" |
| status | string | readonly | Payment Request status, can be 'open', 'expired', 'cancelled', 'completed' |
| documents | array | readonly | Array fo associated documents |
| request | array | readonly | Array fo associated requests |
PlatformAccountType
| Properties | Type | Description |
|---|---|---|
| user_id | int | Internal unique ID in the Easy Process system |
| string | Email address – UNIQUE per customer. | |
| gender | string | Gender: 'M' for Male / 'F' for Female. |
| firstname | string | First name |
| lastname | string | Last name |
| address | string | Address |
| city | string | City |
| zipcode | string | Zip/Postal code |
| country | string | Country code (2 chars) |
| state | string | State code (2 chars / for US citizen only) |
| phone | string | Phone number. Used for contact purpose only. |
| birthday | string | Birthday. Format: YYYY-MM-DD |
PlatformRequestType
| Propertie | Type | Description |
|---|---|---|
| request_id | integer | Internal unique ID in the Easy Process system for this request |
| tr_id | integer | Internal unique ID in the Easy Process system for the associated transaction |
| user_id | integer | Internal unique ID of a customer in the Easy Process system |
| ref_id | string | Your reference ID |
| sub_account_id | string | Sub Account ID |
| date | string | Date of the request (format: YYYY-MM-DD HH:MM:SS) |
| refund_date | string | Refund date of the request (format: YYYY-MM-DD HH:MM:SS) |
| expiration | string | Expiration date (format: YYYY-MM-DD HH:MM:SS) |
| statement_id | integer | Statement ID (if transaction has been settled to the merchant) |
| refund_statement_id | integer | Refund statement ID (if transaction has been refunded on a statement) |
| method | string | Request method (api, gateway, terminal) |
| is_recurring | boolean | True if the request has been initiated as a recurring transaction |
| is_a_cycle | boolean | True if the request is part of a recurring cycle |
| recurring_id | integer | Main/parent recurring request ID (filled if $is_a_cycle is true) |
| type | string | Transaction type. Possible values are: "credit card" |
| currency | string | Request currency |
| amount | float | Original requested amount or Initial amount for recurring request |
| description | string | Description |
| addinfo | string | Additional info that you have provided |
| status | string | Request status |
| status_infos | string | Additional info’s on the status |
| recurring_amount | float | Recurring amount |
| recurring_cycles | integer | Number of recurring cycles |
| recurring_period | string | Recurring period ('weeks', 'months', 'years') |
| recurring_start | string | Recurring payment start date (format: YYYY-MM-DD HH:MM:SS) |
| recurring_end | string | Recurring payment end date (format: YYYY-MM-DD HH:MM:SS) |
| recurring_status | string | Recurring status. Possible values are: "pending", "open", "stopped", "terminated" |
| transaction | PlatformTransactionType | Associated transaction |
PlatformTransactionType
| Property | Type | Description |
|---|---|---|
| tr_id | int | Internal unique ID in the Easy Process system for this transaction |
| tr_type | string | Transaction type. |
| tr_from_type | string | Transaction source type. |
| tr_from_id | string | Transaction source id. |
| tr_from_currency | string | The main currency of the source account |
| tr_to_type | string | Transaction destination type. Usually "merchant" |
| tr_to_id | string | Transaction destination id. |
| tr_to_currency | string | Transaction destination currency. |
| tr_requested_original | float | Transaction original requested amount |
| tr_requested_currency | string | Transaction original requested currency |
| tr_amount_requested | float | Transaction converted requested amount (used currency is defined in tr_from_currency) |
| tr_amount_transfered | float | Transaction converted transferred amount (used currency is defined in tr_to_currency) |
| tr_amount_total_cost | float | Transaction total cost including fees (used currency is defined in tr_from_currency) |
| tr_amount_refunded | float | Transaction refunded amount (used currency is defined in tr_from_currency) |
| tr_change_rate | float | Transaction change rate from tr_requested_currency and the tr_from_currency if not the same |
| tr_fees | float | Transaction fees that generally apply to the sender (tr_from_id) |
| tr_fees_currency | string | Transaction fees currency (generally the same as tr_from_currency) |
| tr_fees_type | string | Type of fees ('fixed', 'percent', 'both') |
| tr_fees_rate_fixed | float | Fixed part of the fees |
| tr_fees_rate_percent | float | Variable part of the fees |
| tr_fees_level | int | User level applied to the fees and limits |
| tr_date_created | string | Transaction creation date |
| tr_date_updated | string | Transaction last update |
| tr_date_completed | string | Transaction processing date |
| tr_date_refunded | string | Transaction refund date |
| tr_notif_sender | string | Type of notification sent to the sender |
| tr_notif_receiver | string | Type of notification sent to the receiver |
| tr_status | string | Transaction status ('waiting', 'rejected', 'played', 'refunded', 'loaded', 'confirmed', 'completed', 'cancelled') |
| tr_status_msg | string | Transaction status additional information |
Payment Requests
Create a payment request
Create a payment request
# Standard Request
curl --location 'https://gateway.idem-club.info/api/idem/payment-request/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your_api_token' \
--data-raw '{
"payment_request": {
"amount": "20",
"reference": "623456",
"description_internal": "Order #623456 / Customer #123",
"description_public": "Your order #623456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"sendmail": true
},
"customer": {
"email": "[email protected]",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
},
}'
# Attach a document and provide dedicated URLs
curl --location 'https://gateway.idem-club.info/api/idem/payment-request/create' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer your_api_token' \
--data-raw '{
"payment_request": {
"expiration": "0",
"amount": "20",
"reference": "623456",
"description_internal": "Order #623456 / Customer #123",
"description_public": "Your order #623456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"sendmail": true,
"notify_url": "https://our.web.site/idem/ipn",
"back_url": "https://our.web.site/return/back?ref=623456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=623456",
"paid_label": "Continue to the store"
},
"customer": {
"email": "[email protected]",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
},
"files": [
{
"file_type": "invoice",
"file_name": "invoice.pdf",
"file_desc_int": "Internal desc.",
"file_desc_pub": "Public desc.",
"file_is_public": "1",
"content": "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MSAwIFIgL1R5cGUgL1BhZ2U+PgplbmRvYmoKMTMgMCBvYmoKPDwgPj4KZW5kb2JqCnhyZWYKMCAxNAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMDkgMDAwMDAgbiAKMDAwMDAwMDIwMSAwMDAwMCBuIAowMDAwMDAwNTU0IDAwMDAwIG4gCjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDA2MzkgMDAwMDAgbiAKMDAwMDAwMDAwMCA2NTUzNSBmIAowMDAwMDAwNzA0IDAwMDAwIG4gCjAwMDAwMDA3NDAgMDAwMDAgbiAKMDAwMDAwMzQ1MyAwMDAwMCBuIAowMDAwMDAzNTIwIDAwMDAwIG4gCjAwMDAwMDM2MjcgMDAwMDAgbiAKdHJhaWxlcgo8PCAvSUQgWyA8MjE4ODc5NzRCOUM2NDIwMTkwRjk0QzVEMUE0OUM4MkI+IDwyMTg4Nzk3NEI5QzY0MjAxOTBGOTRDNUQxQTQ5QzgyQj4gXSAvSW5mbyAxIDAgUiAvUERGcGVuVmVyc2lvbiAoMTQuNCkgL1Jvb3QgNyAwIFIgL1NpemUgMTQ+PgpzdGFydHhyZWYKMzY0OQolJUVPRgo="
}
]
}'
Sample Response
{
"status": "OK",
"msg": "Your request has well been sent.",
"code": 200,
"customer": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
},
"payment_request": {
"pr_id": "14",
"pr_code": "fc8adb32",
"user_id": "10",
"type": "idem",
"creation_date": "2024-12-19 05:12:37",
"validity": null,
"expiration_date": null,
"amount": "20",
"currency": "USD",
"reference": "623456",
"description_internal": "Order #623456 / Customer #123",
"description_public": "Your order #623456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"link": "https://gateway.idem-club.info/fc8adb32",
"qrcode_url": "https://gateway.idem-club.info/files/merchants/12345678/2024/12/fc8adb32.png",
"notify_url": "https://our.web.site/idem/ipn",
"back_url": "https://our.web.site/return/back?ref=623456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=623456",
"paid_label": "Continue to the store",
"status": "open",
"documents": [
{
"file_id": "22",
"file_type": "invoice",
"file_name": "invoice.pdf",
"file_mimetype": "application/pdf",
"file_extension": "pdf",
"file_size": "4106",
"file_is_public": "1",
"file_desc_pub": "Public desc.",
"file_desc_int": "Internal desc.",
"file_creation": "2024-12-19 05:12:37"
}
],
"requests": null
}
}
This function is used to request a payment to anyone using IDEM payment methods. See chapter "Introduction" for more details.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | POST | https://gateway.idem-club.info/api/idem/payment-request/create |
| Production | POST | https://gateway.idem-club.com/api/idem/payment-request/create |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| payment_request[reference] | true | Your reference ID (must be unique) |
| payment_request[validity] | false | See the payment request object |
| payment_request[amount] | false | See the payment request object |
| payment_request[currency] | false | See the payment request object |
| payment_request[description_internal] | false | See the payment request object |
| payment_request[description_public] | false | See the payment request object |
| payment_request[additional_info] | false | See the payment request object |
| payment_request[web_hook_url] | false | See the payment request object |
| payment_request[back_btn_url] | false | See the payment request object |
| payment_request[back_btn_label] | false | See the payment request object |
| payment_request[paid_btn_url] | false | See the payment request object |
| payment_request[paid_btn_label] | false | See the payment request object |
| customer[id] | false | See the customer object |
| customer[firstname] | false | See the customer object |
| customer[lastname] | false | See the customer object |
| customer[email] | false | See the customer object |
| customer[phone] | false | See the customer object |
| customer[address] | false | See the customer object |
| customer[city] | false | See the customer object |
| customer[zipcode] | false | See the customer object |
| customer[country] | false | See the customer object |
| customer[state] | false | See the customer object |
| documents[] | false | See the document object |
Retrieve a payment request
Retrieve a payment request
curl -s -G "https://gateway.idem-club.info/api/idem/request/get/14" \
-H "Authorization: Bearer your_api_token" \
--data-urlencode 'documents=false'
Sample Response
{
"status": "OK",
"msg": null,
"code": 200,
"customer": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329",
"birthday": null
},
"payment_request": {
"pr_id": "15",
"pr_code": "5347296f",
"user_id": "10",
"type": "idem",
"creation_date": "2024-12-19 05:24:41",
"reference": "723456",
"validity": null,
"expiration_date": null,
"amount": "20",
"min_amount": null,
"max_amount": null,
"currency": "USD",
"description_internal": "Order #723456 / Customer #123",
"description_public": "Your order #723456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"link": "https://gateway.idem-club.info/5347296f",
"qrcode_url": "https://gateway.idem-club.info/files/merchants/12345678/2024/12/5347296f.png",
"notify_url": "https://our.web.site/idem/ipn",
"back_url": "https://our.web.site/return/back?ref=723456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=723456",
"paid_label": "Continue to the store",
"status": "open",
"documents": [
{
"file_id": "23",
"file_type": "invoice",
"file_name": "invoice.pdf",
"file_mimetype": "application/pdf",
"file_extension": "pdf",
"file_size": "4106",
"file_is_public": "1",
"file_desc_pub": "Public desc.",
"file_desc_int": "Internal desc.",
"file_creation": "2024-12-19 05:24:41"
}
],
"requests": null
}
}
This function is used to retrieve a single payment request by its internal ID.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/payment-request/get/{id} |
| Production | GET | https://gateway.idem-club.com/api/idem/payment-request/get/{id} |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| documents | false | Returns the documents content as a base64 string - Default to false |
Cancel a payment request
Cancel a payment request
curl -s -G "https://gateway.idem-club.info/api/idem/request/cancel/15" \
-H "Authorization: Bearer your_api_token" \
--data-urlencode 'reason='
Sample Response
{
"status": "OK",
"msg": null,
"code": 200,
"customer": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"middlename": "NC",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329",
"birthday": null
},
"payment_request": {
"pr_id": "15",
"pr_code": "5347296f",
"user_id": "10",
"type": "idem",
"creation_date": "2024-12-19 05:24:41",
"validity": null,
"expiration_date": null,
"amount": "20",
"min_amount": null,
"max_amount": null,
"currency": "USD",
"description_internal": "Order #723456 / Customer #123",
"description_public": "Your order #723456 on https://our.web.site",
"addinfo": "Any add. info your want to store",
"link": "https://gateway.idem-club.info/5347296f",
"qrcode_url": "https://gateway.idem-club.info/files/merchants/12345678/2024/12/5347296f.png",
"notify_url": "https://our.web.site/idem/ipn",
"back_url": "https://our.web.site/return/back?ref=723456",
"back_label": "Go to the store",
"paid_url": "https://our.web.site/return/paid?ref=723456",
"paid_label": "Continue to the store",
"status": "cancelled",
"documents": [
{
"file_id": "23",
"file_type": "invoice",
"file_name": "invoice.pdf",
"file_mimetype": "application/pdf",
"file_extension": "pdf",
"file_size": "4106",
"file_is_public": "1",
"file_desc_pub": "Public desc.",
"file_desc_int": "Internal desc.",
"file_creation": "2024-12-19 05:24:41"
}
],
"requests": null,
"reference": "723456"
}
}
This function is used to cancel a pending payment request.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/payment-request/cancel/{id} |
| Production | GET | https://gateway.idem-club.com/api/idem/payment-request/cancel/{id} |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| reason | false | Reason of this cancellation |
List your payment requests
List your payment requests
curl -s -G "https://gateway.idem-club.info/api/idem/payment-requests" \
-H "Authorization: Bearer your_api_token" \
--data-urlencode 'per_page=10' \
--data-urlencode 'status=completed'
Sample Response
This function is used to list / search your payment requests using several filters.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/payment-requests |
| Production | GET | https://gateway.idem-club.com/api/idem/payment-requests |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page_number | integer | See pagination |
| per_page | integer | See pagination |
| period_start | datetime | Format: YYYY-MM-DD HH:MM:SS |
| period_end | datetime | Format: YYYY-MM-DD HH:MM:SS |
| reference | string | See the payment request object |
| status | string | See the payment request object |
| amount | double | See the payment request object |
| operator | char(1) | Operator to apply to the amount parameter. Can be <, > or =. |
| currency | char(3) | See the payment request object |
| customer_id | integer | EasyProcess Customer ID |
| customer_email | string | Customer email |
Merchant Request / Transactions
Retrieve a request
Retrieve a request
curl -s -G "https://gateway.idem-club.info/api/idem/request/get/{id}" \
-H "Authorization: Bearer your_api_token"
Sample Response
{
"status": "OK",
"msg": null,
"code": 200,
"customer": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329",
"birthday": null
},
"transaction": {
"tr_id": "312",
"tr_type": "creditcard2merchant",
"tr_from_type": "creditcard",
"tr_from_id": "20",
"tr_from_currency": "USD",
"tr_to_type": "merchant",
"tr_to_id": "12345678",
"tr_to_currency": "USD",
"tr_requested_original": "30",
"tr_requested_currency": "USD",
"tr_amount_requested": "30",
"tr_amount_transfered": "30",
"tr_amount_total_cost": "30",
"tr_amount_refunded": null,
"tr_change_rate": null,
"tr_fees": "0",
"tr_fees_currency": "USD",
"tr_fees_type": "fixed",
"tr_fees_rate_fixed": "0",
"tr_fees_rate_percent": "0",
"tr_fees_level": "0",
"tr_date_created": "2024-11-26 05:45:17",
"tr_date_updated": "2024-11-26 05:45:17",
"tr_date_completed": "2024-11-26 05:45:17",
"tr_date_refunded": null,
"tr_notif_sender": "email",
"tr_notif_receiver": "none",
"tr_status": "completed",
"tr_status_msg": null,
"pay_infos": "40852791"
},
"request": {
"request_id": "350",
"pr_id": "7",
"tr_id": "312",
"user_id": "10",
"ref_id": "PR8",
"sub_account_id": null,
"key": null,
"date": "2024-11-26 05:45:17",
"refund_date": null,
"refund_amount": null,
"expiration": "2024-11-28 05:45:17",
"statement_id": null,
"refund_statement_id": null,
"method": "gateway",
"type": "creditcard",
"is_pre_auth": null,
"is_recurring": null,
"is_a_cycle": null,
"recurring_id": null,
"currency": "USD",
"amount": "30",
"description": "Pub.",
"addinfo": null,
"status": "completed",
"status_infos": null,
"recurring_amount": null,
"recurring_cycles": null,
"recurring_period": null,
"recurring_start": null,
"recurring_end": null,
"recurring_status": null,
"recurring_info": null,
"transaction": null,
"card_present": null,
"employee_id": null,
"location_id": null,
"firstname": null,
"lastname": null,
"email": null,
"documents": null
}
}
This function is used to retrieve a single merchant request and the associated transaction and customer.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/request/get |
| Production | GET | https://gateway.idem-club.com/api/idem/request/get |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| id | true | The request unique ID |
Cancel a request
Cancel a request
curl --location 'https://gateway.idem-club.info/api/idem/request/cancel/347?reason=Order%20cancelled'
--header 'Authorization: ••••••' \
Sample Response
{
"status": "OK",
"msg": "The request 347 has been cancelled",
"code": 200,
"customer": {
"user_id": null,
"email": null,
"gender": null,
"firstname": null,
"lastname": null,
"address": null,
"city": null,
"zipcode": null,
"country": null,
"state": null,
"phone": null,
"birthday": null
},
"request": {
"request_id": "347",
"pr_id": null,
"tr_id": null,
"user_id": null,
"ref_id": "548754",
"sub_account_id": null,
"key": null,
"date": "2024-11-22 09:58:21",
"refund_date": null,
"refund_amount": null,
"expiration": "2024-11-22 21:58:21",
"statement_id": null,
"refund_statement_id": null,
"method": "gateway",
"type": "creditcard",
"is_pre_auth": null,
"is_recurring": null,
"is_a_cycle": null,
"recurring_id": null,
"currency": "USD",
"amount": "35",
"description": "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi ut elementum enim.",
"addinfo": null,
"status": "cancelled",
"status_infos": null,
"recurring_amount": null,
"recurring_cycles": null,
"recurring_period": null,
"recurring_start": null,
"recurring_end": null,
"recurring_status": null,
"recurring_info": null,
"transaction": null,
"card_present": null,
"employee_id": null,
"location_id": null,
"firstname": null,
"lastname": null,
"email": null,
"documents": null
}
}
This function is used to cancel a pending request.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | POST | https://gateway.idem-club.info/api/idem/request/cancel/{id} |
| Production | POST | https://gateway.idem-club.com/api/idem/request/cancel/{id} |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| id | true | The request unique ID |
Refund a request
Refund a request
curl --location 'https://gateway.idem-club.info/api/idem/request/refund' \
--header 'Content-Type: application/json' \
--header 'Authorization: ••••••' \
--data-raw '{
"id": 332,
"secret_key": "••••••",
"reason": "Cancelled order"
}'
Sample Response
{
"status": "OK",
"msg": "The request 332 has been refunded. The transaction 296 has been refunded",
"code": 200,
"customer": {
"user_id": "57",
"email": "[email protected]",
"gender": "m",
"firstname": "John",
"lastname": "Doe",
"address": "NC ",
"city": "Fort Lauderdale",
"zipcode": "33301",
"country": "US",
"state": "FL",
"phone": "NC",
"birthday": null
},
"transaction": {
"tr_id": "296",
"tr_type": "creditcard2merchant",
"tr_from_type": "creditcard",
"tr_from_id": "116",
"tr_from_currency": "USD",
"tr_to_type": "merchant",
"tr_to_id": "12345678",
"tr_to_currency": "USD",
"tr_requested_original": "48",
"tr_requested_currency": "USD",
"tr_amount_requested": "48",
"tr_amount_transfered": "48",
"tr_amount_total_cost": "48",
"tr_amount_refunded": "48",
"tr_change_rate": null,
"tr_fees": "0",
"tr_fees_currency": "USD",
"tr_fees_type": "fixed",
"tr_fees_rate_fixed": "0",
"tr_fees_rate_percent": "0",
"tr_fees_level": "0",
"tr_date_created": "2024-11-08 08:04:45",
"tr_date_updated": "2024-12-19 08:30:16",
"tr_date_completed": "2024-11-08 08:04:45",
"tr_date_refunded": "2024-12-19 08:30:10",
"tr_notif_sender": "email",
"tr_notif_receiver": "none",
"tr_status": "refunded",
"tr_status_msg": "Transaction refunded on 2024-12-19 08:30:16",
"pay_infos": "93124758"
},
"request": {
"request_id": "332",
"pr_id": null,
"tr_id": "296",
"user_id": "57",
"ref_id": "Order #6924",
"sub_account_id": "1",
"key": null,
"date": "2024-11-08 08:04:44",
"refund_date": null,
"refund_amount": null,
"expiration": "2024-11-10 08:04:44",
"statement_id": null,
"refund_statement_id": null,
"method": "gateway",
"type": "creditcard",
"is_pre_auth": null,
"is_recurring": null,
"is_a_cycle": null,
"recurring_id": null,
"currency": "USD",
"amount": "48",
"description": "Your order at XYZ store",
"addinfo": null,
"status": "completed",
"status_infos": null,
"recurring_amount": null,
"recurring_cycles": null,
"recurring_period": null,
"recurring_start": null,
"recurring_end": null,
"recurring_status": null,
"recurring_info": null,
"transaction": null,
"card_present": null,
"employee_id": null,
"location_id": null,
"firstname": null,
"lastname": null,
"email": null,
"documents": null
}
}
This function is used to refund a request.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | POST | https://gateway.idem-club.info/api/idem/request/refund |
| Production | POST | https://gateway.idem-club.com/api/idem/request/refund |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| id | true | The request unique ID |
| secret_key | true | Your secret key (this is NOT your token) |
| amount | false | Specify the amount to refund - for partial refund only - leave blank for full amount |
| currency | false | Required if the amount to refund is specified |
| reason | true | Reason of this refund |
List your requests
List your requests
curl -s -G "https://gateway.idem-club.info/api/idem/requests" \
-H "Authorization: Bearer your_api_token" \
--data-urlencode "status=refunded"
Sample Response
This function is used to list / search your requests using several filters.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/requests |
| Production | GET | https://gateway.idem-club.com/api/idem/requests |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page_number | integer | See pagination |
| per_page | integer | See pagination |
| pr_id | integer | EasyProcess + IDEM Payment Request ID |
| customer_id | integer | See the request object |
| created_at_start | datetime | Format: YYYY-MM-DD HH:MM:SS |
| created_at_end | datetime | Format: YYYY-MM-DD HH:MM:SS |
| updated_at_start | datetime | Format: YYYY-MM-DD HH:MM:SS |
| updated_at_end | datetime | Format: YYYY-MM-DD HH:MM:SS |
| paid_at_start | datetime | Format: YYYY-MM-DD HH:MM:SS |
| paid_at_end | datetime | Format: YYYY-MM-DD HH:MM:SS |
| refunded_at_start | datetime | Format: YYYY-MM-DD HH:MM:SS |
| refunded_at_end | datetime | Format: YYYY-MM-DD HH:MM:SS |
| requested_amount | double | See the request object |
| requested_currency | char(3) | See the request object |
| fees_amount | double | See the request object |
| fees_currency | char(3) | See the request object |
| received_amount | double | See the request object |
| received_currency | char(3) | See the request object |
| paid_amount | double | See the request object |
| paid_currency | char(3) | See the request object |
| reference | string | See the request object |
| status | string | See the request object |
| operator | char(1) | Operator to apply to the amount parameter. Can be <, > or =. |
Customers
Retrieve a customer
Retrieve a customer
curl --location 'https://gateway.idem-club.info/api/idem/customer/get/?email=demo%40idem.one' \
--header 'Authorization: ••••••'
Sample Response
{
"status": null,
"code": 200,
"msg": null,
"customer": {
"user_id": "10",
"email": "[email protected]",
"gender": "m",
"firstname": "Michel",
"middlename": "NC",
"lastname": "POIGNANT",
"address": "100 Pines Blvd ",
"city": "Pembroke Pines",
"zipcode": "33024",
"country": "US",
"state": "FL",
"phone": "1948417329"
}
}
This function is used to retrieve a single EasyProcess + IDEM customer, by ID or Email.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | GET | https://gateway.idem-club.info/api/idem/customer/get/{id?} |
| Production | GET | https://gateway.idem-club.com/api/idem/customer/get/{id?} |
Query Parameters
| Parameter | Required | Description |
|---|---|---|
| id | conditional | The EasyProcess + IDEM Customer ID |
| conditional | The customer's email (unique in the EasyProcess + IDEM system) |
List your customers
List your customers
curl --location 'https://gateway.idem-club.info/api/idem/customers' \
--form 'country_code="FR"'
Sample Response
This function is used to list/search your customers with some basic filters.
HTTP Request
| Environment | Request type | URL |
|---|---|---|
| Sandbox | POST | https://gateway.idem-club.info/api/idem/customers |
| Production | POST | https://gateway.idem-club.com/api/idem/customers |
Query Parameters
| Parameter | Type | Description |
|---|---|---|
| page_number | integer | See pagination |
| per_page | integer | See pagination |
| created_from | datetime | Format: YYYY-MM-DD HH:MM:SS |
| created_to | datetime | Format: YYYY-MM-DD HH:MM:SS |
| country_code | char(2) | |
| state_code | string | |
| firstname | string | |
| lastname | string | |
| city | string | |
| zipcode | string | |
| phone | string | |
| string |
Postman Collection
To help you get started quickly,
you can find here a Postman collection with the following functions:
- ping
- payment-request/create
- payment-request/get
- payment-request/cancel
- request/get
- request/cancel
- request/refund
- customer/get
More functions will be added in the next releases