Skip to content

Bancontact

DC Integration option

Payment

Payment Flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. PaySage.io sends a webhook notification with the payment status to the merchant.

Info

This integration option supports only EUR currency.

Request

Send a payment request with the following additional data:

Parameter Type Description
request object
return_url * required
string URL to return the customer to when the transaction is completed.
ip string The customer's IP address.
method object A section of the payment method information.
type * required
string bancontact
customer object A section of the customer details.
first_name * required
string The customer's first name.
last_name * required
string The customer's last name.
email string The customer's email address.
phone string The customer's phone number.
city string The customer's billing city.
address string The customer's billing address.
zip string The customer's billing ZIP or postal code.
birth_date string The customer's date of birth in the ISO 8601 format (YYYY-MM-DD).
Request example
{
    "request": {
        "amount": 500,
        "currency": "EUR",
        "description": "description",
        "test": true,
        "return_url": "https://return.com",
        "language": "en",
        "customer": {
            "first_name": "John",
            "last_name": "Doe"
        },
        "method": {
            "type": "bancontact"
        }
    }
}
Response

Redirect your customer to the URL received as the value of the form.action parameter.

Response example
{
    "transaction": {
        "uid": "e4eaad77-c646-481a-9d3a-a4588aecd35b",
        "type": "payment",
        "status": "pending",
        "amount": 500,
        "currency": "EUR",
        "description": "description",
        "created_at": "2025-04-08T13:50:34Z",
        "updated_at": "2025-04-08T13:50:35Z",
        "method_type": "bancontact",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/e4eaad77-c646-481a-9d3a-a4588aecd35b/f63ef715c6631756d00f141d275cfd1eb5d240ff359af06626accf00b6c5e55f?language=en",
        "payment": {
            "status": "pending",
            "gateway_id": 5220,
            "ref_id": "e3c562bc360df85df898",
            "message": "Transaction was initialized."
        },
        "bancontact": {
            "type": "bancontact"
        },
        "customer": {
            "first_name": "John",
            "last_name": "Doe",
            "email": null,
            "ip": null
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction was initialized.",
        "test": true,
        "language": "en",
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },        
        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "link-to-payment-page",
            "method": "GET",
            "fields": []
        }
    }
}

PG Integration option

Payment

Payment Flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. PaySage.io sends a webhook notification with the payment status to the merchant.

Info

This integration option supports only EUR currency.

Request

Send a payment request with the following additional data:

Parameter Type Description
request object
return_url * required
string URL to return the customer to when the transaction is completed.
ip string The customer's IP address.
method object A section of the payment method information.
type * required
string bancontact
customer object A section of the customer details.
first_name * required
string The customer's first name.
last_name * required
string The customer's last name.
email string The customer's email address.
phone string The customer's phone number.
city string The customer's billing city.
address string The customer's billing address.
zip string The customer's billing ZIP or postal code.
birth_date string The customer's date of birth in the ISO 8601 format (YYYY-MM-DD).
Request example
{
    "request": {
        "amount": 500,
        "currency": "EUR",
        "description": "description",
        "test": true,
        "return_url": "https://return.com",
        "language": "en",
        "customer": {
            "first_name": "John",
            "last_name": "Doe"
        },
        "method": {
            "type": "bancontact"
        }
    }
}
Response

Redirect your customer to the URL received as the value of the form.action parameter.

Response example
{
    "transaction": {
        "uid": "e4eaad77-c646-481a-9d3a-a4588aecd35b",
        "type": "payment",
        "status": "pending",
        "amount": 500,
        "currency": "EUR",
        "description": "description",
        "created_at": "2025-04-08T13:50:34Z",
        "updated_at": "2025-04-08T13:50:35Z",
        "method_type": "bancontact",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/e4eaad77-c646-481a-9d3a-a4588aecd35b/f63ef715c6631756d00f141d275cfd1eb5d240ff359af06626accf00b6c5e55f?language=en",
        "payment": {
            "status": "pending",
            "gateway_id": 5220,
            "ref_id": "e3c562bc360df85df898",
            "message": "Transaction was initialized."
        },
        "bancontact": {
            "type": "bancontact"
        },
        "customer": {
            "first_name": "John",
            "last_name": "Doe",
            "email": null,
            "ip": null
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction was initialized.",
        "test": true,
        "language": "en",
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },        
        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "link-to-payment-page",
            "method": "GET",
            "fields": []
        }
    }
}

