Skip to main content

Developer Documentation

API examples

A couple of examples on how to create sessions with the Checkout API.

Charge session potentially creating customer if not already exists

Charge session potentially creating customer if not already exists.

cURL

curl -X POST \
  --url https://checkout-api.reepay.com/v1/session/charge \
  -u 'priv_xxxx:' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data '{
  "order": {
    "handle": "order-12345",
    "customer": {
        "handle": "customer-123",
        "first_name": "John",
        "last_name": "Doe",
        "phone":"+4531313131"
    },
    "amount": 50000
  },
  "accept_url":"https://webshop.com/accept/order-12345",
  "cancel_url":"https://webshop.com/decline/order-12345"
}'

Charge session created with order lines instead of amount

Either amount or order_lines must be provided. In this example order lines are used to create charge session.

cURL

curl -X POST \
  --url https://checkout-api.reepay.com/v1/session/charge \
  -u 'priv_xxxx:' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data '{
  "order": {
    "handle": "order-123456",
    "customer": {
        "handle": "customer-123",
        "first_name": "John",
        "last_name": "Doe",
        "phone":"+4531313131"
    },
    "order_lines": [
        {
            "amount": 10000,
            "quantity": 5,
            "ordertext": "Product 1"
        },
        {
            "amount": 20000,
            "quantity": 1,
            "ordertext": "Product 2",
            "amount_incl_vat": false,
            "vat": 0.20
        }
    ]
  },
  "accept_url":"https://webshop.com/accept/order-12345",
  "cancel_url":"https://webshop.com/decline/order-12345"
}'

Charge session saving payment method

Charge session also creating a saved payment method for later recurring use (e.g. for merchant initiated payments or as payment method on subscription). Currency defined, maybe different from account default.

cURL

curl -X POST \
  --url https://checkout-api.reepay.com/v1/session/charge \
  -u 'priv_xxxx:' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data '{
    "recurring": true,
    "order": {
        "ordertext": "Awesome product",
        "handle": "order-12345",
        "amount": 10000,
        "currency": "EUR",
        "customer":{
            "email":"johndoe@somedomain.com",
            "handle":"customer-1",
            "first_name":"John",
            "last_name":"Doe"
        }
    },
    "accept_url":"https://webshop.com/accept/order-12345",
    "cancel_url":"https://webshop.com/decline/order-12345"
}'

As a result of a charge session with recurring=true a reference to a saved payment method will be returned in parameter payment_method. The saved payment method can be used later to create a charge with create charge. Example with the saved payment method reference ca_...:

cURL

curl -X POST\
 --url https://api.reepay.com/v1/charge \ 
 -H 'Accept: application/json'  \
 -u 'priv_xxxxxx:' \
 -H 'Content-Type: application/json' \
--data '{ 
      "handle": "order_101", 
      "amount": 20000, 
      "source": "ca_...."
}'

The saved payment method can also be used as source argument when creating a subscription: https://reference.reepay.com/api/#create-subscription

Charge session for an existing unpaid invoice

Create a charge session for an existing unpaid invoice/charge (state createdpendingdunning or failed).

cURL

curl -X POST \
  --url https://checkout-api.reepay.com/v1/session/charge \
  -u 'priv_xxxx:' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  --data '{
    "invoice": "order-123452",
    "accept_url":"https://webshop.com/accept/order-12345",
    "cancel_url":"https://webshop.com/decline/order-12345"
}' | jsonlint

Recurring session creating customer if not exists

Creating a session for saving a payment method without making a payment. Customer will be created if not already existing.

cURL

curl -X POST \
  --url https://checkout-api.reepay.com/v1/session/recurring \
  -u 'priv_xxxxx:' \
  -H 'Accept: application/json' \
  -H 'Content-Type: application/json' \
  -d '{
    "create_customer" : {
        "handle": "customer-123"
    }
  },
  "accept_url":"https://webshop.com/accept/recurring",
  "cancel_url":"https://webshop.com/decline/recurring"
}'