CA Integration option

Payment

Payment Flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. PaySage.io sends a webhook notification with the payment status to the merchant.

Info

This integration option supports only EUR currency.

Request

Send a payment request with the following additional data:

object
return_url
required

string
A URL to return the customer to when a transaction is completed.
ip
required
string
The customer's IP address.
object
A section of the payment method.
type
required
string
bancontact
object
A section of information about the customer.
external_id
string (64)
The customer's identifier in the merchant's system.
first_name
string (50)
The customer's first name.
last_name
string (50)
The customer's last name.
email
required
string
The customer's email address.
phone
string
The customer's phone number.
country
required
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format. For example, BE.
city
string (50)
The customer's city.
address
string (255)
The customer's address.
zip
string (10)
The customer's postal code.
Request example
{
  "request": {
    "amount": 1010,
    "currency": "EUR",
    "description": "description",
    "skip_duplicate_check": true,
    "test": false,
    "tracking_id": "189",
    "notification_url": "https://notification-url",
    "return_url": "https://return-url",
    "ip": "127.0.0.1",
    "language": "en",
    "customer": {
      "first_name": "John",
      "last_name": "Doe",      
      "country": "BE",
      "city": "Antwerpen",
      "zip": "2018",
      "email": "john@example.com",
      "address": "1st Street",
      "phone": "17777777777",     
      "external_id": "123bh7"      
    },
    "method": {
      "type": "bancontact"
    }
  }
}
Response

Redirect the customer to the URL received as the value of the form.action parameter.

Response example
{
  "transaction": {
    "uid": "b9265cbb-1a18-4276-ba32-7508a93eec4d",
    "type": "payment",
    "status": "pending",
    "amount": 1010,
    "currency": "EUR",
    "description": "description",
    "created_at": "2026-04-23T13:57:16Z",
    "updated_at": "2026-04-23T13:57:16Z",
    "method_type": "bancontact",
    "receipt_url": "https://backoffice.paysage.io/customer/transactions/b9265cbb-1a18-4276-ba32-7508a93eec4d/3d8e6b0e0d2a8ef787d70cc3d150496681e7a1b388f4602c36e41e77cb37c673?language=en",
    "payment": {
      "status": "pending",
      "gateway_id": 6539,
      "ref_id": "ca096dc9-4924-4b67-869f-2ed3ace1c579",
      "message": "Transaction was initialized."
    },
    "bancontact": {
      "type": "bancontact",
      "use_pending_page": true
    },
    "customer": {
      "zip": "2018",
      "city": "Antwerpen",
      "email": "john@example.com",
      "phone": "17777777777",
      "address": "1st Street",
      "country": "BE",      
      "last_name": "Doe",
      "first_name": "John",
      "external_id": "123bh7",     
      "ip": "127.0.0.1"
    },
    "manually_corrected_at": null,
    "version": 2,
    "message": "Transaction was initialized.",
    "tracking_id": "189",
    "test": false,
    "language": "en",
    "billing_address": {
      "zip": "2018",
      "city": "Antwerpen",
      "email": "john@example.com",
      "phone": "17777777777",
      "address": "1st Street",
      "country": "BE",      
      "last_name": "Doe",
      "first_name": "John"
    },
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    },
    "smart_routing_verification": {
      "status": "successful"
    },
    "gateway": {
      "iframe": false
    },
    "form": {
      "action": "link-to-payment-page",
      "fields": [],
      "method": "GET"
    }
  }
}